Jupyter notebook 输出单元语法高亮显示
Jupyter notebook output cell syntax highlighting
我正在使用 Jupyter notebook(IPython on Python 2.7)。
我想动态显示一些 XML 内容,例如:
print dom.toprettyxml(indent=' ')
但它在输出单元格中被格式化为纯文本。
我想把它和语法高亮一起展示。可能吗?
我遇到过 IPython.display Markdown、Latex 和其他几个,但没有 XML。 (HTML 也在那里,但对我没有帮助)。
此致,
罗伯特
更新:
感谢反馈,我能够使用以下代码完成任务:
from pygments import highlight
from pygments.lexers import XmlLexer
from pygments.formatters import HtmlFormatter
import IPython
def display_xml_nice(xml_element):
formatter = HtmlFormatter()
xml_indented = xml_element.toprettyxml(indent=' ')
IPython.display.display(HTML('<style type="text/css">{}</style>{}'.format(
formatter.get_style_defs('.highlight'),
highlight(xml_indented, XmlLexer(), formatter))))
将代码正确标记为答案。
感谢反馈,我能够使用以下代码完成任务:
from pygments import highlight
from pygments.lexers import XmlLexer
from pygments.formatters import HtmlFormatter
import IPython
def display_xml_nice(xml_element):
formatter = HtmlFormatter()
xml_indented = xml_element.toprettyxml(indent=' ')
IPython.display.display(HTML('<style type="text/css">{}</style> {}'.format(
formatter.get_style_defs('.highlight'),
highlight(xml_indented, XmlLexer(), formatter))))
谢谢,
罗伯特
如 Jay 所述,您也可以使用 IPython.display.Code
,但这只有在您使用 Jupyter Notebook 时才有效。
from IPython.display import Code
Code('print("Hello World")', language='python')
使用 Jupyter Lab 时,虽然它不会 运行 如预期的那样,如 this GitHub issue 中所述,因此您需要 运行 以下位才能使其正常工作:
from pygments.formatters import HtmlFormatter
from IPython.core.display import HTML
formatter = HtmlFormatter()
display(HTML(f'<style>{ formatter.get_style_defs(".highlight") }</style>'))
我正在使用 Jupyter notebook(IPython on Python 2.7)。
我想动态显示一些 XML 内容,例如:
print dom.toprettyxml(indent=' ')
但它在输出单元格中被格式化为纯文本。
我想把它和语法高亮一起展示。可能吗?
我遇到过 IPython.display Markdown、Latex 和其他几个,但没有 XML。 (HTML 也在那里,但对我没有帮助)。
此致, 罗伯特
更新: 感谢反馈,我能够使用以下代码完成任务:
from pygments import highlight
from pygments.lexers import XmlLexer
from pygments.formatters import HtmlFormatter
import IPython
def display_xml_nice(xml_element):
formatter = HtmlFormatter()
xml_indented = xml_element.toprettyxml(indent=' ')
IPython.display.display(HTML('<style type="text/css">{}</style>{}'.format(
formatter.get_style_defs('.highlight'),
highlight(xml_indented, XmlLexer(), formatter))))
将代码正确标记为答案。
感谢反馈,我能够使用以下代码完成任务:
from pygments import highlight
from pygments.lexers import XmlLexer
from pygments.formatters import HtmlFormatter
import IPython
def display_xml_nice(xml_element):
formatter = HtmlFormatter()
xml_indented = xml_element.toprettyxml(indent=' ')
IPython.display.display(HTML('<style type="text/css">{}</style> {}'.format(
formatter.get_style_defs('.highlight'),
highlight(xml_indented, XmlLexer(), formatter))))
谢谢, 罗伯特
如 Jay 所述,您也可以使用 IPython.display.Code
,但这只有在您使用 Jupyter Notebook 时才有效。
from IPython.display import Code
Code('print("Hello World")', language='python')
使用 Jupyter Lab 时,虽然它不会 运行 如预期的那样,如 this GitHub issue 中所述,因此您需要 运行 以下位才能使其正常工作:
from pygments.formatters import HtmlFormatter
from IPython.core.display import HTML
formatter = HtmlFormatter()
display(HTML(f'<style>{ formatter.get_style_defs(".highlight") }</style>'))