Как преобразовать R Markdown в HTML? Т.е. что делает «вязать HTML» в Rstudio 0.96?

Какие команды запускаются при нажатии «Вязать HTML» в файле R Markdown в Rstudio 0.96?

Моя мотивация заключается в том, что я могу захотеть запустить ту же команду, когда я в другой среде редактирования текста, или я могу захотеть объединить эту команду в более крупном makefile .

Поместите Sys.sleep(30) в кусок, и вы ясно увидите, какие команды вызывают RStudio. В основном они

  1. library(knitr); knit() library(knitr); knit() чтобы получить файл уценки;
  2. RStudio имеет внутренние функции для преобразования меток в HTML;

Второй шаг будет более прозрачным в следующей версии пакета markdown . В настоящее время вы можете использовать knitr::knit2html('your_file.Rmd') чтобы получить аналогичный HTML-файл, который дает вам RStudio.

Основной скрипт

Итак, теперь, когда пакет R markdown был выпущен , вот некоторый код для репликации функций Knit to Html.

 require(knitr) # required for knitting from rmd to md require(markdown) # required for md to html knit('test.rmd', 'test.md') # creates md file markdownToHTML('test.md', 'test.html') # creates html file browseURL(paste('file://', file.path(getwd(),'test.html'), sep='')) # open file in browser 

где test.rmd – это имя вашего файла test.rmd R. Обратите внимание, что я не уверен на 100% в строке browseURL (отсюда и мой вопрос об открытии файлов в веб-браузере ).

Параметры markdownToHTML

Хорошая вещь о markdownToHTML заключается в том, что есть кучи опций в том, как создается HTML (см. « ?markdownHTMLOptions ). Например, если вы хотите просто fragment кода без всякой информации заголовка, вы можете написать:

 markdownToHTML('test.md', 'test.html', options='fragment_only') 

или если вам не нравится жесткая упаковка (т. е. вставка разрывов строк при наличии отдельных разрывов строк в источнике уценки), вы можете опустить параметр «hard_wrap».

 # The default options are 'hard_wrap', 'use_xhtml', # 'smartypants', and 'base64_images'. markdownToHTML('test.md', 'test.html', options=c('use_xhtml', 'base64_images')) 

Makefile

Это может также быть добавлено в make-файл, возможно, с использованием Rscript -e (например, что-то вроде этого ). Вот основной пример makefile, который я собрал вместе, где test указывает, что файл test.rmd называется test.rmd .

 RMDFILE=test html : Rscript -e "require(knitr); require(markdown); knit('$(RMDFILE).rmd', '$(RMDFILE).md'); markdownToHTML('$(RMDFILE).md', '$(RMDFILE).html', options=c('use_xhtml', 'base64_images')); browseURL(paste('file://', file.path(getwd(),'$(RMDFILE).html'), sep=''))" 

В make-файле используются мои предпочтительные параметры разметки: например, options=c('use_xhtml', 'base64_images')

Очень простой способ командной строки из knitr в бесцеремонном :

 R -e "rmarkdown::render('knitr_example.Rmd')" 

Для этого необходимо rmarkdown с install.packages(rmarkdown) и установить pandoc (по-видимому, он поставляется с Rstudio, см. Knitr в скобках для более подробной информации).

До сих пор, когда я использовал это, он красиво помещает все графики в файл HTML, а не как изображения в каталоге фигур и очищает любые промежуточные файлы, если они есть; так же, как компиляция в RStudio.

Кажется, вы должны вызвать rmarkdown :: render () вместо knitr :: knit2html (), потому что a.rmd представляется документом R Markdown v2.

  • Обновить R с помощью RStudio
  • Как добавить оглавление в Rmarkdown?
  • Графики ggplot в скриптах не отображаются в Rstudio
  • Давайте будем гением компьютера.