Mercurial > agora-palash
view apps/snippet/highlight.py @ 54:898881bbfdea
Tie snippets to their authors, enable a couple more lexer languages
author | Jordi Gutiérrez Hermoso <jordigh@gmail.com> |
---|---|
date | Mon, 07 Feb 2011 04:43:09 -0600 |
parents | b7c1c22fdfe8 |
children | 892c7fbd3b35 |
line wrap: on
line source
from pygments.lexers import get_all_lexers, get_lexer_by_name, guess_lexer from pygments.styles import get_all_styles from pygments.formatters import HtmlFormatter from pygments.util import ClassNotFound from pygments import highlight LEXER_LIST_ALL = sorted([(i[1][0], i[0]) for i in get_all_lexers()]) LEXER_LIST = ( ('bash', 'bash'), ('c', 'C'), ('c++', 'C++'), ('java', 'Java'), ('matlab', 'MATLAB'), ('octave', 'Octave'), ('perl', 'Perl'), ('php', 'PHP'), ('python', 'Python'), ('text', 'Text only'), ) LEXER_DEFAULT = 'octave' class NakedHtmlFormatter(HtmlFormatter): def wrap(self, source, outfile): return self._wrap_code(source) def _wrap_code(self, source): for i, t in source: yield i, t def pygmentize(code_string, lexer_name='text'): return highlight(code_string, get_lexer_by_name(lexer_name), NakedHtmlFormatter()) def guess_code_lexer(code_string, default_lexer='unknown'): try: return guess_lexer(code_string).name except ClassNotFound: return default_lexer