68

是否有某种机制可以让我转换 roxygen 看到的评论,最好是在它进行 roxygen->rd 转换之前?

例如,假设我有:

#' My function. Does stuff with numbers.
#'
#' This takes an input `x` and does something with it.
#' @param x a number.
myFunction <- function (x) {
}

现在,假设我想在 roxygen 解析注释之前对注释进行一些转换,例如将反引号中的所有实例替换为\code{}. IE:

preprocess <- function (txt) {
    gsub('`([^ ]+)`', '\\\\code{\\1}', txt)
}
# cat(preprocess('Takes an input `x` and does something with it'.))
# Takes an input \code{x} and does something with it.

我可以preprocess以某种方式输入 roxygen,以便它在 doclet 之前(或在这种情况下可以工作)roxygen 生成文档之前在 doclet 上运行它?

我不想在我的.r文件中进行永久查找替换。正如您可能从我的示例中猜到的那样,我的目标是在我的 roxygen 注释中提供一些基本的降价支持,因此希望保持我的.r文件原样以保持可读性(并以\code{..}编程方式插入内容)。

我是否应该编写自己的版本,在我的文件中所有检测到的 roxygen 样式注释上roxygenise运行preprocess,将它们临时保存在某个地方,然后在这些上运行实际 roxygenise版本?

4

1 回答 1

0

几年后重新审视这一点,看起来 Roxygen 具有register.preref.parsers一个可以用来将自己的解析器注入 roxygen 的功能。一个这样的用途是有前途的maxygen 包(markdown + roxygen = maxygen),它是 roxygen 注释的降价处理的一个非常巧妙的实现(尽管仅适用于 CommonMark 规范),您可以看到它是如何在该包的macument中使用的功能。我热切地等待“pandoc + roxygen = pandoxygen”...... :)

于 2015-09-23T00:16:26.350 回答