Using Roxygen2 Template tags

不想你离开。 提交于 2019-11-27 11:14:35

问题


Could someone provide an example of how to properly use the Template Tags in Roxygen2. I have tried to do the most obvious thing (to me):

In my packageName-package.R file:

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

Then in a file someFunction.R

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

I get the error:

 Error : Can not find template testTemplateTag

I am trying to have one place to document commonly repeated definitions examples etc. When these things are nested within a set of functions I have been using @inheritParms. But some things, like definitions and and other descriptions, are used in several places. I've searched high and low for usage of @template and @templateVar and have not found anything.

Thanks.


回答1:


Perfect! Thanks @hadley. The GitHub version of plyr was the perfect example.

I will describe the process here for future overflowers.

Using Templates with Roxygen2

1) You should create a folder to hold your templates: man-roxygen/

2) Each template is a .R file that lives in man-roxygen/

For example: 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) Now in some other roxygen2 block you can call all of that roxygen2 code this way.

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

4) When you use the template you get everything in the someTemplate.R file.

Check out the plyr package on GitHub to see the clever way Hadley uses several template files stored in man-roxygen\ that he can mix and match to create the documentation. Look at the following to get the idea:

Look for the use of @template in these files:

 R/aaply.r
 R/adply.r

Look at the templates here:

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


来源:https://stackoverflow.com/questions/15100129/using-roxygen2-template-tags

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!