我正在寻找一种在将.iipynb文件导出为HTML时隐藏代码单元格(输入)的方法。我根本不希望代码单元格可见(不是一些关闭/打开它们的按钮)。输出适用于不知道编程语言是什么的人。我尝试了很多在互联网上找到的东西,但似乎没什么用。
由于
答案 0 :(得分:5)
到目前为止(nbconvert版本5.6.0),最简单的解决方案似乎是在使用nbconvert的CLI界面时提供参数--no-input
:
jupyter nbconvert yourNotebook.ipynb --no-input
它像魔术一样工作 更多信息here
答案 1 :(得分:4)
准备好jupyter笔记本 转到Anaconda Prompt-> jupyter笔记本的位置,然后输入以下命令
jupyter nbconvert yourNotebook.ipynb --no-input --no-prompt
这会将Jupyter笔记本转换为html,并且所有单元格都向右对齐。
答案 2 :(得分:4)
补充@vincentVega的回答,需要加上--to
语句,否则会抛出如下错误:ValueError: Please specify an output format with '--to <format>'.
jupyter nbconvert YourNotebook.ipynb --no-input --to html
答案 3 :(得分:2)
您可以使用NBConvert模板执行此操作。那里的大多数示例都是针对Latex / PDF的,不适用于HTML,HTML使用了不同的模板集(由于某种原因,使用了不同的扩展名和略有不同的文件语法)。
将以下内容写入名为hidecode.tpl
的模板文件:
{%- extends 'full.tpl' -%}
{% block input_group %}
{%- if cell.metadata.get('nbconvert', {}).get('show_code', False) -%}
((( super() )))
{%- endif -%}
{% endblock input_group %}
然后使用以下方法将笔记本转换为HTML:
jupyter nbconvert --to html --template hidecode YourNotebook.ipynb
答案 4 :(得分:0)
我最终发现:https://pypi.org/project/hide_code/0.2.0/
这是一个jupyter扩展,它的工作就像一个魅力。我使用命令提示符将笔记本转换为html,因为扩展程序附带的按钮对我不起作用。
答案 5 :(得分:0)
我使用nbinteract(https://www.nbinteract.com/)发布页面,并在单元格顶部发布了#HIDDEN(https://gitter.im/nbinteract/Lobby/)。它没有记录,并且有可能更改,但是为了向后兼容,他们会保留它。.
答案 6 :(得分:0)
在jupyter nbconvert
的最新版本中,您可以使用--no-input
选项:
echo 'A Markdown cell with an equation $x=y+1$
```python
1 + 1
```
' | jupytext --to ipynb | jupyter nbconvert --stdin --execute --no-input --to html --output notebook.html
现在,如果您没有--no-input
选项,请使用--TemplateExporter.exclude_input=True
,它从5.2.1版开始可用。
答案 7 :(得分:0)
对于其他可能希望隐藏特定代码单元的用户,一种解决方案是使用nbdev
包(由fastai开发)中的命令行工具将Jupyter笔记本导出到Markdown。该命令为nbdev_nb2md
。
执行此操作时,如果将#hide
放在任何笔记本单元格的顶部,则不会导出到markdown。它将被忽略。
有关详细信息,请参见此博客文章:https://www.fast.ai/2020/01/20/nb2md/
答案 8 :(得分:0)
对于我的用例,我希望能够在没有笔记本内输出的情况下创建导出,并且尽可能少地手动工作。我设法粘合在一起的适当解决方案如下:
在第一个单元格中执行一些 javascript 以获取当前笔记本的名称。该名称将存储在 nb_name
变量中,该变量可在当前 python 运行时范围内访问。
单元格 1:
%%javascript
IPython.notebook.kernel.execute('nb_name = "' + IPython.notebook.notebook_name + '"')
在单元格 2 中,将获得的名称传递给 shell 调用并使用 --no-input
存储一个 html。这 ”!”在 jupyter notebook 中表示 shell 调用,“&”用于将变量从当前 python 运行时范围传递到 shell 调用。
单元格 2:
print(nb_name)
!jupyter nbconvert --output-dir='./docs' --no-input --to html $nb_name