30

我正在尝试使用 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(即,在 中没有 HTML 文件inst/man)。

在此处输入图像描述

如何让 RStudio 从 R Markdown Vignette 自动创建 HTML?

我已经阅读了Yihui 关于 R Package Vignettes with Markdown 的帖子,它建议使用 makefile,但是这个关于 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 <a@b.com>
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")
4

1 回答 1

17

更新:横向思考,至少有三个选项。

1. 使用 build_vignettes()

正如@Hadley 指出的那样,build_vignettes()devtools包中运行将构建小插图并将它们放在inst/man包的目录中。

devtools::build_vignettes()

构建小插图意味着您可以获得三个版本inst/man

  1. Rmd 源
  2. 针织或编织的 HTML 插图
  3. 和代码块中的 R 代码

这与 RStudio 中的构建和重新加载命令无关,但它是该任务的单行解决方案。它可以很容易地合并到一个makefile.

2.Knit HTML在Rstudio中使用

正如@TylerRinker 所说,您可以在 Rstudio 中使用 Knit HTML。这会将 rmd 小插图的 md 和 HTML 编织版本添加到vignettes目录中。

这也与构建过程无关,但正如@TylerRinker 指出的那样,您通常不希望小插曲与主要构建过程相关联。这还具有为您提供 md 文件的好处,它可以是在 github 上显示小插图的不错选择,尽管http://htmlpreview.github.com/是在 github 上显示 HTML 小插图的一个选项。

3. 编译源码包并从压缩文件中解压

Build - Build Source Package在 RStudio 中对应于R CMD build. 运行时会创建一个压缩tar.gz文件,该文件在inst/doc目录中包含原始 rmd 小插图文件的 Rmd、R 和 HTML 文件。

这在有关编写包小插图的官方文档中进行了描述,该文档指导您使用R CMD build生成 PDF 和 HTML 小插图。

所以可以

  1. 构建源
  2. 解压 tar.gz 文件
  3. 浏览并打开生成的文件
于 2013-10-15T04:03:48.083 回答