6

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

我想另一种看待这个问题的方式是,我想要一个能够识别各种降价结构并允许我指定如何呈现这些结构的框架,例如:

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

等等。

有什么可以让我这样做吗?R 中的pander包(环绕 pandoc)看起来很有希望,但我不确定我是否可以指定转换规则(例如,它使用\textttand I want转换反引号\code),它还生成一个完整的独立文档,而不仅仅是我的输入片段转换。

R的markdown包似乎只是做 markdown -> 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
)

这样的事情存在吗?

(奖励:我只是希望能够在我的roxygen评论中嵌入 markdown,因此正在考虑将部分评论从 markdown 转换为 rd,然后在输出上运行 roxygen)。

4

2 回答 2

4

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

https://github.com/gaborcsardi/maxygen

它基本上可以让您在 Markdown 中编写 roxygen 标头。

[更新] 这些更改已包含在 roxygen2 包中,并将在版本 6 版本中发布。来自 GitHub:

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

于 2015-08-14T08:21:39.913 回答
0

您可以使用md2rdFabian Scheipl 建议的功能:有关详细信息,请参阅roclet-md2rd.R

于 2015-08-23T06:56:46.550 回答