预处理或后处理氧气片段


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{}。即:

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注释中提供一些基本的降价支持,因此希望保持.r文件原样以保持可读性(并以\code{..}编程方式插入内容)。

如果我只是写我自己的版本roxygenise是运行preprocess在我的文件中的所有检测roxygen风格的注释,它们保存暂时某处,然后运行实际的 roxygenise那些?


1
我以前没有尝试过,但是AFAIK您可以编写自己的roclets并在roxygen调用中指定它们,即roclet在参数中指定新的rocletsroxygenize(..., roclet=mc_roclet)
Andrie

3
我建议在github.com/hadley/roxygen3的基础构建,并查看markdown包的内部结构以正确执行此操作。我很乐意接受补丁。
哈德利2013年

@hadley欢呼,我已经签出了roxygen3的副本,只是想在我开始研究之前,先看看是否有人有一个共同的解决方案。如果我管理的代码了一些作品,我会提交补丁
mathematical.coffee

Answers:


0

几年后再回顾一下,看来Roxygen具有一种功能register.preref.parsers,可以用来将自己的解析器注入Roxygen。这种用途的一种用途是很有前途的maxygen软件包(markdown + roxygen = maxygen),它是对roxygen注释的markdown处理的非常整洁的实现(尽管仅适用于CommonMark规范),并且您可以看到它在该软件包的macument中如何使用。功能。我热切地等待“ pandoc + roxygen = pandoxygen” ... :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.