Help with Quarto "Articles" in pkgdown and with GitHub Action

I have a package ("FSA") where I have used a pkgdown website built through a GitHub action for sometime. I am trying to add "articles" (not vignettes) developed with Quarto (not rmarkdown). I started by using usethis::use_article() to set up the general structure. I edited the qmd file and added a few more "articles" with their own qmd files based on the first one. These files are in vignettes/articles/. When I use pkgdown::build_site() or pkgdown::build_articles() locally I get the following error:

── Building articles ──────────────────────────────────────────
Reading vignettes/articles/Computing_PSDs.qmd
Reading vignettes/articles/Computing_Relative_Weights.qmd
Reading vignettes/articles/Fitting_Growth_Functions.qmd
Reading vignettes/articles/Growth_Starting_Values.qmd
Running `quarto render`
Error in `.f()`:
! No built file found for
  vignettes/articles/Computing_PSDs.qmd
Run `rlang::last_trace()` to see where the error occurred.

I did try to move the "article" qmd files to just vignettes\ (rather than vignettes\articles\) and that seemed to work locally (i.e,. it created the website as I would've expected it) but the pkgdown GitHub action I use would not work, wtih the following error:

Error in `purrr::map()`:
ℹ In index: 1.
Caused by error in `quarto::quarto_inspect()`:
✖ Error running quarto cli.
Caused by error:
! System command 'quarto' failed

I am back to the original setup (qmds in vignettes\articles\) as seen in this repo.

I am clearly missing something with respect to Quarto and articles, or Quarto and the pkgdown GitHub action. I have tried look to other packages to emulate but can't seem to find something that works for me.

I am hoping someone may have some advice, even given my ill-formed question.

p.s., I am using R v 4.5.0, RStudio 2024.12.1+563, all packages are up-to-date, Quarto version 1.6.37, and Windows.

1 Like

Here is a working setup, maybe this helps:

1 Like

Thank you for the suggestion and pointer. I think I am going to try creating a "toy" practice package to see if I can get all of the parts to work on that to see if that helps me find the issue on my larger, existing package. I will see if I can use nanoparquet as a sort of template. Thanks again.

1 Like

I created this very simple tester package with one simple function and one article that I initiated with usethis::use_article("test_article.qmd"). The package builds without errors, warnings, or important notes.

Locally usethis::build_site_github_pages() eventually gives this error

── Building articles ──────────────────────────────────────────
Writing articles/index.html
Reading vignettes/articles/test_article.qmd
Running `quarto render`
Error in `.f()`:
! No built file found for
  vignettes/articles/test_article.qmd
Run `rlang::last_trace()` to see where the error occurred.

and the rlang::last_trace() looks like this

Backtrace:
     ▆
  1. └─pkgdown::build_site_github_pages()
  2.   └─pkgdown::build_site(...)
  3.     └─pkgdown:::build_site_local(...)
  4.       └─pkgdown::build_articles(...)
  5.         └─pkgdown:::build_quarto_articles(pkg, quiet = quiet)
  6.           ├─pkgdown:::unwrap_purrr_error(...)
  7.           │ └─base::withCallingHandlers(...)
  8.           └─purrr::walk2(...)
  9.             └─purrr::map2(.x, .y, .f, ..., .progress = .progress)
 10.               └─purrr:::map2_("list", .x, .y, .f, ..., .progress = .progress)
 11.                 ├─purrr:::with_indexed_errors(...)
 12.                 │ └─base::withCallingHandlers(...)
 13.                 ├─purrr:::call_with_cleanup(...)
 14.                 └─pkgdown (local) .f(.x[[i]], .y[[i]], ...)

I think my setup is similar to nanoparquet.

Of course, my pkgdown GitHub action fails similarly.

Make sure you install the development version of pkgdown. Also make sure that you install TestPKG before building the pkgdown site. After that both pkgdown::build_site_github_pages() and pkgdown::build_site() works for me.

On GHA, you also need to use the dev version of pkgdown, e.g.: