Как конвертировать R Markdown в HTML? То есть, что делает "вязать HTML" в Rstudio 0.96?


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

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

4 62

4 ответа:

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

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

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

Базовый Скрипт

так что теперь R markdown пакет был выпущен, вот некоторый код для репликации функций Вязания в 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 - это имя вашего файла R markdown. Обратите внимание, что я не уверен на 100% в строке browseURL (поэтому мой вопрос здесь о открытие файлов в веб-браузере).

markdownToHTML Options

хорошая вещь о markdownToHTML это есть куча вариантов в том, как создается HTML - (см. ?markdownHTMLOptions). Так, например, если вы хотите просто фрагмент кода, без заголовка, вы могли бы написать:

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

или если вам не нравится жесткая обертка (т. е. вставка разрывов строк при наличии одиночных ручных разрывов строк в источнике markdown), вы можете опустить опцию "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

это также может быть добавлено в файл makefile, возможно, используя Rscript -e (например, что-то вроде этого). Вот основной пример makefile, который я собрал, где 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=''))"

makefile использует мои предпочтительные параметры markdown: т. е.,options=c('use_xhtml', 'base64_images')

очень простой метод командной строки от knitr в knutshell:

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

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

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

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