是否有某种机制可以让我转换 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{}
替换反引号中的所有实例。即:
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中,以便它在roxygen生成文档之前(或在这种情况下可以工作之后)在doclet上运行它吗?
我不想在我的 .r
文件中进行永久查找替换。正如您可能从我的示例中猜到的那样,我的目标是在我的 roxygen 注释中提供一些基本的 Markdown 支持,因此希望按原样保留我的 .r
文件以保持可读性(并插入 \code{..}
以编程方式填充)。
我是否应该编写自己的 roxygenise
版本,对文件中所有检测到的 roxygen 风格注释运行 preprocess
,将它们临时保存在某处,然后运行 < em>实际 roxygenise
那些?
最佳答案
几年后重新审视这一点,看起来 Roxygen 有一个函数 register.preref.parsers
,人们可以用它来将自己的解析器注入(inject)到 roxygen 中。
其中一个这样的用途是有前途的 maxygen package (markdown + roxygen = maxygen),这是 roxygen 注释的 markdown 处理的一个非常简洁的实现(尽管仅适用于 CommonMark 规范),您可以看到它在该包的 macument function 中的使用方式。 。我热切地等待“pandoc + roxygen = pandoxygen”...:)
关于r - 预处理或后处理氧气片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15540321/