Как конвертировать R Markdown в HTML? Т.е. что делает "Вязание HTML" в Rstudio 0.96?
Какие команды запускаются при нажатии "Knit HTML" в файле R Markdown в Rstudio 0.96?
Моя мотивация заключается в том, что я, возможно, захочу выполнить ту же команду, когда я нахожусь в другой среде редактирования текста, или я могу захотеть объединить команду в больший makefile
,
4 ответа
Положил Sys.sleep(30)
в чанке, и вы будете ясно видеть, какие команды вызываются RStudio. В основном они
library(knitr); knit()
получить файл уценки;- RStudio имеет внутренние функции для преобразования уценки в 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 уценки. Обратите внимание, что я не уверен на 100% в строке browseURL (отсюда мой вопрос об открытии файлов в веб-браузере).
Параметры markdownToHTML
Хорошая вещь о markdownToHTML
в том, что есть множество вариантов того, как создается HTML (см. ?markdownHTMLOptions
). Так, например, если вы хотите просто фрагмент кода без всей информации заголовка, вы можете написать:
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
(например, что-то вроде этого). Вот основной пример make-файла, который я собрал, где 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 использует мои предпочтительные параметры уценки: т.е. 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.