Gibt es einen Mechanismus, mit dem ich die Kommentare, die roxygen sieht, transformieren kann, vorzugsweise bevor es die roxygen-> rd-Konvertierung durchführt?
Angenommen, ich habe:
#' My function. Does stuff with numbers.
#'
#' This takes an input `x` and does something with it.
#' @param x a number.
myFunction <- function (x) {
}
Angenommen, ich möchte den Kommentar konvertieren, bevor roxygen ihn analysiert, z. B. alle Instanzen von Dingen in Backticks durch ersetzen \code{}
. Dh:
preprocess <- function (txt) {
gsub('`([^ ]+)`', '\\\\code{\\1}', txt)
}
# cat(preprocess('Takes an input `x` and does something with it'.))
# Takes an input \code{x} and does something with it.
Kann ich preprocess
Roxygen irgendwie einspeisen, damit es auf den Dokumenten ausgeführt wird, bevor (oder nachdem dies in diesem Fall funktionieren würde) Roxygen seine Dokumente generiert?
Ich möchte meine .r
Dateien nicht dauerhaft suchen und ersetzen . Wie Sie aus meinem Beispiel erraten können, strebe ich in meinen Sauerstoffkommentaren eine rudimentäre Unterstützung für das Abschriften an und möchte daher meine .r
Dateien unverändert lassen, um die Lesbarkeit zu gewährleisten (und das \code{..}
Material programmgesteuert einzufügen ).
Sollte ich einfach meine eigene Version davon schreiben roxygenise
, die preprocess
auf allen erkannten Kommentaren im Roxygen-Stil in meinen Dateien ausgeführt wird, sie vorübergehend irgendwo speichert und dann die eigentliche roxygenise
auf diesen ausführt ?
roclet
im Argument anroxygenize(..., roclet=mc_roclet)
Antworten:
Wenn man dies ein paar Jahre später noch einmal betrachtet, sieht es so aus, als ob Roxygen eine Funktion hat
register.preref.parsers
, mit der man seine eigenen Parser in Roxygen injizieren kann. Eine solche Verwendung ist das vielversprechende Maxygen-Paket (Markdown + Roxygen = Maxygen), eine sehr übersichtliche Implementierung der Markdown-Verarbeitung von Roxygen-Kommentaren (allerdings nur gemäß der CommonMark-Spezifikation), und Sie können sehen, wie es im Macument dieses Pakets verwendet wird Funktion . Ich warte gespannt auf "pandoc + roxygen = pandoxygen" ... :)quelle