Mercurial > public > mercurial-scm > hg-stable
diff hgext/highlight/__init__.py @ 6987:d09e813b21e3
highlight: only pygmentize for HTML mimetypes
For non-html mimetypes it doesn't make much sense. This also fixes the
issue that highlight unconditionally adds a <link/> tag for its CSS to
the template's header (which is pointless in text/plain output).
author | Rocco Rutte <pdmef@gmx.net> |
---|---|
date | Fri, 05 Sep 2008 10:39:57 +0200 |
parents | ce94b3236ea4 |
children | 9df67ee30ef5 |
line wrap: on
line diff
--- a/hgext/highlight/__init__.py Fri Sep 05 10:39:19 2008 +0200 +++ b/hgext/highlight/__init__.py Fri Sep 05 10:39:57 2008 +0200 @@ -25,14 +25,25 @@ web_annotate = webcommands.annotate def filerevision_highlight(web, tmpl, fctx): - style = web.config('web', 'pygments_style', 'colorful') - highlight.pygmentize('fileline', fctx, style, tmpl) + mt = ''.join(tmpl('mimetype', encoding=web.encoding)) + # only pygmentize for mimetype containing 'html' so we both match + # 'text/html' and possibly 'application/xhtml+xml' in the future + # so that we don't have to touch the extension when the mimetype + # for a template changes; also hgweb optimizes the case that a + # raw file is sent using rawfile() and doesn't call us, so we + # can't clash with the file's content-type here in case we + # pygmentize a html file + if 'html' in mt: + style = web.config('web', 'pygments_style', 'colorful') + highlight.pygmentize('fileline', fctx, style, tmpl) return web_filerevision(web, tmpl, fctx) def annotate_highlight(web, req, tmpl): - fctx = webutil.filectx(web.repo, req) - style = web.config('web', 'pygments_style', 'colorful') - highlight.pygmentize('annotateline', fctx, style, tmpl) + mt = ''.join(tmpl('mimetype', encoding=web.encoding)) + if 'html' in mt: + fctx = webutil.filectx(web.repo, req) + style = web.config('web', 'pygments_style', 'colorful') + highlight.pygmentize('annotateline', fctx, style, tmpl) return web_annotate(web, req, tmpl) def generate_css(web, req, tmpl):