Использование тегов шаблонов Roxygen2 - программирование
Подтвердить что ты не робот

Использование тегов шаблонов Roxygen2

Может ли кто-нибудь указать пример правильного использования тегов шаблонов в Roxygen2. Я попытался сделать самую очевидную вещь (для меня):

В моем packageName-package.R файле:

 #' [... other Roxygen blocks ...]
 #' 
 #' @templateVar testTemplateTag Testing one two
 NULL

Затем в файле someFunction.R

 #' [... other Roxygen blocks ...]
 #'
 #' @template testTemplateTag

Я получаю сообщение об ошибке:

 Error : Can not find template testTemplateTag

Я пытаюсь иметь одно место для документирования часто повторяющихся примеров определений и т.д. Когда эти вещи вложены в набор функций, которые я использовал @inheritParms. Но некоторые вещи (например, определения и другие описания) используются в нескольких местах. Я искал высоко и низко для использования @template и @templateVar и ничего не нашел.

Спасибо.

4b9b3361

Ответ 1

Perfect! Спасибо @hadley. Версия Pitr GitHub была прекрасным примером.

Я опишу процесс здесь для будущих переполнений.

Использование шаблонов с Roxygen2

1) Вы должны создать папку для хранения ваших шаблонов: man-roxygen/

2) Каждый шаблон является .R файлом, который находится в man-roxygen/

Например: man-roxygen/someTemplate.R

 #' ... [other roxygen2 tags and information] ...
 #'
 #' @param someParm A parameter that is used in several functions.
 #'
 #' ... [more roxygen2 tags and information] ...

3) Теперь в каком-то другом блоке roxygen2 вы можете вызвать все этого roxygen2 кода таким образом.

 #' ... [other roxygen2 tags and information] ...
 #'
 #' @template someTemplate

4) Когда вы используете шаблон, вы получаете все в файле someTemplate.R.

Посмотрите пакет plyr на GitHub, чтобы увидеть умный способ, которым Хэдли использует несколько файлов шаблонов, хранящихся в man-roxygen\, которые он может смешивать и чтобы создать документацию. Посмотрите на следующее, чтобы понять:

Посмотрите на использование @template в этих файлах:

 R/aaply.r
 R/adply.r

Посмотрите на шаблоны здесь:

 man-roxygen/ply.r
 man-roxygen/a-.r
 man-roxygen/-a.r
 man-roxygen/-d.r