Quelles commandes sont exécutées lorsque vous appuyez sur "Knit HTML" sur un fichier R Markdown dans Rstudio 0.96?
Ma motivation est que je pourrais vouloir exécuter la même commande quand je suis dans un autre environnement d'édition de texte ou je pourrais vouloir combiner la commande dans un makefile
plus grand.
Mettez Sys.sleep(30)
dans un morceau et vous verrez clairement quelles commandes sont appelées par RStudio. Fondamentalement, ils sont
library(knitr); knit()
pour obtenir le fichier de démarque;La deuxième étape sera plus transparente dans la prochaine version du package markdown
. Actuellement, vous pouvez utiliser knitr::knit2html('your_file.Rmd')
pour obtenir un fichier HTML similaire à celui de RStudio.
Alors maintenant que le package R markdown
a été publié , voici du code pour répliquer les fonctionnalités de Knit en 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
où test.rmd
est le nom de votre fichier de démarque R. Notez que je ne suis pas sûr à 100% de la ligne BrowseURL (d'où ma question ici sur ouverture de fichiers dans un navigateur Web ).
La bonne chose à propos de markdownToHTML
est qu'il existe des tas d'options dans la façon dont le code HTML est créé (voir ?markdownHTMLOptions
). Ainsi, par exemple, si vous voulez juste un fragment de code sans toutes les informations d'en-tête, vous pouvez écrire:
markdownToHTML('test.md', 'test.html', options='fragment_only')
ou si vous n'aimez pas l'habillage dur (c'est-à-dire l'insertion de sauts de ligne lorsqu'il y a des sauts de ligne manuels uniques dans la source de démarque), vous pouvez omettre l'option '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'))
Cela pourrait également être ajouté à un makefile en utilisant peut-être Rscript -e
(Par exemple, quelque chose comme ça ). Voici un exemple de makefile de base que j'ai mis en place, où test
indique que le fichier rmd est appelé 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=''))"
Le makefile utilise mes options de démarque préférées: c'est-à-dire options=c('use_xhtml', 'base64_images')
Méthode de ligne de commande très simple de knitr en bref :
R -e "rmarkdown::render('knitr_example.Rmd')"
Cela nécessite que rmarkdown
soit installé avec install.packages(rmarkdown)
et que pandoc soit installé (apparemment, il est fourni avec Rstudio, voir knitr en bref pour plus de détails).
Jusqu'à présent, lorsque j'ai utilisé cela, il met bien tous les tracés dans le fichier HTML plutôt que sous forme d'images dans un répertoire de figures et nettoie tous les fichiers intermédiaires, le cas échéant; tout comme la compilation dans RStudio.
Il semble que vous devriez appeler rmarkdown :: render () au lieu de knitr :: knit2html () car a.rmd semble être un document R Markdown v2.