Próbuję napisać dokumentację dla pakietu R w Markdown i przekonwertować go do pliku Rd.Konwersja przeceny na Rd lub zdefiniowanie niestandardowych reguł konwersji?
Chyba inny sposób patrzenia na to, że chcę ramy, który rozpoznaje różne konstrukcje przecenowych i pozwala mi określić, w jaki sposób powinny być świadczone, np
`text in backticks`
zostanie przekonwertowany do\code{text in backticks}
**text**
przekształca się\bold{text}
- list przecen są przekształcane
\itemize{...}
i tak dalej.
Czy jest coś, co pozwoli mi to zrobić? Pakiet pander
w R (zawijanie wokół pandoc) wyglądał obiecująco, ale nie jestem pewien, czy mogę określić reguły konwersji (na przykład konwertuje kontrakty przy użyciu \texttt
i chcę \code
), a także generuje kompletny samodzielny dokument, a nie tylko mój fragment wejściowy został przekonwertowany.
Pakiet R wydaje się po prostu robić Markdown -> HTML. to wygląda potęga mieć wsparcie dla niestandardowych renderujących, ale nie jestem pewien, jak napisać (wygląda na to, muszę napisać kod C?)
jestem po coś takiego:
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
)
Czy coś takiego istnieje?
(Premia: chcę tylko móc umieścić komentarz w komentarzach roxygen
, więc zastanawiałem się nad konwersją części komentarzy ze znacznika na rd, a następnie na wynik na poziomie roxygen).
Dlaczego nie przekonwertować całej rzeczy, a następnie przeczytać i gsub tak, jak chcesz.Pandoc robi prawie wszystko, co chcesz, ale 'gsub' out' \\ texttt {'na' \\ kod {'itp. Zobacz na [to] (https://github.com/trinker/reports/blob/master /R/QC.R) i kradnij, jakby to była twoja praca. –
"Dlaczego nie przekonwertować całości" - co masz na myśli? Masz na myśli po prostu użyć pandoc do zrobienia markdown -> latex, a następnie polegać na gsub do konwersji lateksu -> Rd? –
Tak, dokładnie. Czy to działa? Po prostu ciekawy, dlaczego nie "roxygen2"? –