diff --git a/lib/github/commands/rest2html b/lib/github/commands/rest2html
index 7ecfe272..00479482 100755
--- a/lib/github/commands/rest2html
+++ b/lib/github/commands/rest2html
@@ -46,7 +46,7 @@ import codecs
from docutils import nodes
from docutils.parsers.rst import directives, roles
-from docutils.parsers.rst.directives.body import CodeBlock
+from docutils.parsers.rst.directives.body import CodeBlock, Directive
from docutils.core import publish_parts
from docutils.writers.html4css1 import Writer, HTMLTranslator
@@ -64,6 +64,18 @@ SETTINGS = {
'field_name_limit': 50,
}
+default_highlight_language = None
+
+class HighlightDirective(Directive):
+ required_arguments = 1
+ optional_arguments = 1
+ option_spec = {}
+ def run(self):
+ """Track the default syntax highlighting language
+ """
+ global default_highlight_language
+ default_highlight_language = self.arguments[0]
+ return []
class DoctestDirective(CodeBlock):
"""Render Sphinx 'doctest:: [group]' blocks as 'code:: python'
@@ -102,6 +114,8 @@ class GitHubHTMLTranslator(HTMLTranslator):
language = classes[1]
del classes[:]
self.body.append(self.starttag(node, 'pre', lang=language))
+ elif default_highlight_language is not None:
+ self.body.append(self.starttag(node, 'pre', lang=default_highlight_language))
else:
self.body.append(self.starttag(node, 'pre'))
@@ -172,6 +186,9 @@ def main():
# Render source code in Sphinx doctest blocks
directives.register_directive('doctest', DoctestDirective)
+ # Set default highlight language
+ directives.register_directive('highlight', HighlightDirective)
+
parts = publish_parts(text, writer=writer, settings_overrides=SETTINGS)
if 'html_body' in parts:
html = parts['html_body']