如何让 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. [...]
或 #' * [...]
开头任何行,否则你会不小心创建一个列表!)。还有一些东西还没有用,但它们很小。
使用 code
格式编写文档的标准方法是使用 \code{}
.
即#' @param foo value passed on to \code{bar()}
变为
Arguments
foo
value passed on tobar()
但是,我看到一些软件包(即 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. [...]
或 #' * [...]
开头任何行,否则你会不小心创建一个列表!)。还有一些东西还没有用,但它们很小。