nbconvert 生成的 html 文件中的 custom.css 在哪里?
Where is custom.css in the generated html file from nbconvert?
我正在使用 nbconvert 通过
将我的 jupyter notebook 转换为 html
jupyter nbconvert my.ipynb --to html
然后它说:
[NbConvertApp] Converting notebook my.ipynb to html
[NbConvertApp] Writing 407497 bytes to my.html
然后在生成的my.html
中,我可以看到它需要custom.css
:
<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">
<!-- Loading mathjax macro -->
<!-- Load mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_HTML"></script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\(","\)"] ],
displayMath: [ ['$$','$$'], ["\[","\]"] ],
processEscapes: true,
processEnvironments: true
},
// Center justify equations in code and markdown cells. Elsewhere
// we use CSS to left justify single line equations in code cells.
displayAlign: 'center',
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}},
linebreaks: { automatic: true }
}
});
</script>
信息:
nbconvert 版本是 5.6.1
谢谢
如果文件 custom.css
存在于同一目录中,<link rel="stylesheet" href="custom.css">
会有效地导致包含自定义的 CSS 样式规则。
如果您需要一些自定义 CSS 样式规则来显示生成的 html。您可以在与 html 文件相同的目录中添加具有这些规则的文件 custom.css
。
这不是强制性要求。如果您不想要任何自定义的样式规则,可以不包含这样的文件。生成的 HTML 文件中的默认 CSS 规则仍然有效。
如果您唯一的问题是这一行:<link rel="stylesheet" href="custom.css">
,您可以修改模板文件并编写自定义 HTML 导出器:
导航到 nbconvert 的源目录。转到 ./templates/html/
。将有一个名为 full.tpl
的文件。这是您的 HTML 文件的模板。使用文本编辑器打开文件并删除 <link rel="stylesheet" href="custom.css">
行。
使用 .tpl
扩展名 (fullcustom.tpl
) 保存文件。确保将其保存在与 full.tpl
.
相同的目录中
下一步是在 Python 中编写自定义导出器 class(推荐)。您必须继承 HTMLExporter
class 中定义的 ./exporters/html.py
。您可以按照此处描述的过程进行操作:https://nbconvert.readthedocs.io/en/latest/external_exporters.html
现在,如果您不想花时间这样做,一个快速的“拼凑”就是实际修改 HTMLExporter
class。如果需要,请创建 html.py
文件的副本,因为它正在被修改。打开./exporters/html.py
,在HTMLExporter
class中找到如下方法:
@default('template_file')
def _template_file_default(self):
return 'full.tpl'
将 return full.tpl
更改为您使用 (fullcustom.tpl
).
保存修改后的 full.tpl
的名称
我正在使用 nbconvert 通过
将我的 jupyter notebook 转换为 htmljupyter nbconvert my.ipynb --to html
然后它说:
[NbConvertApp] Converting notebook my.ipynb to html [NbConvertApp] Writing 407497 bytes to my.html
然后在生成的my.html
中,我可以看到它需要custom.css
:
<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">
<!-- Loading mathjax macro -->
<!-- Load mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_HTML"></script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\(","\)"] ],
displayMath: [ ['$$','$$'], ["\[","\]"] ],
processEscapes: true,
processEnvironments: true
},
// Center justify equations in code and markdown cells. Elsewhere
// we use CSS to left justify single line equations in code cells.
displayAlign: 'center',
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}},
linebreaks: { automatic: true }
}
});
</script>
信息:
nbconvert 版本是 5.6.1
谢谢
如果文件 custom.css
存在于同一目录中,<link rel="stylesheet" href="custom.css">
会有效地导致包含自定义的 CSS 样式规则。
如果您需要一些自定义 CSS 样式规则来显示生成的 html。您可以在与 html 文件相同的目录中添加具有这些规则的文件 custom.css
。
这不是强制性要求。如果您不想要任何自定义的样式规则,可以不包含这样的文件。生成的 HTML 文件中的默认 CSS 规则仍然有效。
如果您唯一的问题是这一行:<link rel="stylesheet" href="custom.css">
,您可以修改模板文件并编写自定义 HTML 导出器:
导航到 nbconvert 的源目录。转到 ./templates/html/
。将有一个名为 full.tpl
的文件。这是您的 HTML 文件的模板。使用文本编辑器打开文件并删除 <link rel="stylesheet" href="custom.css">
行。
使用 .tpl
扩展名 (fullcustom.tpl
) 保存文件。确保将其保存在与 full.tpl
.
下一步是在 Python 中编写自定义导出器 class(推荐)。您必须继承 HTMLExporter
class 中定义的 ./exporters/html.py
。您可以按照此处描述的过程进行操作:https://nbconvert.readthedocs.io/en/latest/external_exporters.html
现在,如果您不想花时间这样做,一个快速的“拼凑”就是实际修改 HTMLExporter
class。如果需要,请创建 html.py
文件的副本,因为它正在被修改。打开./exporters/html.py
,在HTMLExporter
class中找到如下方法:
@default('template_file')
def _template_file_default(self):
return 'full.tpl'
将 return full.tpl
更改为您使用 (fullcustom.tpl
).
full.tpl
的名称