Как конвертировать R Markdown в HTML? То есть, Что делает "Knit HTML" в Rstudio 0.96?
4 ответов
поставить Sys.sleep(30)
в куске, и вы ясно увидите, какие команды вызываются RStudio. В основном они
-
library(knitr); knit()
для получения файла markdown; - RStudio имеет внутренние функции для преобразования markdown в HTML;
второй шаг будет более прозрачным в следующей версии markdown
пакета. В настоящее время вы можете использовать knitr::knit2html('your_file.Rmd')
чтобы получить аналогичный HTML-файл, как RStudio дает вам.
Базовый Скрипт
так что теперь R markdown
пакет был выпущен, вот некоторый код для репликации функций Knit в 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
хорошая вещь о 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'))
make-файл
это также может быть добавлено в 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 в двух словах:
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.