##// END OF EJS Templates
Merge pull request #3525 from minrk/utc...
Merge pull request #3525 from minrk/utc Fix basic timezone info minor tweaks to jsonutil, to include timezone info if available add IPython.utils.tz, which just has basic info for making utcnow(), etc. include tzinfo in the datetime object use this tzinfo in the last_modified keys in notebook managers, which fixes Firefox's timezone offset for checkpoints

File last commit:

r11089:45d39d22
r11187:b5297e0b merge
Show More
highlight.py
88 lines | 2.6 KiB | text/x-python | PythonLexer
"""
Module containing filter functions that allow code to be highlighted
from within Jinja templates.
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2013, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from pygments import highlight as pygements_highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter
from pygments.formatters import LatexFormatter
# Our own imports
from IPython.nbconvert.utils.lexers import IPythonLexer
#-----------------------------------------------------------------------------
# Globals and constants
#-----------------------------------------------------------------------------
MULTILINE_OUTPUTS = ['text', 'html', 'svg', 'latex', 'javascript', 'json']
#-----------------------------------------------------------------------------
# Utility functions
#-----------------------------------------------------------------------------
__all__ = [
'highlight',
'highlight2latex'
]
def highlight(source, language='ipython'):
"""
Return a syntax-highlighted version of the input source as html output.
Parameters
----------
source : str
Source code to highlight the syntax of.
language : str
Language to highlight the syntax of.
"""
return _pygment_highlight(source, HtmlFormatter(), language)
def highlight2latex(source, language='ipython'):
"""
Return a syntax-highlighted version of the input source as latex output.
Parameters
----------
source : str
Source code to highlight the syntax of.
language : str
Language to highlight the syntax of.
"""
return _pygment_highlight(source, LatexFormatter(), language)
def _pygment_highlight(source, output_formatter, language='ipython'):
"""
Return a syntax-highlighted version of the input source
Parameters
----------
source : str
Source code to highlight the syntax of.
output_formatter : Pygments formatter
language : str
Language to highlight the syntax of.
"""
if language == 'ipython':
lexer = IPythonLexer()
else:
lexer = get_lexer_by_name(language, stripall=True)
return pygements_highlight(source, lexer, output_formatter)