1

我有一个带有 pkg​​down 文档站点的 R 包。我想创建一个 git 钩子,以便如果我尝试提交和推送更改,README.Rmd或者index.Rmd不先编织它们以创建相应的.Md文件,我会收到警告。现在我只是忘记了。

R Packages一书说用于usethis::use_readme_rmd()创建 README,它也将创建 git 钩子。但我已经有一个 README.Rmd 文件。

通常如何为现有的 .Rmd 文件创建挂钩,无论是 README.Rmd 还是我的 pkgdown 站点中的 index.Rmd ?我想使用这个usethis包,但如果在那个包之外做起来更简单,我愿意接受。

4

1 回答 1

0

如果您的 pkgdown 站点所在的位置是 Github Actions,则另一种方法是使用 Github Actions 执行此操作。

  1. .github在您的存储库中创建文件夹
  2. 在其中创建文件夹workflows
  3. 在其中创建文件render-readme.yml
  4. 将此代码粘贴到该文件中
on:
  push:
    paths:
      - README.Rmd
      - Index.Rmd

name: Render README and Index

jobs:
  render:
    name: Render README and Index
    runs-on: macOS-latest
    steps:
      - uses: actions/checkout@v2
      - uses: r-lib/actions/setup-r@v1
      - uses: r-lib/actions/setup-pandoc@v1
      - name: Install packages
        run: Rscript -e 'install.packages(c("rmarkdown", "knitr"))'
      - name: Render README
        run: Rscript -e 'rmarkdown::render("README.Rmd", output_format = "md_document")'
      - name: Render Index
        run: Rscript -e 'rmarkdown::render("Index.Rmd", output_format = "md_document")'
      - name: Commit results
        run: |
          git commit README.md -m 'Re-build README.Rmd' || echo "No changes to commit"
          git commit Index.md -m 'Re-build Index.Rmd' || echo "No changes to commit"
          git push origin || echo "No changes to commit"
  1. 将此推送到 GitHub,它应该立即开始工作。请注意,处理需要一些时间。单击 GitHub 存储库中的 Actions 选项卡以查看进度。

有关示例,请参见https://github.com/r-lib/actions。上面的代码改编自那。

请注意,您可能希望将操作分成 2 个文件。render-readme.ymlrender-index.yml。这样,如果操作失败,您就会知道哪个文件有问题。

于 2021-06-15T20:15:57.823 回答