当我在 Jupyter 笔记本中有此 Python 代码时:
df = pd.read_csv("data.csv", index_col=0)
print(df.shape)
read_csv
和shape
为蓝色,"data.csv"
为红色,0
和print
为绿色。
当我将笔记本导出为 HTML 时,
read_csv
、shape
和 print
不再具有语法突出显示功能。
另外,在我的 jupyter 笔记本中:
for v in my_values:
something
的
for
和 in
均为绿色,但是当我将其导出为 HTML 时,for
为绿色,in
为紫色。
我的问题:是否有一些简单的解决办法,使导出的 HTML 与笔记本相同?
我希望突出显示相同,但我没有时间为此编写解决方案。
更多信息
我尝试从 Jupyter Notebook 和 Jupyter Lab 导出。 两者给出了相同的结果。
我还安装了 pandoc,以便可以导出为 LaTeX。 也有同样的问题。
我检查了 HTML,发现突出显示是通过 span 标签和 CSS 样式完成的。 这是两个代码块的 HTML:
<div class="highlight hl-ipython3"><pre><span></span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s2">"data.csv"</span><span class="p">,</span> <span class="n">index_col</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
</pre></div>
和
<div class="highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">my_values</span><span class="p">:</span>
<span class="n">something</span>
</pre></div>
我在CSS中找到了span标签:
.highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */
.highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */
.highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */
.highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */
我没有找到任何跨度“n”或“nb”的突出显示,这可能就是它们在 HTML 文档中没有突出显示的原因。
我为“nb”添加了一个,使用与“k”相同的颜色。 我还更改了“ow”的颜色以匹配“k”的颜色。 这解决了一半的突出问题。
但是,我不能只更改“n”的颜色,因为某些“n”只是用户定义的名称(即变量),而其他则是我希望为蓝色的方法。
我仍然更喜欢一个更好的答案,这将使导出的 HTML 与每次显示的语法突出显示相匹配,但这是我的快速修复:
由于我剩下的就是将方法(和数据属性)突出显示为蓝色,因此我只需使用以下方式搜索句点后的名称:
<span class="o">.</span><span class="n">
然后用我自己的跨度“mn”替换它:
<span class="o">.</span><span class="mn">
我找到了可用的 jupyterlab pygments here
并将这行CSS添加到HTML文档中
.highlight .mn { color: var(--jp-mirror-editor-attribute-color) } /* Joe's method name color */