summaryrefslogtreecommitdiff
path: root/mako/ext/pygmentplugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'mako/ext/pygmentplugin.py')
-rw-r--r--mako/ext/pygmentplugin.py33
1 files changed, 21 insertions, 12 deletions
diff --git a/mako/ext/pygmentplugin.py b/mako/ext/pygmentplugin.py
index 0b15126..98e0c5d 100644
--- a/mako/ext/pygmentplugin.py
+++ b/mako/ext/pygmentplugin.py
@@ -4,20 +4,16 @@
# This module is part of Mako and is released under
# the MIT License: http://www.opensource.org/licenses/mit-license.php
-import re
-try:
- set
-except NameError:
- from sets import Set as set
-
from pygments.lexers.web import \
HtmlLexer, XmlLexer, JavascriptLexer, CssLexer
-from pygments.lexers.agile import PythonLexer
-from pygments.lexer import Lexer, DelegatingLexer, RegexLexer, bygroups, \
- include, using, this
-from pygments.token import Error, Punctuation, \
- Text, Comment, Operator, Keyword, Name, String, Number, Other, Literal
-from pygments.util import html_doctype_matches, looks_like_xml
+from pygments.lexers.agile import PythonLexer, Python3Lexer
+from pygments.lexer import DelegatingLexer, RegexLexer, bygroups, \
+ include, using
+from pygments.token import \
+ Text, Comment, Operator, Keyword, Name, String, Other
+from pygments.formatters.html import HtmlFormatter
+from pygments import highlight
+from mako import util
class MakoLexer(RegexLexer):
name = 'Mako'
@@ -105,3 +101,16 @@ class MakoCssLexer(DelegatingLexer):
def __init__(self, **options):
super(MakoCssLexer, self).__init__(CssLexer, MakoLexer,
**options)
+
+
+pygments_html_formatter = HtmlFormatter(cssclass='syntax-highlighted', linenos=True)
+def syntax_highlight(filename='', language=None):
+ mako_lexer = MakoLexer()
+ if util.py3k:
+ python_lexer = Python3Lexer()
+ else:
+ python_lexer = PythonLexer()
+ if filename.startswith('memory:') or language == 'mako':
+ return lambda string: highlight(string, mako_lexer, pygments_html_formatter)
+ return lambda string: highlight(string, python_lexer, pygments_html_formatter)
+