我有一个jupyter笔记本,它是markdown和代码的混合体。最后,我想将其作为pdf报告呈现出来并隐藏代码。我仍然希望看到代码,图表和表格的输出,我只是不想在最终报告中看到代码。我发现下面的帖子中有下面的代码,如果添加到笔记本中,会创建一个切换按钮,可用于隐藏或显示输入代码。问题是我最终在报告的顶部有一个切换按钮。有谁知道怎么做?
发表:
代码:
<script>
function code_toggle() {
if (code_shown){
$('div.input').hide('500');
$('#toggleButton').val('Show Code')
} else {
$('div.input').show('500');
$('#toggleButton').val('Hide Code')
}
code_shown = !code_shown
}
$( document ).ready(function(){
code_shown=false;
$('div.input').hide()
});
</script>
<form action="javascript:code_toggle()"><input type="submit" id="toggleButton" value="Show Code"></form>
答案 0 :(得分:3)
您可以通过创建自定义nbconvert模板轻松实现所需目的。这意味着您的实时笔记本仍然可以显示输入,但是当您转换为pdf时,它会隐藏输入。
创建扩展标准乳胶模板article.tplx
的模板文件(乳胶模板也用于pdf转换)
custom.tplx:
% Inherit from the article.tplx
((* extends 'article.tplx' *))
% remove inputs
((* block input_group *))
((* endblock input_group *))
然后使用以下命令转换您的笔记本
jupyter nbconvert --template=custom.tplx --to=pdf your_notebook.ipynb
以下是使用自定义模板的文档:http://nbconvert.readthedocs.io/en/latest/customizing.html#Custom-Templates
答案 1 :(得分:3)
如果您不想编写自己的模板,并且不会对输出感到困扰,可以使用hide_input_all nbextension作为jupyter contrib nbextensions包的一部分提供的here 。这提供了隐藏所有代码单元的输入(但不是输出)的按钮,以及设置元数据项,允许您使用包提供的模板将隐藏的输入导出到html,latex或pdf:
jupyter nbconvert --template=nbextensions --to=html my_notebook.ipynb
答案 2 :(得分:2)
我确定您现在已经弄清楚了,但是您只需在单元格顶部添加注释即可:
# @hidden_cell
答案 3 :(得分:0)
请阅读How to print out from Jupyter Notebook without code blocks。
基本上,您需要添加CSS。
如果要打印代码,请使用@media print{}
。如果要在屏幕上显示它,则需要将其取出并运行。
将以下内容粘贴到单元格中并运行它。然后从浏览器的文件>打印中将其打印出来。所有代码和输出块都应该消失。
%%html
<style>
@media print {
div.input {
display: none;
padding: 0;
}
div.output_prompt {
display: none;
padding: 0;
}
div.text_cell_render {
padding: 1pt;
}
div#notebook p,
div#notebook,
div#notebook li,
p {
font-size: 11pt;
line-height: 135%;
margin: 0;
}
.rendered_html h1,
.rendered_html h1:first-child {
font-size: 16pt;
margin: 7pt 0;
}
.rendered_html h2,
.rendered_html h2:first-child {
font-size: 14pt;
margin: 6pt 0;
}
.rendered_html h3,
.rendered_html h3:first-child {
font-size: 13pt;
margin: 6pt 0;
}
div.output_subarea {
padding: 0;
}
}
@page {
size: A4;
}
</style>