如何将R Markdown转换为HTML? 也就是说,Rstudio 0.96中“Knit HTML”是做什么的?

在Rstudio 0.96的R Markdown文件上按下“编织HTML”时将运行什么命令?

我的动机是,我可能想要在另一个文本编辑环境中运行相同的命令,或者我可能想将这个命令组合到一个更大的makefile

Sys.sleep(30)放在一个块中,您将清楚地看到RStudio调用了哪些命令。 基本上他们是

  1. library(knitr); knit() library(knitr); knit()得到降价文件;
  2. RStudio具有内部function来将降价转换为HTML;

第二步在下一个markdown软件包中会更加透明。 目前,您可以使用knitr::knit2html('your_file.Rmd')来获取与RStudio提供的类似的HTML文件。

基本脚本

所以现在R markdown软件包已经发布了 ,下面是一些代码来将Knit的function复制到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文件的名字。 请注意,我对browseURL行不是100%自信(因此我的问题是关于在Web浏览器中打开文件 )。

markdownToHTML选项

markdownToHTML的好处在于HTML的创build方式有很多选项(请参阅?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文件

这也可以使用Rscript -e (例如, 类似的东西 )添加到makefile中。 下面是一个基本的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=''))" 

生成文件使用我的首选降价选项:即options=c('use_xhtml', 'base64_images')

非常简单的命令行方法从knitr在一个巧妙的 :

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

这需要使用install.packages(rmarkdown)来安装rmarkdown ,并且安装了install.packages(rmarkdown) (显然它与Rstudio一起提供,请参阅Knithell中的knitr以获取更多详细信息)。

到目前为止,当我使用它时,它很好地把所有的图表放在HTML文件中,而不是graphics目录中的图像,并清除任何中间文件; 就像在RStudio中编译一样。

看来你应该调用rmarkdown :: render()而不是knitr :: knit2html(),因为a.rmd似乎是一个R Markdown v2文档。