将markdown转换为Rd,或定义自定义降价转换规则?

mat*_*fee 6 markdown r

我正在尝试在Markdown中为R包编写文档,并将其转换为Rd文件.

我想另一种看待这种情况的方法是我想要一个识别各种降价构造的框架,并允许我指定如何渲染这些构造,例如:

  • `text in backticks` 转换为 \code{text in backticks}
  • **text** 转换为 \bold{text}
  • 降价列表转换为 \itemize{...}

等等.

有什么东西可以让我这样做吗?panderR中的包(围绕pandoc)看起来很有前途,但我不确定我是否可以指定转换规则(例如它使用\texttt和我想要转换反引号\code),它还生成一个完整的独立文档而不仅仅是我的输入代码段转换.

markdownR 的包看起来只是做降价 - > HTML.看起来它可能支持自定义渲染器,但我不确定如何编写一个(看起来我必须编写C代码?)

我是这样的:

convertMarkdown(myTextSnippet,
                backticks = function (txt) {
                    return(paste0('\\code{', txt, '}'))
                },
                bold = function(txt) {
                    return(paste0('\\bold{', txt, '}'))
                },
                unordered.list = function (items) {
                    itms <- paste('\\item', items, collapse='\n')
                    return(paste('\\itemize{', itms, '}', sep='\n'))
                },
                # ... and so on
)
Run Code Online (Sandbox Code Playgroud)

这样的事情存在吗?

(Bonus:我只是希望能够在我的roxygen评论中嵌入markdown ,所以考虑将部分评论从markdown转换为rd,然后在输出上运行roxygen).

dou*_*met 4

你看过 @gabor-csardi 的 maxygen 包吗?

https://github.com/gaborcsardi/maxygen

它基本上可以让你在 Markdown 中编写 roxygen 标题。

[更新] 这些更改已合并到 roxygen2 软件包中,并将随版本 6 一起发布。来自 GitHub:

大多数字段现在可以使用 Markdown 标记而不是传统的 Rd 语言来编写。您可以通过将 Roxygen: list(markdown = TRUE) 添加到描述中来全局打开 Markdown。@md / @noMd 标签打开/关闭给定块的 Markdown 解析。有关更多详细信息,请参阅“markdown”小插图(#364、#431、#499、#506、#507),作者:@gaborcsardi