在jupyter笔记本中折叠单元

问题描述:

我正在使用ipython Jupyter笔记本。假设我定义了一个在屏幕上占用大量空间的函数。有没有办法折叠这个单元格?在jupyter笔记本中折叠单元

我希望功能保持执行和可调用,但我想隐藏/折叠单元格,以更好地可视化笔记本电脑。我怎样才能做到这一点?

+2

哇,这已经是2017年并没有简单的解决方案 – user1700890

您可以创建一个单元格,把下面的代码在它:

%%html 
<style> 
div.input { 
    display:none; 
} 
</style> 

运行该小区将隐藏所有输入单元格。要显示它们,您可以使用菜单清除所有输出。

否则,你可以尝试笔记本扩展象下面这样:

https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/Home_3x

+0

笔记本扩展是非常好的。还有一些其他的东西。 https://github.com/ipython-contrib/jupyter_contrib_nbextensions – shahensha

创建custom.js〜/ .jupyter /自定义的内部文件/有下列内容:

$("<style type='text/css'> .cell.code_cell.collapse { max-height:30px; overflow:hidden;} </style>").appendTo("head"); 
$('.prompt.input_prompt').on('click', function(event) { 
    console.log("CLICKED", arguments) 
    var c = $(event.target.closest('.cell.code_cell')) 
    if(c.hasClass('collapse')) { 
     c.removeClass('collapse'); 
    } else { 
     c.addClass('collapse'); 
    } 
}); 

保存,重启后服务器并刷新笔记本。您可以通过单击输入标签(In [])折叠任何单元格。

+2

这对我并不适用,因为当自定义js被执行时,未被加载的div将被加载。但是,这可以解决setTimeout(function(){...},3000)中的所有内容。 – Steohan

+0

非常感谢@Steohan。这有帮助。 – shahensha

+1

将第4行更改为: 'var c = $(event.target).closest('。cell.code_cell')' 和Steohan的建议将所有内容都包含在setTimeout中。 – proteome

jupyter contrib nbextensions Python包中包含可在笔记本中启用的代码折叠扩展。按照链接(Github)获取文档。

要安装使用命令行:

pip install jupyter_contrib_nbextensions 
jupyter contrib nbextension install --user 

为了让生活在其中的管理更容易,我还建议jupyter nbextensions configurator包。这为您的Notebook界面提供了一个额外的选项卡,您可以从中轻松(去)激活所有已安装的扩展。

安装:

pip install jupyter_nbextensions_configurator 
jupyter nbextensions_configurator enable --user 
+4

很酷的东西,但我希望“Codefolding”nbextension可以折叠整个单元格,而不仅仅是代码块。 – bsmith89

+0

我无法获得扩展树,如Github链接所述 – user2110239

+2

如果有人遇到了使用conda的安装问题,请尝试:'pip install jupyter_contrib_nbextensions' then 'jupyter contrib nbextensions install --sys-prefix --skip-running-check '。我希望jupyter默认会有这个包。 – user1700890

的hide_code扩展允许您隐藏单个细胞和/或提示的旁边。安装为

pip3 install hide_code 

访问https://github.com/kirbs-/hide_code/有关此扩展的更多信息。

首先,遵循Energya的指示:

pip install jupyter_contrib_nbextensions 
jupyter contrib nbextension install --user 
pip install jupyter_nbextensions_configurator 
jupyter nbextensions_configurator enable --user 

其次是关键:打开笔记本木星后,点击Nbextension选项卡。现在从Nbextension提供的搜索工具(不是网络浏览器)搜索“colla”,然后你会发现一些名为“可折叠标题”的东西

这就是你想要的!

还有潘燕建议的改进版本。它补充说,显示代码单元背面的按钮:

%%html 
<style id=hide>div.input{display:none;}</style> 
<button type="button" 
onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);"> 
Show inputs</button> 

或Python:

# Run me to hide code cells 

from IPython.core.display import display, HTML 
display(HTML(r"""<style id=hide>div.input{display:none;}</style><button type="button"onclick="var myStyle = document.getElementById('hide').sheet;myStyle.insertRule('div.input{display:inherit !important;}', 0);">Show inputs</button>"""))