我有一个使用 NBviewer 可视化的 ipython/jupyter 笔记本。
如何隐藏 NBviewer 呈现的笔记本中的所有代码,以便仅显示代码输出(例如绘图和表格)和降价单元格?
我有一个使用 NBviewer 可视化的 ipython/jupyter 笔记本。
如何隐藏 NBviewer 呈现的笔记本中的所有代码,以便仅显示代码输出(例如绘图和表格)和降价单元格?
from IPython.display import HTML
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')
我会用hide_input_all
从nbextensions(https://github.com/ipython-contrib/IPython-notebook-extensions)。就是这样:
找出你的 IPython 目录在哪里:
from IPython.utils.path import get_ipython_dir
print get_ipython_dir()
下载nbextensions并将其移动到 IPython 目录。
编辑您的custom.js在IPython的目录文件的地方(我是profile_default /静态/自定义),以类似于 custom.example.js在nbextensions目录。
将此行添加到custom.js:
IPython.load_extensions('usability/hide_input_all')
无论工作簿如何,IPython Notebook 现在都有一个按钮来切换代码单元格。
我编写了一些代码来实现这一点,并添加了一个按钮来切换代码的可见性。
以下内容位于笔记本顶部的代码单元格中:
from IPython.display import display
from IPython.display import HTML
import IPython.core.display as di # Example: di.display_html('<h3>%s:</h3>' % str, raw=True)
# This line will hide code by default when the notebook is exported as HTML
di.display_html('<script>jQuery(function() {if (jQuery("body.notebook_app").length == 0) { jQuery(".input_area").toggle(); jQuery(".prompt").toggle();}});</script>', raw=True)
# This line will add a button to toggle visibility of code blocks, for use with the HTML export version
di.display_html('''<button onclick="jQuery('.input_area').toggle(); jQuery('.prompt').toggle();">Toggle code</button>''', raw=True)
更新: Jupyter 中的 Markdown 单元格会有一些有趣的行为,但它在笔记本的 HTML 导出版本中运行良好。
最新的 IPython 笔记本版本不再允许在 Markdown 单元格中执行 javascript,因此添加具有以下 javascript 代码的新 Markdown 单元格将不再用于隐藏您的代码单元格(请参阅此链接)
更改 ~/.ipython/profile_default/static/custom/custom.js 如下:
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$([IPython.events]).on("app_initialized.NotebookApp", function () {
$("#view_menu").append("<li id=\"toggle_toolbar\" title=\"Show/Hide code cells\"><a href=\"javascript:code_toggle()\">Toggle Code Cells</a></li>")
});