Записные книжки R не отображаются должным образом, когда «self_contained» равно FALSE, поскольку каталог «files» удаляется после рендеринга - PullRequest
0 голосов
/ 10 февраля 2020

Иногда желательно создать ноутбук R, который не является автономным. Например, можно загрузить Mathjax из локального файла по своему выбору, и для этого self_contained должно быть FALSE. Но я считаю, что по умолчанию даже самые простые ноутбуки R не отображаются должным образом, когда заголовок YAML включает self_contained: FALSE. Вот минимальный пример:

---
title: "Notebook, not self-contained"
output: 
  html_notebook:
    self_contained: false    
---

Hello.

Когда этот файл отображается с параметрами по умолчанию rmarkdown::render() - или когда я "предпросматриваю" записную книжку, сохраняя ее в RStudio - полученный HTML файл не использует R Notebook по умолчанию CSS, и в верхней части файла много разногласий, как показано в в этом посте . Кажется, проблема в том, что по умолчанию rmarkdown::render() использует clean = TRUE - а для ноутбуков R это означает, что внешний каталог, содержащий все зависимости (jquery, bootstrap, et c.) уничтожен, как только он будет создан. Например, если указанный выше файл называется «myNotebook.Rmd», вызов rmarkdown::render() с параметрами по умолчанию приведет к созданию каталога myNotebook_files, содержащего зависимости, - и он почти мгновенно удалит этот каталог.

Проблема исчезнет, ​​если вы позвоните rmarkdown::render() с clean = TRUE. Но это решение не оптимально. Он оставляет файлы .md в выходном каталоге, который я хотел бы удалить. И он не работает с ярлыками RStudio для вязания или предварительного просмотра записной книжки.

Есть ли способ изменить поведение clean = TRUE по умолчанию rmarkdown::render(), чтобы он не удалял "_files" каталог, когда self_contained установлен на FALSE?

Любопытно, что эта проблема возникает, только если выходной формат установлен на html_notebook, а не на html_document.

...