[Python-checkins] r66481 - in doctools/trunk: CHANGES sphinx/highlighting.py

georg.brandl python-checkins at python.org
Tue Sep 16 09:49:27 CEST 2008


Author: georg.brandl
Date: Tue Sep 16 09:49:27 2008
New Revision: 66481

Log:
Allow lexer guessing.


Modified:
   doctools/trunk/CHANGES
   doctools/trunk/sphinx/highlighting.py

Modified: doctools/trunk/CHANGES
==============================================================================
--- doctools/trunk/CHANGES	(original)
+++ doctools/trunk/CHANGES	Tue Sep 16 09:49:27 2008
@@ -66,6 +66,9 @@
   HTML, LaTeX and text translators; this prevents having to manually
   patch the classes.
 
+* Exposed Pygments' lexer guessing as a highlight "language"
+  ``guess``.
+
 * Added ``Sphinx.add_javascript()`` that adds scripts to load in the
   default HTML template.
 

Modified: doctools/trunk/sphinx/highlighting.py
==============================================================================
--- doctools/trunk/sphinx/highlighting.py	(original)
+++ doctools/trunk/sphinx/highlighting.py	Tue Sep 16 09:49:27 2008
@@ -21,7 +21,7 @@
     from pygments import highlight
     from pygments.lexers import PythonLexer, PythonConsoleLexer, CLexer, \
          TextLexer, RstLexer
-    from pygments.lexers import get_lexer_by_name
+    from pygments.lexers import get_lexer_by_name, guess_lexer
     from pygments.formatters import HtmlFormatter, LatexFormatter
     from pygments.filters import ErrorToken
     from pygments.style import Style
@@ -157,6 +157,11 @@
         elif lang in ('python3', 'py3') and source.startswith('>>>'):
             # for py3, recognize interactive sessions, but do not try parsing...
             lexer = lexers['pycon3']
+        elif lang == 'guess':
+            try:
+                lexer = guess_lexer(source)
+            except Exception:
+                return self.unhighlighted(source)
         else:
             if lang in lexers:
                 lexer = lexers[lang]


More information about the Python-checkins mailing list