Как преобразовать R Markdown в HTML? Т.е. что делает «вязать HTML» в Rstudio 0.96?
Какие команды запускаются при нажатии «Вязать HTML» в файле R Markdown в Rstudio 0.96?
Моя мотивация заключается в том, что я могу захотеть запустить ту же команду, когда я в другой среде редактирования текста, или я могу захотеть объединить эту команду в более крупном makefile
.
- Ошибка загрузки rJava в RStudio / R после «обновления» до OSX Yosemite
- Открытие приложения Shiny прямо в браузере по умолчанию
- Динамическое создание вкладок с графиками в блестящем состоянии без повторного создания существующих вкладок
- Rstudio дублирует команды в командной строке
- Rstudio rmarkdown: как портретный, так и альбомный макет в одном PDF-файле
- Оператор "[<-" в RStudio и R
- Rtools не обнаружен из RStudio
- В R markdown в RStudio, как я могу предотвратить запуск исходного кода PDF-страницы?
- избегайте строки, напечатанной на консоли, усеченной (в RStudio)
- Разница: кнопка «Скомпилировать PDF» в RStudio vs. knit () и knit2pdf ()
- RStudio не выбирает кодировку, которую я говорю ей при чтении файла
- Изменение пути библиотеки DL по умолчанию с использованием .libPaths в Rprofile.site не работает
- Построение графика во время цикла в RStudio
Поместите Sys.sleep(30)
в кусок, и вы ясно увидите, какие команды вызывают RStudio. В основном они
-
library(knitr); knit()
library(knitr); knit()
чтобы получить файл уценки; - 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.