在Rstudio 0.96中的R Markdown文件上按“编织HTML”时,运行什么命令?
我的动机是,当我在另一个文本编辑环境中时,我可能想运行相同的命令,或者我可能希望在更大的命令中组合该命令makefile。
在Rstudio 0.96中的R Markdown文件上按“编织HTML”时,运行什么命令?
我的动机是,当我在另一个文本编辑环境中时,我可能想运行相同的命令,或者我可能希望在更大的命令中组合该命令makefile。
Answers:
放Sys.sleep(30)一块,您将清楚地看到RStudio调用了哪些命令。基本上是
library(knitr); knit() 获取降价文件;在降价软件包的下一版本中,第二步将更加透明。目前,您可以knitr::knit2html('your_file.Rmd')用来获取RStudio提供的类似HTML文件。
2019年9月17日更新:以上答案适用于RStudio v0.96(2012年)。现在R Markdown是通过编译的rmarkdown::render(),它使用Pandoc而不是退休的R包markdown。有关更多详细信息,请参见R Markdown,Knitr,Pandoc和Bookdown之间的关系。
knit2html("Report.Rmd", encoding='ISO8859-1')不会产生与knit按钮相同的html:使用时存在编码问题knit2html。但是,当我按下“编织”按钮时,确实可以在日志中看到ISO8859-1该encoding选项。因此,该差异应在md向html转换。编织按钮真的有用markdownToHTML吗?
rmarkdown::render(),这就是我到达此页面的方式,并且解决了我的问题
knitr,rmarkdown因为我不太确定自己是否会公正对待(我今天才学到了如何做到这一点毕竟!)
因此,既然Rmarkdown包已经发布,这里有一些代码将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.rmdR markdown文件的名称在哪里。请注意,我对BrowseURL行不是100%的自信(因此,我的问题是在网络浏览器中打开文件)。
好处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(例如,类似于)将其全部添加到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使用我首选的markdown选项: options=c('use_xhtml', 'base64_images')
options(rstudio.markdownToHTML=... rstudio.com/ide/docs/authoring/markdown_custom_rendering
find,就可以实际呈现的RMD文件整个目录结构(例如,对于有许多演示/教程的课程)find . -name '*Rmd' -exec R -e "rmarkdown::render('{}')" \; > /dev/null。