2013-03-21 36 views
6

Tôi đang cố viết tài liệu cho gói R trong Markdown và chuyển nó thành tệp Rd.Chuyển đổi markdown thành Rd hoặc xác định quy tắc chuyển đổi đánh dấu tùy chỉnh?

Tôi đoán một cách khác để xem xét điều này là tôi muốn có một khuôn khổ mà nhận ra cấu trúc markdown khác nhau và cho phép tôi để xác định như thế nào thì cũng nên trả lại, ví dụ:

  • `text in backticks` được chuyển đổi sang \code{text in backticks}
  • **text** được chuyển thành \bold{text}
  • danh sách markdown được chuyển đổi thành \itemize{...}

và cứ tiếp tục như vậy.

Có điều gì đó sẽ cho phép tôi thực hiện việc này không? Gói pander trong R (gói xung quanh pandoc) trông đầy hứa hẹn, nhưng tôi không chắc chắn rằng tôi có thể chỉ định quy tắc chuyển đổi (ví dụ: nó chuyển đổi backticks bằng cách sử dụng \texttt và tôi muốn \code) và nó cũng tạo ra một tài liệu độc lập hoàn chỉnh thay vì đoạn mã nhập của tôi đã được chuyển đổi.

Gói markdown cho R dường như chỉ cần đánh dấu -> HTML. Dường như nó sức có hỗ trợ cho kết xuất đồ họa tùy chỉnh nhưng tôi không chắc chắn làm thế nào để viết một (có vẻ như tôi phải viết mã C?)

tôi là sau khi một cái gì đó như thế này:

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 
) 

Điều đó có tồn tại không?

(Tiền thưởng: Tôi chỉ muốn có thể nhúng đánh dấu trong các ý kiến ​​roxygen của mình, do đó, đã nghĩ đến việc chuyển đổi các phần của nhận xét từ markdown thành rd, và sau đó chạy roxygen trên đầu ra).

+0

Tại sao không chuyển đổi toàn bộ nội dung và sau đó đọc và gsub theo cách bạn muốn.Pandoc thực hiện khá nhiều thứ bạn muốn nhưng 'gsub' ra' \\ texttt {'cho' \\ code {'v.v. Hãy xem [this] (https://github.com/trinker/reports/blob/master /R/QC.R) và ăn cắp như đó là công việc của bạn. –

+0

"Tại sao không chuyển đổi toàn bộ điều" - ý bạn là gì? Bạn có nghĩa là chỉ cần sử dụng pandoc để làm markdown -> latex và sau đó dựa vào gsub để chuyển đổi latex -> Rd? –

+0

Đúng vậy. Liệu điều đó có hiệu quả? Chỉ tò mò thôi, tại sao không phải 'roxygen2'? –

Trả lời

4

Bạn đã xem gói maxygen của @ gabor-csardi chưa?

https://github.com/gaborcsardi/maxygen

Nó về cơ bản cho phép bạn viết tiêu đề roxygen trong Markdown.

[UPDATE] Những thay đổi này đã được kết hợp với gói roxygen2 và sẽ đi ra ngoài với bản phát hành phiên bản 6. Từ GitHub:

Bây giờ, hầu hết các trường có thể được viết bằng cách sử dụng Đánh dấu đánh dấu thay vì ngôn ngữ đường dẫn truyền thống . Bạn có thể bật Markdown trên toàn cầu bằng cách thêm Roxygen: list (markdown = TRUE) vào DESCRIPTION. Thẻ @md/@noMd bật/tắt phân tích cú pháp Markdown cho khối đã cho. Xem 'markdown' họa tiết để biết thêm chi tiết (# 364, # 431, # 499, # 506, # 507), bởi @gaborcsardi

+0

Ooo, gói mới! Cảm ơn rất nhiều! Tôi sẽ chờ nó trên CRAN .... –

0

Bạn có thể sử dụng chức năng md2rd đề xuất bởi Fabian Scheipl: xem roclet-md2rd.R để biết chi tiết.

Các vấn đề liên quan