C'è qualche meccanismo con cui posso trasformare i commenti che vede roxygen, preferibilmente prima che faccia la conversione roxygen-> rd?snippet di roxygen pre-processo o post-processo
Per esempio, supponiamo di avere:
#' My function. Does stuff with numbers.
#'
#' This takes an input `x` and does something with it.
#' @param x a number.
myFunction <- function (x) {
}
Ora, supponiamo che io voglio fare un po 'di conversione del commento prima roxygen lo analizza, per esempio sostituendo tutte le istanze di cose in backticks con \code{}
. Vale a dire:
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.
Posso nutrire preprocess
in roxygen in qualche modo che possa funzionare sulle doclet prima (o dopo avrebbe funzionato in questo caso) fa il suo roxygen generazione di documenti?
Non desidero eseguire una ricerca permanente nei miei file .r
. Come si può intuire dal mio esempio, sto puntando a un rudimentale supporto per il markdown nei miei commenti su roxygen, e quindi desidero mantenere i miei file .r
così com'è per preservare la leggibilità (e inserire le cose \code{..}
a livello di codice).
devo solo scrivere la mia versione di roxygenise
che gira preprocess
su tutti i commenti roxygen stile rilevati nei miei file, li salva temporaneamente da qualche parte, e poi corre il realeroxygenise
su quelli?
Non l'ho provato prima, ma AFAIK è possibile scrivere i propri roclet e specificarli nella vostra chiamata di roxygen, ovvero specificare il nuovo 'roclet'. nell'argomento 'roxygenize (..., roclet = mc_roclet)' – Andrie
Suggerirei di costruire in cima a https://github.com/hadley/roxygen3, e guardando gli interni del pacchetto markdown per farlo correttamente. Sarei felice di accettare una patch. – hadley
@hadley cheers, ho già controllato una copia di roxygen3, volevo solo vedere se qualcuno avesse una soluzione compromessa prima di iniziare a scavare. Se riesco a codificare qualcosa che funziona, invierò una patch –