From f62ca211ebf8badd17fef5d15d61eb8ff00875c1 Mon Sep 17 00:00:00 2001 From: Vanya Sergeev Date: Sun, 13 Oct 2013 06:28:51 -0700 Subject: Add markdown blob support --- git-arr | 2 ++ utils.py | 14 ++++++++++++++ views/blob.html | 4 +++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/git-arr b/git-arr index 173a6b2..8890563 100755 --- a/git-arr +++ b/git-arr @@ -174,6 +174,8 @@ def with_utils(f): 'can_colorize': utils.can_colorize, 'colorize_diff': utils.colorize_diff, 'colorize_blob': utils.colorize_blob, + 'can_markdown': utils.can_markdown, + 'markdown_blob': utils.markdown_blob, 'abort': bottle.abort, 'smstr': git.smstr, } diff --git a/utils.py b/utils.py index 801580e..9e3ca59 100644 --- a/utils.py +++ b/utils.py @@ -12,6 +12,10 @@ try: except ImportError: pygments = None +try: + import markdown +except ImportError: + markdown = None def shorten(s, width = 60): if len(s) < 60: @@ -41,6 +45,13 @@ def can_colorize(s): return True +def can_markdown(fname): + """True if we can process file through markdown, False otherwise.""" + if markdown is None: + return False + + return fname.endswith(".md") + def colorize_diff(s): lexer = lexers.DiffLexer(encoding = 'utf-8') formatter = HtmlFormatter(encoding = 'utf-8', @@ -68,3 +79,6 @@ def colorize_blob(fname, s): return highlight(s, lexer, formatter) +def markdown_blob(s): + return markdown.markdown(s) + diff --git a/views/blob.html b/views/blob.html index 283bbcd..6244fc7 100644 --- a/views/blob.html +++ b/views/blob.html @@ -36,7 +36,9 @@ {{!fname.html}} -% if can_colorize(blob): +% if can_markdown(fname.unicode): +{{!markdown_blob(blob)}} +% elif can_colorize(blob): {{!colorize_blob(fname.unicode, blob)}} % else:
-- 
cgit v1.2.3