Cómo convertir R Markdown a HTML? Es decir, ¿qué hace “Knit HTML” en Rstudio 0.96?

¿Qué comandos se ejecutan al presionar “Knit HTML” en un archivo R Markdown en Rstudio 0.96?

Mi motivación es que podría querer ejecutar el mismo comando cuando estoy en otro entorno de edición de texto o podría querer combinar el comando en un makefile más grande.

Pon Sys.sleep(30) en un pedazo y verás claramente qué comandos son llamados por RStudio. Básicamente son

  1. library(knitr); knit() library(knitr); knit() para obtener el archivo de descuento;
  2. RStudio tiene funciones internas para convertir el descuento en HTML;

El segundo paso será más transparente en la próxima versión del paquete de markdown . Actualmente puedes usar knitr::knit2html('your_file.Rmd') para obtener un archivo HTML similar al que te da RStudio.

Script básico

Entonces, ahora que se ha lanzado el paquete R markdown , aquí hay un código para replicar las características de 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 

donde test.rmd es el nombre de su archivo R markdown. Tenga en cuenta que no estoy 100% seguro acerca de la línea browseURL (de ahí mi pregunta sobre la apertura de archivos en un navegador web ).

Opciones de markdownToHTML

Lo bueno de markdownToHTML es que hay montones de opciones sobre cómo se crea el HTML (ver ?markdownHTMLOptions ). Entonces, por ejemplo, si solo quiere un fragmento de código sin toda la información del encabezado, podría escribir:

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

o si no le gusta el envoltorio rígido (es decir, insertar saltos de línea cuando hay saltos de línea manuales únicos en la fuente de rebaja), puede omitir la opción ‘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

Esto también podría agregarse a un archivo MAKE quizás utilizando Rscript -e (por ejemplo, algo como esto ). Este es un ejemplo básico de makefile que test.rmd , donde la test indica que el archivo test.rmd se llama 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=''))" 

El archivo MAKE utiliza mis opciones de reducción preferidas: es decir, options=c('use_xhtml', 'base64_images')

Método de línea de comando muy fácil de knitr en knutshell :

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

Esto requiere que rmarkdown se instale con install.packages(rmarkdown) y que se instale pandoc (aparentemente viene con Rstudio, consulte knitr en knutshell para más detalles).

Hasta ahora, cuando lo he usado, coloca todas las ttwigs en el archivo HTML en lugar de imágenes en un directorio de figuras y limpia los archivos intermedios, si los hay; al igual que la comstackción en RStudio.

Parece que debe llamar a rmarkdown :: render () en lugar de knitr :: knit2html () porque a.rmd parece ser un documento de R Markdown v2.