4

我正在构建一个新的 R 包。我在 这里给出了同样的问题。我也浏览了建议的链接。但我不断收到拒绝,因为纸条上写着

“包有一个 VignetteBuilder 字段,但没有预建的小插图索引。
所以请添加一个小插图索引。”

我去了 CRAN 包列表以获取 最新的包,然后浏览了 hyfo、 mldr 和其他一些在过去几天都发布的包的代码。他们都没有索引文件。但是,我下面的代码被拒绝了。我的代码在运行时没有显示任何警告、错误或注释devtoold::check()。我也没有收到任何警告/错误devtools:build_win()
关于我所缺少的任何想法?

我在 Windows 上使用 R 版本 3.2.2。我的DESCRIPTION文件具有以下内容

Package: Mypackage
Suggests:
    knitr,
    rmarkdown,
    R.rsp
VignetteBuilder: knitr
RoxygenNote: 5.0.1

在vignettes目录中,该文件Mypackage.Rmd

title: "Mypackage"
author: "blah"
date: "`r Sys.Date()`"
output:
  html_document:
    fig_width: 7
    fig_height: 6
    fig_caption: true
vignette: >
    %\VignetteIndexEntry{Mypackage}
    %\VignetteEngine{R.rsp::asis}
    %\VignetteEncoding{UTF-8}
---
## Introduction
The contents of the vignette

如何创建小插图索引或如何使此注释消失?

4

1 回答 1

0

好的 2 问题。

小插图索引

首先,您需要有一个build/vignette.rds列出小插曲的文件。您可以通过以下方式检查:

> readRDS("build/vignette.rds")
                File            Title       PDF                          R           Depends         Keywords
1      Mypackage.Rmd        Mypackage       Mypackage.html     Mypackage.R  
2        MyGuide.Rmd        MyGuide         MyGuide.html         MyGuide.R  

这里的“标题”列是来自的标题,\VignetteIndexEntry{Mypackage}其余的是文件的名称。

请注意,这里还有 2 个额外的空白字段“取决于”和“关键字”。如果您还没有,您可以创建一个新的 data.frame。

file <- data.frame(matrix(NA, 1, 6))
colnames(file) <- c("File", "Title", "PDF", "R", "Depends", "Keywords")
file[1,] <- c("MyPackage.Rmd", "MyPackage", "MyPackage.html", "MyPackage.R", "", "")
saveRDS(file, file = "vignette.rds")

要将带有新小插图的行添加到现有的 data.frame:

file <- readRDS("build/vignette.rds")
file[3,] <- c("import_reactome.Rmd", "Importing pathways from databases", "import_reactome.html", "import_reactome.R", "", "")
saveRDS(file, file = "vignette.rds")

生成静态 HTML 插图

这些小插曲不是在 CRAN 上生成的,必须在上传前预先生成。在 RStudio 中运行knitr::knitRmd 文件是执行此操作的最简单方法。然后将输出文件复制到vignettes/MyPackage.html. 您也可以通过将其复制到inst/doc/MyPackage.html.

您可以添加此行以在构建包时返回 HTML 文件。

title: "Mypackage"
author: "blah"
date: "`r Sys.Date()`"
output:
  html_document:
    fig_width: 7
    fig_height: 6
    fig_caption: true
    keep_html: true       ### <- add this line
vignette: >
    %\VignetteIndexEntry{Mypackage}
    %\VignetteEngine{R.rsp::asis}
    %\VignetteEncoding{UTF-8}
---

不需要降价文件。您可以添加以下行.Rbuildignore以防止将其包含在内。

^vignettes/plot_directed.md#

使用 devtools 通过检查

有关更多详细信息,请参阅 中的Static_PDF_and_HTML_vignetteR.rsp这描述了如何使用R.rsp::asis引擎。

关键部分是您需要同时拥有 avignettes/MyPackage.htmlvignettes/MyPackage.html.asisfile。该vignettes/MyPackage.html.asis文件只需要 3 行,其余为可选。

%\VignetteIndexEntry{MyPackage}
%\VignetteEngine{R.rsp::asis}
%\VignetteEncoding{UTF-8}

一旦包含这些文件,devtools::install(build_vignettes = TRUE)并且devtools::check()应该按预期运行。

于 2020-11-26T10:53:11.763 回答