在notebook中运行js可临时隐藏代码单元,但仅限当前会话;导出html/pdf需用--no-input参数或nbextensions插件实现彻底隐藏。

直接在 Notebook 里运行一段 JS 就能隐藏所有代码单元,但要注意:这个操作只对当前浏览器会话生效,导出 HTML/PDF 时不会自动继承——得额外配置导出模板或用 nbconvert 参数控制。
运行 JS 脚本临时隐藏代码(适合演示/本地查看)
把下面这段代码放进任意一个 Code cell,运行一次:
from IPython.display import HTML, display
display(HTML('''<script>
$(document).ready(function() {
$('div.input').hide();
$('div.prompt').hide();
});
</script>'''))
它会立即收起所有代码输入区和左侧的 In [ ] 提示符,只留输出和 Markdown。刷新页面后失效,不污染原始 .ipynb 文件。
- 别放在最后几个 cell,建议塞在第一个 cell,确保 DOM 加载完再执行
- 如果用了
jupyter lab,这段 jQuery 不起作用——Lab 默认不用 jQuery,得换方案 - 导出为 HTML 后,这段脚本不会执行,除非你手动加到导出模板里
导出 HTML 时彻底去掉代码(无交互、纯结果)
用 nbconvert 命令行配合内置模板,一步生成“只有输出”的 HTML:
jupyter nbconvert --no-input --to html your_notebook.ipynb
--no-input 是关键参数,它跳过所有 code cell 的渲染,只保留 output 和 markdown。生成的 HTML 文件打开即见干净报告。
- 这个命令不改原文件,输出默认是
your_notebook.html - 如果 notebook 里有
%%capture或print()输出,它们仍会出现在 HTML 中 - 想同时隐藏输出里的
Out[ ]编号?加--no-prompt
用 nbextension 实现按钮式开关(需提前安装)
装 jupyter contrib nbextensions 后启用 Hide Input 插件,就能在 toolbar 多出一个「隐藏代码」按钮:
pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user jupyter nbextension enable hide_input/hide_input
点击按钮可即时切换全部代码的显隐状态,且支持导出时保留该设置(需用 --template=full 或 nbextensions 模板)。
- 插件只对 classic notebook(非 JupyterLab)有效
- 导出命令要写全:
jupyter nbconvert --template=nbextensions --to html your.ipynb - 按钮状态不保存进 .ipynb 文件,每次打开默认显示代码
真正容易被忽略的是:无论用哪种方式隐藏代码,只要 notebook 里存在未执行的 cell,导出时那些 cell 的输出就根本不会出现——不是被隐藏了,是压根没生成。所以交付前务必全选运行一次(Cell → Run All),否则 HTML 里可能大片空白。











