R 包文档:链接到整个包,而不是函数

问题描述 投票:0回答:2

我想在我正在开发的一些函数的文档中引用另一个包(整个包,而不仅仅是其中的一个函数)。我正在使用 Roxygen2 注释来记录我的包功能。

我找不到使用 Roxygen2 创建整个第三方包的链接的方法。要链接到包函数,可以写

[pkg::fun()]
但我不知道如何创建到包本身的链接。

某些软件包公开了通用手册页,并且可以通过例如链接到它。

[pkg::pkg]

但是许多软件包没有这个,只有一个通用的软件包插图,其中包含函数列表和说明链接:

可以通过单击 RStudio 中“包”选项卡中的包名称来访问此类页面。

如何从 Roxygen2 markdown 中制作的功能文档链接到它。?

r documentation roxygen2
2个回答
4
投票

您无法链接到在 RStudio 的“包”窗格中单击包名称时出现的页面。 RStudio 无形地调用

help(package = "<name>")
,这会呈现包的 index

摘自

R-exts
手册

标记

\link{foo}
(通常以
\code{\link{foo}}
的组合)生成指向 foo 帮助的超链接。这里 foo 是一个 topic,它是另一个
\alias
文件(可能在另一个包中)中
Rd
标记的参数。

因此

\link
roxygen2
支持的等效 Markdown 标记只能链接到主题。从这个意义上说,包索引不是一个主题,因为没有相应的
Rd
文件。

最好只是提醒用户他们可以使用

help
来访问您所引用的包的索引。


0
投票

回到这个......我原来的答案似乎有部分错误。

手册确实提到一种可能性,就是内置宏

\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 ...

© www.soinside.com 2019 - 2024. All rights reserved.