我正在尝试使用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源
  • 编织或编织的HTML小插图
  • 和代码块中的R代码

  • 这与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小插图。

    因此有可能
  • 生成源
  • 解压缩tar.gz文件
  • 浏览并打开生成的文件
  • 关于r - 如何使RStudio自动编译R Markdown小插图?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19372260/

    10-11 17:48