mirror of https://github.com/cheat/cheat.git
Merge branch 'master' of https://github.com/liuyang1/cheat into liuyang1-master
Resolving merge-conflicts.
This commit is contained in:
commit
22b64d2d08
|
@ -35,6 +35,7 @@ Examples:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# require the dependencies
|
# require the dependencies
|
||||||
|
from __future__ import print_function
|
||||||
from cheat import sheets, sheet
|
from cheat import sheets, sheet
|
||||||
from cheat.utils import colorize
|
from cheat.utils import colorize
|
||||||
from cheat.utils import die
|
from cheat.utils import die
|
||||||
|
@ -64,7 +65,7 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
# list cheatsheets
|
# list cheatsheets
|
||||||
elif options['--list']:
|
elif options['--list']:
|
||||||
print(sheets.list())
|
print(sheets.list(), end="")
|
||||||
|
|
||||||
# create/edit cheatsheet
|
# create/edit cheatsheet
|
||||||
elif options['--edit']:
|
elif options['--edit']:
|
||||||
|
@ -72,8 +73,8 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
# search among the cheatsheets
|
# search among the cheatsheets
|
||||||
elif options['--search']:
|
elif options['--search']:
|
||||||
print(colorize(sheets.search(options['<keyword>'])))
|
print(colorize(sheets.search(options['<keyword>'])), end="")
|
||||||
|
|
||||||
# print the cheatsheet
|
# print the cheatsheet
|
||||||
else:
|
else:
|
||||||
print(colorize(sheet.read(options['<cheatsheet>'])))
|
print(colorize(sheet.read(options['<cheatsheet>'])), end="")
|
||||||
|
|
|
@ -21,13 +21,18 @@ def highlight(needle, haystack):
|
||||||
# if the import succeeds, colorize the needle in haystack
|
# if the import succeeds, colorize the needle in haystack
|
||||||
return haystack.replace(needle, colored(needle, os.environ.get('CHEAT_HIGHLIGHT')));
|
return haystack.replace(needle, colored(needle, os.environ.get('CHEAT_HIGHLIGHT')));
|
||||||
|
|
||||||
|
|
||||||
def colorize(sheet_content):
|
def colorize(sheet_content):
|
||||||
""" Colorizes cheatsheet content if so configured """
|
""" Colorizes cheatsheet content if so configured """
|
||||||
|
|
||||||
# if colorization is not configured, exit early
|
# only colorize if configured to do so, and if stdout is a tty
|
||||||
if os.environ.get('CHEATCOLORS') != 'true':
|
if os.environ.get('CHEATCOLORS') != 'true' or not sys.stdout.isatty():
|
||||||
return sheet_content
|
return sheet_content
|
||||||
|
|
||||||
|
# don't attempt to colorize an empty cheatsheet
|
||||||
|
if not sheet_content.strip():
|
||||||
|
return ""
|
||||||
|
|
||||||
# otherwise, attempt to import the pygments library
|
# otherwise, attempt to import the pygments library
|
||||||
try:
|
try:
|
||||||
from pygments import highlight
|
from pygments import highlight
|
||||||
|
@ -41,6 +46,8 @@ def colorize(sheet_content):
|
||||||
# otherwise, attempt to colorize
|
# otherwise, attempt to colorize
|
||||||
first_line = sheet_content.splitlines()[0]
|
first_line = sheet_content.splitlines()[0]
|
||||||
lexer = get_lexer_by_name('bash')
|
lexer = get_lexer_by_name('bash')
|
||||||
|
|
||||||
|
# apply syntax-highlighting if the first line is a code-fence
|
||||||
if first_line.startswith('```'):
|
if first_line.startswith('```'):
|
||||||
sheet_content = '\n'.join(sheet_content.split('\n')[1:-2])
|
sheet_content = '\n'.join(sheet_content.split('\n')[1:-2])
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue