5

我想尝试使用 R 内核在 jupyter 中生成报告(pdf 和可能是 html)。但是,我想以两种方式隐藏代码,具体取决于受众:

  1. 所有代码单元
  2. 一些代码单元

当我寻找这个时,我找到了 python 内核的答案。R中有没有办法做到这一点(没有python代码)?

4

3 回答 3

9

所以我开始结合python的答案: 如何在用nbviewer可视化的ipython notebook中隐藏单元格中的代码?如何在 Jupyter (R) 中渲染 LaTeX / HTML ? 它有效。如果将以下代码放入单元格中,将获得一个隐藏代码的按钮。从这里我想我知道从哪里开始。

library(IRdisplay)

display_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>'
)
于 2016-01-26T16:25:54.467 回答
2

当您谈论制作 HTML 和 PDF 报告时,您可以通过使用带有 nbconvert 的自定义模板并使用它来隐藏单元格来做到这一点。这适用于任何笔记本,与您使用的内核无关。

关于 nbconvert 模板的文档:http: //nbconvert.readthedocs.org/en/latest/customizing.html

包括基于单元元数据隐藏代码单元的示例:https ://github.com/jupyter/ngcm-tutorial/tree/master/Day-2/nbconvert_templates

于 2016-03-01T12:16:49.840 回答
0

在第一个单元格中添加一些CSS代码,将该单元格更改为“Raw NBConvert”,然后将指定的格式CSS应用于生成的 HTML:

要隐藏输入块:

<style type="text/css">
.input_hidden{
    display: none
}
</style>

其他风格定义也可以去那里。

然后运行ipython nbconvert the_name_of_the_stuff.ipynb --to slides以生成 HTML(没有输入块)。

于 2016-01-26T16:57:23.317 回答