Пре - или пост-процесс фрагменты roxygen


есть ли какой-то механизм, с помощью которого я могу преобразовать комментарии, которые видит roxygen, предпочтительно до того, как он выполнит преобразование roxygen - >rd?

например, предположим, что у меня есть:

#' My function. Does stuff with numbers.
#'
#' This takes an input `x` and does something with it.
#' @param x a number.
myFunction <- function (x) {
}

теперь предположим, что я хочу сделать некоторое преобразование комментария, прежде чем roxygen проанализирует его, например, заменив все экземпляры вещей в обратных кавычках на code{}. Т. е.:

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.

могу я покормить preprocess в roxygen как-то так, что он будет работать на доклеты до (или после будет работать в этом случае) roxygen делает свою генерацию документов?

Я не хочу делать постоянную найти-заменить в моем .r файлы. Как вы можете догадаться из моего примера, я стремлюсь к некоторой рудиментарной поддержке markdown в моих комментариях roxygen и, следовательно, хочу сохранить свой .r файлы как есть, чтобы сохранить читаемость (и вставить code{..} вещи программно).

Я должен просто написать свою собственную версию roxygenise, который работает preprocess на все обнаруженные комментарии в стиле roxygen в моих файлах, временно сохраняет их где-то, а затем запускает фактическийroxygenise на эти?

1 68

1 ответ:

возвращаясь к этому пару лет спустя, похоже, что Roxygen имеет функцию register.preref.parsers Что можно использовать для введения своих собственных парсеров в roxygen. Одним из таких применений этого является перспективный пакета maxygen (markdown + roxygen = maxygen), что очень аккуратная реализация обработки markdown комментариев roxygen (хотя и только для спецификации CommonMark), и вы можете увидеть, как она используется в этом пакете функция macument. Я с нетерпением жду "pandoc + roxygen = pandoxygen"... :)