在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.rmd
R 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
。