我正在尝试使用R Markdown编写R Package vignettes。我正在使用R Studio的软件包创作工具。
我的R大于3.0版。
我在vignettes
文件夹中有一个.Rmd文件,该文件的顶部包含以下文本:
<!--
%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{An Introduction to the bootcorrelations package}
-->
我的
DESCRIPTION
文件中包含以下内容:VignetteBuilder: knitr
Suggests: knitr
当我在RStudio中清理并构建或重新加载该软件包时,会显示小插图源,但不会显示HTML(即
inst/man
中没有HTML文件)。如何让RStudio从R Markdown插图自动创建HTML?
我已经阅读了Yihui's post on R Package Vignettes with Markdown,并建议使用一个makefile,但是最近的documentation about knitr vignettes建议不再使用该makefile。
我还意识到,我可以使用以下命令手动创建HTML小插图:
library(knitr)
knit(input='vignettes/foo.Rmd', output='inst/doc/foo.md')
library(markdown)
markdownToHTML('inst/doc/foo.md', 'inst/doc/foo.html')
一个可重现的示例:
Vectorize(dir.create)(c("test", "test/R", "test/man", "test/vignettes"))
cat(
'Package: test
Title: Test pkg
Description: Investigate how to auto-compile markdown vignettes
Version: 0.0-1
Date: 2015-03-15
Author: Jeromy Anglim
Maintainer: Jeromy Anglim <[email protected]>
Suggests: knitr
License: Unlimited
VignetteBuilder: knitr',
file = "test/DESCRIPTION"
)
cat(
'---
title: "Introduction"
author: "Jeromy Anglim"
date: "`r Sys.Date()`"
output: html_document
---
<!--
%\\VignetteEngine{knitr::rmarkdown}
%\\VignetteIndexEntry{Introduction}
-->
# Introduction
A sample vignette!
```{r}
1 + 1
```',
file = "test/vignettes/intro.Rmd"
)
cat(
"#' Nothing
#' This function is only needed so that roxygen generates a NAMESPACE file.
#' @export
nothing <- function() 0",
file = "test/R/nothing.R"
)
library(roxygen2)
library(devtools)
roxygenise("test")
build("test")
最佳答案
更新:从侧面考虑,至少有三个选项。
1.使用build_vignettes()
正如@Hadley指出的那样,从build_vignettes()
包中运行devtools
将构建小插图并将其放置在包的inst/man
目录中。
devtools::build_vignettes()
构建小插图意味着您可以在
inst/man
中获得三个版本:Rmd源
这与RStudio中的build and reload命令无关,但是它是该任务的单行解决方案。并且可以轻松地将其合并到
makefile
中。2.在Rstudio中使用
Knit HTML
正如@TylerRinker指出的那样,您仅可以在Rstudio中使用Knit HTML。这会将rmd小插图的md和HTML编织版本添加到
vignettes
目录中。这也与构建过程无关,但是正如@TylerRinker指出的那样,通常您不希望将小插图与主构建过程联系在一起。这还具有为您提供md文件的好处,这是在github上显示小插图的不错选择,尽管http://htmlpreview.github.com/是在github上显示HTML小插图的选择。
3.构建源程序包并从压缩文件中提取
RStudio中的
Build - Build Source Package
对应于R CMD build
。运行时,将创建一个压缩的tar.gz
文件,该文件在inst/doc
目录中包含原始rmd小插图文件的Rmd,R和HTML文件。这在official documentation on writing package vignettes中进行了说明,该文件指示您使用
R CMD build
生成PDF和HTML小插图。因此有可能
关于r - 如何使RStudio自动编译R Markdown小插图?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19372260/