Skip to content
This repository has been archived by the owner on Sep 24, 2022. It is now read-only.

Update Pygments example to not fail when the lang is unknown. #56

Merged
merged 1 commit into from
May 26, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,19 +66,22 @@ used to escape the HTML):
import houdini as h
import misaka as m
from pygments import highlight
from pygments.formatters import HtmlFormatter
from pygments.formatters import HtmlFormatter, ClassNotFound
from pygments.lexers import get_lexer_by_name

class HighlighterRenderer(m.HtmlRenderer):
def blockcode(self, text, lang):
if not lang:
return '\n<pre><code>{}</code></pre>\n'.format(
h.escape_html(text.strip()))

lexer = get_lexer_by_name(lang, stripall=True)
formatter = HtmlFormatter()

return highlight(text, lexer, formatter)
try:
lexer = get_lexer_by_name(lang, stripall=True)
except ClassNotFound:
lexer = None

if lexer:
formatter = HtmlFormatter()
return highlight(text, lexer, formatter)
# default
return '\n<pre><code>{}</code></pre>\n'.format(
h.escape_html(text.strip()))

renderer = HighlighterRenderer()
md = m.Markdown(renderer, extensions=('fenced-code',))
Expand Down