##// END OF EJS Templates
share some global config state
share some global config state

File last commit:

r9529:f76aadd1
r9529:f76aadd1
Show More
jinja_filters.py
72 lines | 2.1 KiB | text/x-python | PythonLexer
Matthias BUSSONNIER
mofe filter in separate file
r9303 #-----------------------------------------------------------------------------
# Copyright (c) 2012, 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.
#-----------------------------------------------------------------------------
from __future__ import absolute_import
# Stdlib imports
import re
from IPython.utils.text import indent
from markdown import markdown
from .utils import remove_ansi
from .utils import highlight, ansi2html
from .utils import markdown2latex
Matthias BUSSONNIER
allow configurable filters
r9424
Matthias BUSSONNIER
share some global config state
r9529 from converters.config import GlobalConfigurable
Matthias BUSSONNIER
allow configurable filters
r9424 from IPython.config.configurable import Configurable
Matthias BUSSONNIER
pylint
r9491 from IPython.utils.traitlets import List
Matthias BUSSONNIER
allow configurable filters
r9424
Matthias BUSSONNIER
mofe filter in separate file
r9303 #-----------------------------------------------------------------------------
# Class declarations
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
allow configurable filters
r9424
class ConfigurableFilter(GlobalConfigurable):
"""Configurable Jinja Filter"""
def __init__(self, config=None, **kw):
super(ConfigurableFilter, self).__init__(config=config, **kw)
def __call__(self, *args, **kwargs):
raise NotImplementedError('should be implemented by subclass')
class FilterDataType(ConfigurableFilter):
""" return the preferd displayed format
"""
def __call__(self, output):
""" return the first availlable format in priority """
for fmt in self.display_data_priority:
if fmt in output:
return [fmt]
raise Exception("did not found any format I can extract in output, shoudl at lest have one")
Matthias BUSSONNIER
mofe filter in separate file
r9303 def rm_fake(strng):
return strng.replace('/files/', '')
def python_comment(string):
return '# '+'\n# '.join(string.split('\n'))
LATEX_SUBS = (
(re.compile(r'\\'), r'\\textbackslash'),
(re.compile(r'([{}_#%&$])'), r'\\\1'),
(re.compile(r'~'), r'\~{}'),
(re.compile(r'\^'), r'\^{}'),
(re.compile(r'"'), r"''"),
(re.compile(r'\.\.\.+'), r'\\ldots'),
)
def escape_tex(value):
newval = value
for pattern, replacement in LATEX_SUBS:
newval = pattern.sub(replacement, newval)
return newval