在Rstudio 0.96的R Markdown文件中按“编织HTML”时会运行哪些命令?
我的动机是,当我在另一个文本编辑环境中时,我可能想要运行相同的命令,或者我可能想要在更大的makefile
中组合命令。
答案 0 :(得分:62)
现在是R markdown
package has been released,这里有一些代码可以将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降价文件的名称。
请注意,我对browseURL行没有100%的信心(因此我的问题是关于opening files in a web browser)。
关于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'))
也可以使用Rscript -e
(例如something like this)将其全部添加到makefile中。这是我放在一起的基本示例makefile,其中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')
答案 1 :(得分:39)
将Sys.sleep(30)
放入一个块中,您将清楚地看到RStudio调用的命令。基本上他们是
library(knitr); knit()
获取降价文件; 第二步将在下一版markdown
包中更加透明。目前,您可以使用knitr::knit2html('your_file.Rmd')
获取与RStudio相同的HTML文件。
答案 2 :(得分:26)
来自knitr in a knutshell的非常简单的命令行方法:
R -e "rmarkdown::render('knitr_example.Rmd')"
这需要rmarkdown
安装install.packages(rmarkdown)
并安装pandoc(显然它附带Rstudio,有关详细信息,请参阅knitr in a knutshell。)
到目前为止,当我使用它时,它很好地将所有绘图放在HTML文件中,而不是图形目录中的图像,并清理任何中间文件,如果有的话;就像在RStudio中编译一样。
答案 3 :(得分:1)
似乎你应该调用rmarkdown :: render()而不是knitr :: knit2html(),因为a.rmd似乎是一个R Markdown v2文档。