隐藏在R中的jupiter中的代码

时间:2016-01-26 14:17:47

标签: r jupyter jupyter-notebook jupyter-irkernel

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

  1. 所有代码单元
  2. 一些代码单元
  3. 当我找到这个时,我找到了python内核的答案。在R中没有这种方法(没有python代码)吗?

3 个答案:

答案 0 :(得分:4)

所以我开始结合python的答案: How to hide code from cells in ipython notebook visualized with nbviewer?How to render LaTeX / HTML in Jupyter (R)? 它的工作原理。 如果将以下代码放在单元格中,将获得隐藏代码的按钮。从这里开始,我想我知道从哪里开始。

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>'
)

答案 1 :(得分: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

答案 2 :(得分: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(没有输入块)。