添加示例时 pkgdown 无法解析 Rd 文件

R.A*_*eda 5 r devtools roxygen2 pkgdown

由于某种原因pkgdown无法解析我的包中的 .Rd 文件之一。roxygen2当我使用@examples标签或替代方案向文档添加示例时,我发现它失败了@example inst/example/add.R。我将函数最小化为两个参数,以便使其更加“可重现”,但仍然出现相同的错误。请在下面找到错误消息、使用该消息生成的 .Rd 文件 devtools::document()以及该函数的 roxygen2 文档。正如您所看到的,我正在使用一个非常简单的示例,运行应该不会出现任何问题...还要说的是,当我运行devtools::check()所有示例时都通过了,所以我不明白为什么pkgdown会失败。

非常感谢你的帮助。

最好的,

错误信息

Reading 'man/merge.Rd'
Error : Failed to parse Rd in merge.Rd
i unused argument (output_handler = evaluate::new_output_handler(value = pkgdown_print))
Error: callr subprocess failed: Failed to parse Rd in merge.Rd
i unused argument (output_handler = evaluate::new_output_handler(value = pkgdown_print))
Run Code Online (Sandbox Code Playgroud)

.Rd 文件

% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/merge.R
\name{merge}
\alias{merge}
\title{Merge two tables}
\usage{
merge(x, y)
}
\arguments{
\item{x}{data frame: referred to \emph{left} in R terminology, or \emph{master} in
Stata terminology.}

\item{y}{data frame: referred to \emph{right} in R terminology, or \emph{using} in
Stata terminology.}
}
\value{
a data.table joining x and y.
}
\description{
This is the main and, basically, the only function in joyn.
}
\examples{
x <- c(1, 2)
}
Run Code Online (Sandbox Code Playgroud)

roxygen2 文档

Reading 'man/merge.Rd'
Error : Failed to parse Rd in merge.Rd
i unused argument (output_handler = evaluate::new_output_handler(value = pkgdown_print))
Error: callr subprocess failed: Failed to parse Rd in merge.Rd
i unused argument (output_handler = evaluate::new_output_handler(value = pkgdown_print))
Run Code Online (Sandbox Code Playgroud)

dee*_*nes 4

此错误来自downlit::evaluate_and_highlight(遗憾的是它没有在输出中报告),可以通过安装以下开发版本来修复downlit

library(devtools)
install_github('r-lib/downlit')
Run Code Online (Sandbox Code Playgroud)

仅当您也使用来自 的 git 版本时才有意义pkgdown,稳定版pkgdown(版本 1.6.1)与稳定版运行得很好downlit。当然,任何包的开发版本都可能随时崩溃,但在它不会崩溃之前,这都没关系。