Скрытие кода на юпитере в R

Я хотел бы попытаться создать отчеты (pdf и, возможно, html) в jupyter с использованием ядра R. Однако я хотел бы скрыть код двумя способами, в зависимости от аудитории:

  1. все ячейки кода
  2. несколько ячеек кода

Когда я искал это, я нашел ответы для ядра Python. Есть ли способ сделать это в R (без кода Python)?


person Bartek    schedule 26.01.2016    source источник


Ответы (3)


Итак, я начал комбинировать ответ Python: Как скрыть код из ячеек в блокноте ipython, визуализированный с помощью nbviewer? с помощью Как визуализировать LaTeX/HTML в 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>'
)
person Bartek    schedule 26.01.2016
comment
Огромное спасибо. Это позволяет мне давать людям записные книжки, экспортированные в html, вместо того, чтобы возиться с уценкой! - person cs0815; 13.02.2021

Поскольку вы говорите о создании отчетов в формате HTML и PDF, вы можете сделать это, используя собственный шаблон с nbconvert и используя его для скрытия ячеек. Это будет работать для любого ноутбука, независимо от используемого вами ядра.

Документы по шаблонам nbconvert: http://nbconvert.readthedocs.org/en/latest/customizing.html

Примеры, включая скрытие ячеек кода на основе метаданных ячеек: https://github.com/jupyter/ngcm-tutorial/tree/master/Day-2/nbconvert_templates

person Thomas K    schedule 01.03.2016

Добавьте код 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 (без блоков ввода).

person CT Zhu    schedule 26.01.2016