我正在制作我的第一个包rlandscape
,使用Roxygen2并尝试遵循普通的Roxygen晕影,因为Roxygen2没有。
在the vignette(第3页)中,我创建了一个名为rlandscape-package.R
的文件,其中只包含包文档。在小插曲中,他们说
每个Roxygen描述块必须后跟一个语句,甚至 标题材料,用于描述文件或包代替特定文件 功能。 roxygen()作为NOOP(null语句)提供 对于这种情况。
但如果我使用roxygen()
跟踪说明栏,则package.skeleton
的调用会生成Error in eval(expr, envir, enclos) : could not find function "roxygen"
。所以我尝试完全退出roxygen()
调用,并将其替换为NA
,两者似乎都会产生相同的结果:package.skeleton()
成功运行(包括rlandscape-package.R
}作为code_files
参数之一),然后我可以roxygenize
> roxygenize("rlandscape", roxygen.dir = "rlandscape")
Updating collate directive in /Users/Gregor/Dropbox/rlandscape/rlandscape/DESCRIPTION
Updating namespace directives
Writing plot.landscape.Rd
Writing rland.Rd
Writing rland.gui.Rd
Writing makePoints.Rd
Writing rCluster.Rd
Writing rlandscape-package.Rd
Writing rlandscape.Rd
似乎成功运行,但DESCRIPTION文件附加了“Collate”字段,但与package.skeleton
创建的字段相同。为什么描述文件的其余部分没有更新?
答案 0 :(得分:30)
roxygen2 正在按预期工作,但是当我第一次使用它来记录包时,我遇到了同样的困惑。需要理解的重要一点是,混合中有几个不同的包描述文件。
处理rlandscape-package.R
中的roxygen标记时,会在源包的man目录中生成文件rlandscape-package.Rd
。这反过来会生成您在键入?rlandscape
或?"rlandscape-package"
时看到的文档。
源树顶部目录中的DESCRIPTION
文件是一个完全独立的野兽。虽然它恰好产生了一个你可以看到的帮助文件(通过help(package="rlandscape")
),但它在指导包生产方面还有许多其他更重要的角色。 roxygen2 触及/影响的唯一方式是collate_roclet()
函数(当您roxygenize()
打包时执行)将执行合并预先存在的DESCRIPTION
文件中的整理字段(如this pdf第10页所述)。
主要的回复信息是,即使使用roxygen2,如果您想对DESCRIPTION
文件进行更改,也需要直接编辑它。