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

时间:2013-03-21 04:59:01

标签: r markdown

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

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

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

等等。

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

R的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。

2 个答案:

答案 0 :(得分:4)

您是否看过@ gabor-csardi的氧气包装?

https://github.com/gaborcsardi/maxygen

它基本上允许你在Markdown中写入roxygen标题。

[UPDATE] 这些更改已经与roxygen2软件包相关联,并将与版本6发布一起发布。来自GitHub:

  

现在可以使用Markdown标记而不是使用Markdown标记来编写大多数字段   传统的Rd语言。您可以通过添加全局启用Markdown   Roxygen:列表(markdown = TRUE)到DESCRIPTION。 @md / @noMd标签   打开/关闭给定块的Markdown解析。看'降价'   更多细节(#364,#431,#499,#506,#507),by   @gaborcsardi

答案 1 :(得分:0)

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