如何让 roxygen2 将反引号解释为代码格式?

How to get roxygen2 to interpret backticks as code formatting?

使用 code 格式编写文档的标准方法是使用 \code{}.

#' @param foo value passed on to \code{bar()}变为

Arguments

foo    value passed on to bar()

但是,我看到一些软件包(即 dplyr)使用反引号代替 \code{} 来达到同样的效果。这要好得多,因为它不那么笨重并且允许非常漂亮的语法突出显示。

但是,如果我在自己的程序包上尝试这样做,反引号会被解释为...只是反引号,就像任何其他字符一样。

dplyr::across() 的文档以:

开头
#' @description
#' `across()` makes it easy to apply the same transformation to multiple [...]

它被编译并在手册页中显示为:

Description

across() makes it easy to apply the same transformation to multiple [...]

但是如果我在我的包裹上尝试类似的东西,我会得到:

Description

`across()` makes it easy to apply the same transformation to multiple [...]

奇怪的是,我已经为一个简单的 PR 分叉了包 glue(它也设法使用反引号来格式化代码),如果我在本地构建包,反引号会起作用(我得到 code 格式化)。我一辈子都弄不明白为什么它可以在那里工作,但我的包裹却不行。


那么,是否需要修改一些设置才能使其正常工作?我检查了 dplyr.Rproj 但没有发现任何相关内容。我也浏览了 Doxyfile,但不知道它做了什么,也不知道我想在那里寻找什么。

问题的所有功劳都归功于 ,只需用答案形式化即可:

秘密就在roxygen2 documentation:只需将以下内容添加到包DESCRIPTION文件的末尾:

# DESCRIPTION file
# [... rest of file ...]
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.2  # actually works since 6.0.0

正如该代码所暗示的那样,这会将 roxygen2 设置为将命令解释为良好的 ol' Markdown,就像我们在 SO 和其他地方习惯使用的那样。这也意味着所有其他标准 Markdown 命令,例如 **bold***italics*,以及 [text](http://www.url.com),由 ``` 定义的代码块,逐项列表和枚举列表等。它是全面的巨大进步。

尽管要小心并查看文档,因为有一些陷阱。例如,列表的开头不需要空行,所以不要以 #' 1. [...]#' * [...] 开头任何行,否则你会不小心创建一个列表!)。还有一些东西还没有用,但它们很小。