diff --git a/cheat/utils.py b/cheat/utils.py index 58c27c4..9b2af04 100644 --- a/cheat/utils.py +++ b/cheat/utils.py @@ -13,14 +13,23 @@ def colorize(sheet_content): try: from pygments import highlight - from pygments.lexers import BashLexer + from pygments.lexers import get_lexer_by_name from pygments.formatters import TerminalFormatter # if pygments can't load, just return the uncolorized text except ImportError: return sheet_content - return highlight(sheet_content, BashLexer(), TerminalFormatter()) + first_line = sheet_content.splitlines()[0] + lexer = get_lexer_by_name('bash') + if first_line.startswith('```'): + sheet_content = '\n'.join(sheet_content.split('\n')[1:]) + try: + lexer = get_lexer_by_name(first_line[3:]) + except Exception: + pass + + return highlight(sheet_content, lexer, TerminalFormatter()) def die(message):