|
@@ -17,6 +17,7 @@ import mistune
|
|
|
from pygments import highlight
|
|
|
from pygments.lexers import get_lexer_by_name
|
|
|
from pygments.formatters import HtmlFormatter
|
|
|
+from pygments.util import ClassNotFound
|
|
|
|
|
|
|
|
|
_re_emoji = re.compile(r':([a-z0-9\+\-_]+):', re.I)
|
|
@@ -88,10 +89,16 @@ class FlaskBBRenderer(mistune.Renderer):
|
|
|
return '<p>%s</p>\n' % text.strip(' ')
|
|
|
|
|
|
def block_code(self, code, lang):
|
|
|
- if not lang:
|
|
|
+ if lang:
|
|
|
+ try:
|
|
|
+ lexer = get_lexer_by_name(lang, stripall=True)
|
|
|
+ except ClassNotFound:
|
|
|
+ lexer = None
|
|
|
+ else:
|
|
|
+ lexer = None
|
|
|
+ if not lexer:
|
|
|
return '\n<pre><code>%s</code></pre>\n' % \
|
|
|
mistune.escape(code)
|
|
|
- lexer = get_lexer_by_name(lang, stripall=True)
|
|
|
formatter = HtmlFormatter()
|
|
|
return highlight(code, lexer, formatter)
|
|
|
|