我想在我正在开发的一些函数的文档中引用另一个包(整个包,而不仅仅是其中的一个函数)。我正在使用 Roxygen2 注释来记录我的包功能。
我找不到使用 Roxygen2 创建整个第三方包的链接的方法。要链接到包函数,可以写
[pkg::fun()]
但我不知道如何创建到包本身的链接。
某些软件包公开了通用手册页,并且可以通过例如链接到它。
[pkg::pkg]
。
但是许多软件包没有这个,只有一个通用的软件包插图,其中包含函数列表和说明链接:
可以通过单击 RStudio 中“包”选项卡中的包名称来访问此类页面。
如何从 Roxygen2 markdown 中制作的功能文档链接到它。?
您无法链接到在 RStudio 的“包”窗格中单击包名称时出现的页面。 RStudio 无形地调用
help(package = "<name>")
,这会呈现包的 index。
摘自
R-exts
手册:
标记
(通常以\link{foo}
的组合)生成指向 foo 帮助的超链接。这里 foo 是一个 topic,它是另一个\code{\link{foo}}
文件(可能在另一个包中)中\alias
标记的参数。Rd
因此
\link
和 roxygen2
支持的等效 Markdown 标记只能链接到主题。从这个意义上说,包索引不是一个主题,因为没有相应的 Rd
文件。
最好只是提醒用户他们可以使用
help
来访问您所引用的包的索引。
回到这个......我原来的答案似乎有部分错误。
手册确实提到一种可能性,就是内置宏
\packageIndices
。如果您希望能够引用其索引的包名为 baz,那么您可以要求 maintainer("baz")
执行以下操作。创建一个文件 man/baz-index.Rd
包含
\name{baz-index}
\alias{baz-index}
\title{Index of Package \pkg{baz}}
\description{\packageIndices{baz}}
然后构建并安装 baz twice 以引导索引。 (第一阶段生成 Rd 对象,第二阶段使用这些对象来填充索引。)第二次安装后,
help("baz-index", package = "baz")
将渲染索引(像往常一样,?baz::`baz-index`
)。
第二个 tarball 可以提交到 CRAN(或任何存储库),允许至少具有
Enhances: baz
的其他包链接到具有 \link[baz]{baz-index}
或 \link[baz:baz-index]{<text>}
的 其帮助页面中的索引。
FWIW,我说我原来的答案是部分错误而不是完全错误,因为内置宏
\packageIndices
为您提供了一个没有超链接的索引。如果您想要超链接,那么您可能需要破解,即定义您自己的宏,调用破解版本的tools:::Rd_package_indices
。不值得付出努力,IMO ...