【问题标题】:Is roxygen2 only for documenting R packages or also for R projects? [duplicate]roxygen2 仅用于记录 R 包还是用于 R 项目? [复制]
【发布时间】:2016-08-17 14:27:50
【问题描述】:

我对@9​​87654321@ 包有疑问:

我看过很多使用它来编写包文档的教程(例如 Hadley Wickham 的主要 "object documentation" 页面)

如果我确实有不是包的 R 代码,比如 R 项目,该怎么办? 你也可以用 roxygen2 记录 R 项目吗?

我仍然能够运行 package.skeleton(name='RoxygenSkeleton', code_files = "Roxygen.R", force=TRUE) 创建基本包结构和 .Rd 文件的函数已创建。但我希望有一个很好的 HTML 或 PDF 输出......

【问题讨论】:

  • 由于您只想生成 HTML 文件,您可以只生成 *.Rd 文件,然后使用 tools::Rd2HTML。这有点简陋,但符合您的基线要求。
  • @r2evans “生成 *.Rd 文件” — 如何?据我所知,仅使用 roxygen2 的公共 API 是不可能的;看我的回答。
  • 我想我试图完成一些与您几年前尝试做的事情类似的事情。从未完全完成任务,但您可能对它感兴趣? github.com/Dasonk/flydoc 至少flyhelp 函数中使用的方法可能会帮助您到达那里? github.com/Dasonk/flydoc/blob/master/R/flyhelp.R 话虽如此,代码现在已经有四年了,所以我不保证它仍然有效
  • 因为(根据您与@hadley 的讨论)没有包结构就没有办法,我认为使用Rd2HTML 会满足最后一条评论(“我希望在 HTML 中得到一个不错的输出"),因为 OP 已经创建了一个骨架包结构。
  • @Dason 我认为你应该为此写一个答案。

标签: r documentation-generation roxygen2


【解决方案1】:

As explained elsewhere,从 roxygen2 6.0 开始,以下工作用于解析包外记录的 R 源文件。

source_env = roxygen2::env_file(sourcefile)
rd_blocks = roxygen2::parse_file(sourcefile, source_env)
help_topics = roxygen2::roclet_process(roxygen2::rd_roclet(), rd_blocks, source_env, dirname(sourcefile))
rd_code = lapply(help_topics, format)

【讨论】:

  • 感谢康拉德!在将 Roxygen 与项目一起使用时,我看到它只生成了“骨架”(例如,其中包含 .Rd 的人库),但并没有真正正确地在相应的 .Rd 文件中写出我的 cmets。可能是由于使用了“项目”而不是“包”。感谢您向我们展示解决方法。
猜你喜欢
  • 1970-01-01
  • 2013-01-31
  • 2014-01-15
  • 2011-12-14
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
相关资源
最近更新 更多