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