28 lines
970 B
Python
28 lines
970 B
Python
"""
|
|
reST directive for syntax-highlighting ipython interactive sessions.
|
|
|
|
"""
|
|
|
|
from sphinx import highlighting
|
|
from IPython.lib.lexers import IPyLexer
|
|
|
|
def setup(app):
|
|
"""Setup as a sphinx extension."""
|
|
|
|
# This is only a lexer, so adding it below to pygments appears sufficient.
|
|
# But if somebody knows what the right API usage should be to do that via
|
|
# sphinx, by all means fix it here. At least having this setup.py
|
|
# suppresses the sphinx warning we'd get without it.
|
|
metadata = {'parallel_read_safe': True, 'parallel_write_safe': True}
|
|
return metadata
|
|
|
|
# Register the extension as a valid pygments lexer.
|
|
# Alternatively, we could register the lexer with pygments instead. This would
|
|
# require using setuptools entrypoints: http://pygments.org/docs/plugins
|
|
|
|
ipy2 = IPyLexer(python3=False)
|
|
ipy3 = IPyLexer(python3=True)
|
|
|
|
highlighting.lexers['ipython'] = ipy2
|
|
highlighting.lexers['ipython2'] = ipy2
|
|
highlighting.lexers['ipython3'] = ipy3
|