Repository: hadley/pkgdown Branch: main Commit: a6abe43ed48e Files: 439 Total size: 1.2 MB Directory structure: gitextract_6_cfe080/ ├── .Rbuildignore ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ ├── .gitignore │ ├── 404.md │ ├── CODEOWNERS │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ └── workflows/ │ ├── R-CMD-check.yaml │ ├── lint.yaml │ ├── netlify.yaml │ ├── no-pandoc.yaml │ ├── pkgdown.yaml │ ├── pr-commands.yaml │ ├── site-languages.yml │ └── test-coverage.yaml ├── .gitignore ├── .lintr.R ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── DESCRIPTION ├── LICENSE ├── LICENSE.md ├── NAMESPACE ├── NEWS.md ├── R/ │ ├── build-404.R │ ├── build-article.R │ ├── build-articles.R │ ├── build-favicons.R │ ├── build-footer.R │ ├── build-github.R │ ├── build-home-authors.R │ ├── build-home-community.R │ ├── build-home-index.R │ ├── build-home-license.R │ ├── build-home-md.R │ ├── build-home.R │ ├── build-llm-dl.R │ ├── build-llm.R │ ├── build-logo.R │ ├── build-news.R │ ├── build-quarto-articles.R │ ├── build-redirects.R │ ├── build-reference-index.R │ ├── build-reference.R │ ├── build-search-docs.R │ ├── build-tutorials.R │ ├── build.R │ ├── check-built.R │ ├── check.R │ ├── clean.R │ ├── config.R │ ├── context.R │ ├── deploy-site.R │ ├── development.R │ ├── external-deps.R │ ├── figure.R │ ├── highlight.R │ ├── html-build.R │ ├── import-standalone-obj-type.R │ ├── import-standalone-types-check.R │ ├── init.R │ ├── markdown.R │ ├── navbar-menu.R │ ├── navbar.R │ ├── package.R │ ├── pkgdown-package.R │ ├── pkgdown.R │ ├── pkgdown_print.R │ ├── preview.R │ ├── rd-data.R │ ├── rd-example.R │ ├── rd-html.R │ ├── rd.R │ ├── render.R │ ├── repo.R │ ├── template.R │ ├── templates.R │ ├── test.R │ ├── theme.R │ ├── topics-external.R │ ├── topics.R │ ├── tweak-homepage.R │ ├── tweak-navbar.R │ ├── tweak-page.R │ ├── tweak-reference.R │ ├── tweak-tabset.R │ ├── tweak-tags.R │ ├── tweak.R │ ├── usage.R │ ├── utils-fs.R │ ├── utils-io.R │ ├── utils-pdf.R │ └── utils.R ├── README.Rmd ├── README.md ├── air.toml ├── codecov.yml ├── cran-comments.md ├── inst/ │ ├── BS3/ │ │ ├── assets/ │ │ │ ├── bootstrap-toc.css │ │ │ ├── bootstrap-toc.js │ │ │ ├── docsearch.css │ │ │ ├── docsearch.js │ │ │ ├── pkgdown.css │ │ │ └── pkgdown.js │ │ └── templates/ │ │ ├── after-body.html │ │ ├── before-body.html │ │ ├── config-docsearch.json │ │ ├── content-article-index.html │ │ ├── content-article.html │ │ ├── content-citation-authors.html │ │ ├── content-home.html │ │ ├── content-news-index.html │ │ ├── content-news.html │ │ ├── content-reference-index.html │ │ ├── content-reference-topic.html │ │ ├── content-title-body.html │ │ ├── content-tutorial-index.html │ │ ├── content-tutorial.html │ │ ├── docsearch.html │ │ ├── footer.html │ │ ├── head.html │ │ ├── header.html │ │ ├── in-header.html │ │ ├── layout-redirect.html │ │ ├── layout.html │ │ └── navbar.html │ ├── BS5/ │ │ ├── assets/ │ │ │ ├── katex-auto.js │ │ │ ├── lightswitch.js │ │ │ ├── pkgdown.js │ │ │ └── pkgdown.scss │ │ └── templates/ │ │ ├── after-body.html │ │ ├── before-body.html │ │ ├── config-docsearch.json │ │ ├── content-article-index.html │ │ ├── content-article.html │ │ ├── content-authors.html │ │ ├── content-citation-authors.html │ │ ├── content-home.html │ │ ├── content-news-index.html │ │ ├── content-news.html │ │ ├── content-quarto.html │ │ ├── content-reference-index.html │ │ ├── content-reference-topic.html │ │ ├── content-title-body.html │ │ ├── content-tutorial-index.html │ │ ├── content-tutorial.html │ │ ├── footer.html │ │ ├── head.html │ │ ├── header.html │ │ ├── in-header.html │ │ ├── layout-redirect.html │ │ ├── layout.html │ │ └── navbar.html │ ├── highlight-styles/ │ │ ├── a11y-dark.scss │ │ ├── a11y-light.scss │ │ ├── arrow-dark.scss │ │ ├── arrow-light.scss │ │ ├── atom-one-dark.scss │ │ ├── atom-one-light.scss │ │ ├── ayu-dark.scss │ │ ├── ayu-light.scss │ │ ├── ayu-mirage.scss │ │ ├── breeze-dark.scss │ │ ├── breeze-light.scss │ │ ├── breezedark.scss │ │ ├── dracula.scss │ │ ├── espresso.scss │ │ ├── github-dark.scss │ │ ├── github-light.scss │ │ ├── gruvbox-dark.scss │ │ ├── gruvbox-light.scss │ │ ├── haddock.scss │ │ ├── kate.scss │ │ ├── monochrome-dark.scss │ │ ├── monochrome-light.scss │ │ ├── monochrome.scss │ │ ├── monokai.scss │ │ ├── nord.scss │ │ ├── oblivion.scss │ │ ├── printing.scss │ │ ├── pygments.scss │ │ ├── radical.scss │ │ ├── solarized-dark.scss │ │ ├── solarized-light.scss │ │ ├── solarized.scss │ │ ├── tango.scss │ │ ├── vim-dark.scss │ │ └── zenburn.scss │ ├── po/ │ │ ├── ca/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── de/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── dk/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── es/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── fr/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── ja/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── ko/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── kr/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── nl/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── pt/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ ├── tr/ │ │ │ └── LC_MESSAGES/ │ │ │ └── R-pkgdown.mo │ │ └── zh_CN/ │ │ └── LC_MESSAGES/ │ │ └── R-pkgdown.mo │ ├── quarto/ │ │ └── template.html │ └── rstudio/ │ └── addins.dcf ├── man/ │ ├── as_pkgdown.Rd │ ├── build_articles.Rd │ ├── build_favicons.Rd │ ├── build_home.Rd │ ├── build_llm_docs.Rd │ ├── build_news.Rd │ ├── build_redirects.Rd │ ├── build_reference.Rd │ ├── build_search.Rd │ ├── build_site.Rd │ ├── build_site_github_pages.Rd │ ├── build_tutorials.Rd │ ├── check_pkgdown.Rd │ ├── clean.Rd │ ├── deploy_site_github.Rd │ ├── deploy_to_branch.Rd │ ├── fig_settings.Rd │ ├── in_pkgdown.Rd │ ├── index.Rd │ ├── init_site.Rd │ ├── pkgdown-package.Rd │ ├── pkgdown_print.Rd │ ├── preview_site.Rd │ ├── rd2html.Rd │ ├── render_page.Rd │ ├── stop_preview.Rd │ ├── templates.Rd │ ├── test-crayon.Rd │ ├── test-dont.Rd │ ├── test-figures.Rd │ ├── test-links.Rd │ ├── test-lists.Rd │ ├── test-long-lines.Rd │ ├── test-math-examples.Rd │ ├── test-output-styles.Rd │ ├── test-params.Rd │ ├── test-sexpr-title.Rd │ ├── test-tables.Rd │ └── test-verbatim.Rd ├── pkgdown/ │ ├── _pkgdown.yml │ └── favicon/ │ └── site.webmanifest ├── pkgdown.Rproj ├── po/ │ ├── R-ca.po │ ├── R-de.po │ ├── R-dk.po │ ├── R-es.po │ ├── R-fr.po │ ├── R-ja.po │ ├── R-ko.po │ ├── R-nl.po │ ├── R-pkgdown.pot │ ├── R-pt.po │ ├── R-tr.po │ └── R-zh_CN.po ├── revdep/ │ ├── .gitignore │ ├── README.md │ ├── cran.md │ ├── email.yml │ ├── failures.md │ └── problems.md ├── tests/ │ ├── testthat/ │ │ ├── .gitignore │ │ ├── _snaps/ │ │ │ ├── build-article.md │ │ │ ├── build-articles.md │ │ │ ├── build-favicons.md │ │ │ ├── build-footer.md │ │ │ ├── build-github.md │ │ │ ├── build-home-authors.md │ │ │ ├── build-home-community.md │ │ │ ├── build-home-index.md │ │ │ ├── build-llm-dl.md │ │ │ ├── build-llm.md │ │ │ ├── build-news.md │ │ │ ├── build-quarto-articles.md │ │ │ ├── build-redirects.md │ │ │ ├── build-reference-index.md │ │ │ ├── build-reference.md │ │ │ ├── build-search-docs.md │ │ │ ├── check-built.md │ │ │ ├── check.md │ │ │ ├── config.md │ │ │ ├── development.md │ │ │ ├── external-deps.md │ │ │ ├── highlight.md │ │ │ ├── init.md │ │ │ ├── markdown.md │ │ │ ├── navbar-menu.md │ │ │ ├── navbar.md │ │ │ ├── not-in-rcmcheck/ │ │ │ │ └── build-article.md │ │ │ ├── package.md │ │ │ ├── preview.md │ │ │ ├── rcmdcheck/ │ │ │ │ └── build-article.md │ │ │ ├── rd-example.md │ │ │ ├── rd-html.md │ │ │ ├── render.md │ │ │ ├── repo.md │ │ │ ├── templates.md │ │ │ ├── theme.md │ │ │ ├── topics-external.md │ │ │ ├── topics.md │ │ │ ├── tweak-homepage.md │ │ │ ├── tweak-tabset.md │ │ │ ├── tweak-tags.md │ │ │ ├── usage.md │ │ │ └── utils-fs.md │ │ ├── assets/ │ │ │ ├── -find-assets.html │ │ │ ├── articles-images/ │ │ │ │ ├── .gitignore │ │ │ │ ├── DESCRIPTION │ │ │ │ ├── README.md │ │ │ │ ├── _pkgdown.yml │ │ │ │ ├── man/ │ │ │ │ │ └── kitten.Rd │ │ │ │ ├── man-figures.Rproj │ │ │ │ └── vignettes/ │ │ │ │ ├── .gitignore │ │ │ │ └── kitten.Rmd │ │ │ ├── figure/ │ │ │ │ ├── DESCRIPTION │ │ │ │ ├── _pkgdown.yml │ │ │ │ ├── man/ │ │ │ │ │ └── figure.Rd │ │ │ │ └── vignettes/ │ │ │ │ └── figures.Rmd │ │ │ ├── llm.html │ │ │ ├── reference/ │ │ │ │ ├── DESCRIPTION │ │ │ │ ├── NAMESPACE │ │ │ │ ├── R/ │ │ │ │ │ └── funs.R │ │ │ │ ├── _pkgdown.yml │ │ │ │ └── man/ │ │ │ │ ├── a.Rd │ │ │ │ ├── b.Rd │ │ │ │ ├── c.Rd │ │ │ │ ├── e.Rd │ │ │ │ ├── f.Rd │ │ │ │ ├── g.Rd │ │ │ │ └── help.Rd │ │ │ ├── reference-fail/ │ │ │ │ ├── DESCRIPTION │ │ │ │ ├── NAMESPACE │ │ │ │ ├── R/ │ │ │ │ │ └── f.R │ │ │ │ └── man/ │ │ │ │ └── f.Rd │ │ │ ├── reference-html-dep/ │ │ │ │ ├── DESCRIPTION │ │ │ │ ├── NAMESPACE │ │ │ │ ├── R/ │ │ │ │ │ └── funs.R │ │ │ │ ├── _pkgdown.yml │ │ │ │ └── man/ │ │ │ │ └── a.Rd │ │ │ ├── reference-language/ │ │ │ │ ├── one/ │ │ │ │ │ └── DESCRIPTION │ │ │ │ └── two/ │ │ │ │ └── DESCRIPTION │ │ │ ├── reference-pre-post/ │ │ │ │ ├── DESCRIPTION │ │ │ │ └── pkgdown/ │ │ │ │ ├── post-reference.R │ │ │ │ └── pre-reference.R │ │ │ ├── reference-selector/ │ │ │ │ ├── DESCRIPTION │ │ │ │ ├── NAMESPACE │ │ │ │ ├── NEWS.md │ │ │ │ ├── R/ │ │ │ │ │ └── funs.R │ │ │ │ ├── _pkgdown.yml │ │ │ │ └── man/ │ │ │ │ ├── A.Rd │ │ │ │ └── matches.Rd │ │ │ ├── sitemaps-schema-0.9.xsd │ │ │ └── templates-local/ │ │ │ ├── DESCRIPTION │ │ │ └── pkgdown/ │ │ │ └── templates/ │ │ │ ├── content-article.html │ │ │ └── footer-article.html │ │ ├── helper.R │ │ ├── test-build-article.R │ │ ├── test-build-articles.R │ │ ├── test-build-favicons.R │ │ ├── test-build-footer.R │ │ ├── test-build-github.R │ │ ├── test-build-home-authors.R │ │ ├── test-build-home-community.R │ │ ├── test-build-home-index.R │ │ ├── test-build-home-license.R │ │ ├── test-build-home-md.R │ │ ├── test-build-home.R │ │ ├── test-build-llm-dl.R │ │ ├── test-build-llm.R │ │ ├── test-build-logo.R │ │ ├── test-build-news.R │ │ ├── test-build-quarto-articles.R │ │ ├── test-build-redirects.R │ │ ├── test-build-reference-index.R │ │ ├── test-build-reference.R │ │ ├── test-build-search-docs.R │ │ ├── test-build-tutorials.R │ │ ├── test-build.R │ │ ├── test-check-built.R │ │ ├── test-check.R │ │ ├── test-config.R │ │ ├── test-deploy-site.R │ │ ├── test-development.R │ │ ├── test-external-deps.R │ │ ├── test-figure.R │ │ ├── test-highlight.R │ │ ├── test-html-build.R │ │ ├── test-init.R │ │ ├── test-markdown.R │ │ ├── test-navbar-menu.R │ │ ├── test-navbar.R │ │ ├── test-package.R │ │ ├── test-pkgdown_print.R │ │ ├── test-preview.R │ │ ├── test-rd-data.R │ │ ├── test-rd-example.R │ │ ├── test-rd-html.R │ │ ├── test-render.R │ │ ├── test-repo.R │ │ ├── test-templates.R │ │ ├── test-theme.R │ │ ├── test-topics-external.R │ │ ├── test-topics.R │ │ ├── test-tweak-homepage.R │ │ ├── test-tweak-navbar.R │ │ ├── test-tweak-page.R │ │ ├── test-tweak-reference.R │ │ ├── test-tweak-tabset.R │ │ ├── test-tweak-tags.R │ │ ├── test-usage.R │ │ ├── test-utils-fs.R │ │ └── test-utils.R │ └── testthat.R ├── tools/ │ └── syntax-highlight.R └── vignettes/ ├── .gitignore ├── accessibility.Rmd ├── articles/ │ ├── .gitignore │ ├── test-quarto-article.qmd │ └── test-rmarkdown-article.Rmd ├── customise.Rmd ├── how-to-update-released-site.Rmd ├── linking.Rmd ├── metadata.Rmd ├── pkgdown.Rmd ├── quarto.qmd ├── test/ │ ├── jss.Rmd │ ├── jss.bib │ ├── jss.bst │ ├── jss.cls │ ├── long-toc.Rmd │ ├── pdf.Rmd │ ├── quarto-features.qmd │ ├── rendering.Rmd │ ├── short.Rmd │ ├── test.txt │ └── widgets.Rmd └── translations.Rmd ================================================ FILE CONTENTS ================================================ ================================================ FILE: .Rbuildignore ================================================ ^.*\.Rproj$ ^\.Rproj\.user$ ^\.travis\.yml$ ^inst/web$ ^docs$ ^_pkgdown\.yml$ ^README\.Rmd$ ^README-.*\.png$ ^pkgdown$ ^codecov\.yml$ ^CODE_OF_CONDUCT\.md$ ^LICENSE\.md$ ^tests/testthat/assets/site-dot-github/.github$ ^cran-comments\.md$ ^CRAN-RELEASE$ ^revdep$ ^appveyor\.yml$ ^\.github$ ^fake-index.html$ ^CRAN-SUBMISSION$ ^tools$ ^\.lintr.R$ ^vignettes/\.quarto$ ^vignettes/articles/\.quarto$ ^vignettes/articles/*_files$ ^vignettes/articles$ ^\.vscode$ ^[\.]?air\.toml$ ^\.git-blame-ignore-revs$ ================================================ FILE: .git-blame-ignore-revs ================================================ # This file lists revisions of large-scale formatting/style changes so that # they can be excluded from git blame results. # # To set this file as the default ignore file for git blame, run: # $ git config blame.ignoreRevsFile .git-blame-ignore-revs # https://github.com/r-lib/pkgdown/pull/2865 3245437e22fb284f9e9fbbb62df5ef0ccba47715 ================================================ FILE: .gitattributes ================================================ docs/* linguist-generated=false ================================================ FILE: .github/.gitignore ================================================ *.html ================================================ FILE: .github/404.md ================================================ # Page not found (404) Please use the links in the navigation bar. ================================================ FILE: .github/CODEOWNERS ================================================ # CODEOWNERS for pkgdown # https://www.tidyverse.org/development/understudies .github/CODEOWNERS @hadley @jayhesselberth ================================================ FILE: .github/CODE_OF_CONDUCT.md ================================================ # Contributor Covenant Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at codeofconduct@posit.co. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at . Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][https://github.com/mozilla/inclusion]. For answers to common questions about this code of conduct, see the FAQ at . Translations are available at . [homepage]: https://www.contributor-covenant.org ================================================ FILE: .github/CONTRIBUTING.md ================================================ # Contributing to pkgdown This document outlines how to propose a change to pkgdown. For more detailed info about contributing to this and other tidyverse packages, please see the [**tidyverse contribution guide**](https://rstd.io/tidy-contrib). ## pkgdown and Pandoc versions The versions of pkgdown and Pandoc used to build a website are stored in the public facing `pkgdown.yml` file, e.g. . ## Package reprexes If you encounter unexpected errors after running `pkgdown::build_site()`, try to build a minimal package that recreates the error. An ideal minimal package has *no dependencies*, making it easy to install and quickly reproduce the error. An example of a minimal package was [this issue](https://github.com/r-lib/pkgdown/issues/720#issuecomment-397606145), where a minimal package containing a single `.R` file with two lines could reproduce the error. The quickest way to set up minimal example package is with `usethis::create_package()`: ```R usethis::create_package("~/desktop/testpackage") # ... edit files ... pkgdown::build_site(tmp, new_process = FALSE, preview = FALSE) ``` Once you have built a minimal package that recreates the error, create a GitHub repository from the package (e.g. with `usethis::use_git()` + `usethis::use_github()`), and file an issue with a link to the repository. ## Rd translation If you encounter problems with Rd tags, please use `rd2html()` to create a reprexes: ```R library(pkgdown) rd2html("a\n%b\nc") rd2html("a & b") ``` ## Pull request process * We recommend that you create a Git branch for each pull request (PR). * Look at the Travis and AppVeyor build status before and after making changes. The `README` should contain badges for any continuous integration services used by the package. * New code should follow the tidyverse [style guide](http://style.tidyverse.org). You can use the [styler](https://CRAN.R-project.org/package=styler) package to apply these styles, but please don't restyle code that has nothing to do with your PR. * We use [roxygen2](https://cran.r-project.org/package=roxygen2), with [Markdown syntax](https://roxygen2.r-lib.org/articles/rd-formatting.html), for documentation. * We use [testthat](https://cran.r-project.org/package=testthat). Contributions with test cases included are easier to accept. * For user-facing changes, add a bullet to the top of `NEWS.md` below the current development version header describing the changes made followed by your GitHub username, and links to relevant issue(s)/PR(s). ### Netlify We might ask you for a Netlify preview of your changes i.e. how do your local changes affect the pkgdown website? 1. Build and install the amended package, then re-build the website (`clean_site()` and then `build_site()`) which will update the docs/ folder. 1. Log into Netlify at https://app.netlify.com/sites/, and scroll to the bottom. You'll see a box with dashed outline that says "Want to deploy a new site without connecting to Git?". 1. Open up a file browser, navigate to `docs/`, and drag the `docs/` folder to the dashed box, which will copy all the files into a temporary netlify site. 1. After the file transfer completes, netlify will generate a temporary URL on a new page that you can copy/paste in the PR discussion. ## Fixing typos Small typos or grammatical errors in documentation may be edited directly using the GitHub web interface, so long as the changes are made in the _source_ file. * YES: you edit a roxygen comment in a `.R` file below `R/`. * NO: you edit an `.Rd` file below `man/`. ## Prerequisites Before you make a substantial pull request, you should always file an issue and make sure someone from the team agrees that it’s a problem. If you’ve found a bug, create an associated issue and illustrate the bug with a minimal [reprex](https://www.tidyverse.org/help/#reprex). ## Code of Conduct Please note that the pkgdown project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By contributing to this project you agree to abide by its terms. ================================================ FILE: .github/workflows/R-CMD-check.yaml ================================================ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help # # NOTE: This workflow is overkill for most R packages and # check-standard.yaml is likely a better choice. # usethis::use_github_action("check-standard") will install it. on: push: branches: [main, master] pull_request: name: R-CMD-check.yaml permissions: read-all jobs: R-CMD-check: runs-on: ${{ matrix.config.os }} name: ${{ matrix.config.os }} (${{ matrix.config.r }}) strategy: fail-fast: false matrix: config: - {os: macos-latest, r: 'release'} - {os: windows-latest, r: 'release'} # use 4.0 or 4.1 to check with rtools40's older compiler - {os: windows-latest, r: 'oldrel-3'} - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-latest, r: 'release'} - {os: ubuntu-latest, r: 'oldrel-1'} - {os: ubuntu-latest, r: 'oldrel-2'} - {os: ubuntu-latest, r: 'oldrel-3'} - {os: ubuntu-latest, r: 'oldrel-4'} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_KEEP_PKG_SOURCE: yes steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 - uses: r-lib/actions/setup-tinytex@v2 env: TINYTEX_INSTALLER: TinyTeX - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} http-user-agent: ${{ matrix.config.http-user-agent }} use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::rcmdcheck needs: check - uses: r-lib/actions/check-r-package@v2 env: R_QUARTO_QUIET: false with: upload-snapshots: true build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")' ================================================ FILE: .github/workflows/lint.yaml ================================================ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: branches: [main, master] pull_request: branches: [main, master] name: lint permissions: read-all jobs: lint: runs-on: ubuntu-latest env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::lintr, local::. needs: lint - uses: r-lib/actions/setup-tinytex@v2 - name: Lint run: lintr::lint_package() shell: Rscript {0} env: LINTR_ERROR_ON_LINT: true ================================================ FILE: .github/workflows/netlify.yaml ================================================ on: pull_request: branches: [main, master] name: pkgdown-pr jobs: netlify: runs-on: ubuntu-latest env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-tinytex@v2 - uses: r-lib/actions/setup-pandoc@v2 - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::pkgdown, local::. needs: website - name: Install package run: R CMD INSTALL . - name: Create website run: | pkgdown::build_site() shell: Rscript {0} - name: Create index file run: | echo ' ' > ./docs/index.html - name: Deploy to Netlify uses: nwtgck/actions-netlify@v3.0 with: publish-dir: './docs' production-branch: main github-token: ${{ secrets.GITHUB_TOKEN }} deploy-message: 'Deploy from GHA: ${{ github.event.pull_request.title || github.event.head_commit.message }} (${{ github.sha }})' # these default to 'true' enable-commit-comment: false enable-github-deployment: false env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} ================================================ FILE: .github/workflows/no-pandoc.yaml ================================================ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: branches: [main, master] pull_request: branches: [main, master] name: no-pandoc jobs: R-CMD-check: runs-on: ubuntu-latest env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_KEEP_PKG_SOURCE: yes steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::rcmdcheck needs: check - uses: r-lib/actions/setup-tinytex@v2 env: TINYTEX_INSTALLER: TinyTeX - run: sudo apt-get --purge remove pandoc - run: rm -rf vignettes - uses: r-lib/actions/check-r-package@v2 env: R_QUARTO_QUIET: false ================================================ FILE: .github/workflows/pkgdown.yaml ================================================ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: branches: [main, master] pull_request: release: types: [published] workflow_dispatch: name: pkgdown.yaml permissions: read-all jobs: pkgdown: runs-on: ubuntu-latest # Only restrict concurrency for non-PR jobs concurrency: group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} permissions: contents: write steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::pkgdown, local::. needs: website - uses: r-lib/actions/setup-tinytex@v2 - name: Build site run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) shell: Rscript {0} - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' uses: JamesIves/github-pages-deploy-action@v4.5.0 with: clean: false branch: gh-pages folder: docs ================================================ FILE: .github/workflows/pr-commands.yaml ================================================ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: issue_comment: types: [created] name: pr-commands.yaml permissions: read-all jobs: document: if: ${{ github.event.issue.pull_request && (github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER') && startsWith(github.event.comment.body, '/document') }} name: document runs-on: ubuntu-latest env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} permissions: contents: write steps: - uses: actions/checkout@v4 - uses: r-lib/actions/pr-fetch@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::roxygen2 needs: pr-document - name: Document run: roxygen2::roxygenise() shell: Rscript {0} - name: commit run: | git config --local user.name "$GITHUB_ACTOR" git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" git add man/\* NAMESPACE git commit -m 'Document' - uses: r-lib/actions/pr-push@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} style: if: ${{ github.event.issue.pull_request && (github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER') && startsWith(github.event.comment.body, '/style') }} name: style runs-on: ubuntu-latest env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} permissions: contents: write steps: - uses: actions/checkout@v4 - uses: r-lib/actions/pr-fetch@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: r-lib/actions/setup-r@v2 - name: Install dependencies run: install.packages("styler") shell: Rscript {0} - name: Style run: styler::style_pkg() shell: Rscript {0} - name: commit run: | git config --local user.name "$GITHUB_ACTOR" git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" git add \*.R git commit -m 'Style' - uses: r-lib/actions/pr-push@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} ================================================ FILE: .github/workflows/site-languages.yml ================================================ on: workflow_dispatch: name: pkgdown-i18n-netlify jobs: build-and-deploy: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - lang: ca locale: ca_ES.UTF-8 - lang: de locale: de_DE.UTF-8 - lang: dk locale: da_DK.UTF-8 - lang: es locale: es_ES.UTF-8 - lang: fr locale: fr_FR.UTF-8 - lang: ko locale: ko_KR.UTF-8 - lang: pt locale: pt_PT.UTF-8 - lang: tr locale: tr_TR.UTF-8 - lang: zh_CN locale: zh_CN.UTF-8 env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-tinytex@v2 - uses: r-lib/actions/setup-pandoc@v2 - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::pkgdown, local::. needs: website - name: Generate locale ${{ matrix.locale }} run: | sudo locale-gen ${{ matrix.locale }} sudo update-locale LANG=${{ matrix.locale }} shell: bash - name: Install package run: R CMD INSTALL . - name: Set lang in _pkgdown.yml run: | config <- yaml::read_yaml("pkgdown/_pkgdown.yml") config$lang <- "${{ matrix.lang }}" yaml::write_yaml(config, "pkgdown/_pkgdown.yml") shell: Rscript {0} - name: Build site for ${{ matrix.lang }} run: pkgdown::build_site() shell: Rscript {0} env: LANG: ${{ matrix.locale }} - name: Create index file run: | echo ' ' > ./docs/index.html - name: Deploy to Netlify uses: nwtgck/actions-netlify@v3.0 with: publish-dir: "./docs" production-branch: main github-token: ${{ secrets.GITHUB_TOKEN }} deploy-message: "Deploy ${{ matrix.lang }}: ${{ github.event.pull_request.title || github.event.head_commit.message }} (${{ github.sha }})" alias: ${{ matrix.lang }} enable-commit-comment: false enable-github-deployment: false env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} ================================================ FILE: .github/workflows/test-coverage.yaml ================================================ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: branches: [main, master] pull_request: name: test-coverage.yaml permissions: read-all jobs: test-coverage: runs-on: ubuntu-latest env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - uses: r-lib/actions/setup-r-dependencies@v2 with: extra-packages: any::covr, any::xml2 needs: coverage - uses: r-lib/actions/setup-tinytex@v2 env: TINYTEX_INSTALLER: TinyTeX - name: Test coverage run: | cov <- covr::package_coverage( quiet = FALSE, clean = FALSE, install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package") ) print(cov) covr::to_cobertura(cov) shell: Rscript {0} - uses: codecov/codecov-action@v5 with: # Fail if error if not on PR, or if on PR and token is given fail_ci_if_error: ${{ github.event_name != 'pull_request' || secrets.CODECOV_TOKEN }} files: ./cobertura.xml plugins: noop disable_search: true token: ${{ secrets.CODECOV_TOKEN }} - name: Show testthat output if: always() run: | ## -------------------------------------------------------------------- find '${{ runner.temp }}/package' -name 'testthat.Rout*' -exec cat '{}' \; || true shell: bash - name: Upload test results if: failure() uses: actions/upload-artifact@v4 with: name: coverage-test-failures path: ${{ runner.temp }}/package ================================================ FILE: .gitignore ================================================ .Rproj.user .Rhistory .RData inst/doc *.orig .env *.tex docs /.quarto/ **/.quarto/ ================================================ FILE: .lintr.R ================================================ linters <- list(lintr::undesirable_function_linter( fun = c( # Base messaging "message" = "use cli::cli_inform()", "warning" = "use cli::cli_warn()", "stop" = "use cli::cli_abort()", # rlang messaging "inform" = "use cli::cli_inform()", "warn" = "use cli::cli_warn()", "abort" = "use cli::cli_abort()", # older cli "cli_alert_danger" = "use cli::cli_inform()", "cli_alert_info" = "use cli::cli_inform()", "cli_alert_success" = "use cli::cli_inform()", "cli_alert_warning" = "use cli::cli_inform()", # fs "file.path" = "use path()", "dir" = "use dir_ls()", "dir.create" = "use dir_create()", "file.copy" = "use file_copy()", "file.create" = "use file_create()", "file.exists" = "use file_exists()", "file.info" = "use file_info()", "normalizePath" = "use path_real()", "unlink" = "use file_delete()", "basename" = "use path_file()", "dirname" = "use path_dir()", # i/o "readLines" = "use read_lines()", "writeLines" = "use write_lines()" ), symbol_is_undesirable = FALSE )) exclusions <- list( "R/import-standalone-obj-type.R", "R/import-standalone-types-check.R", "vignettes", "tests/testthat/assets" ) ================================================ FILE: .vscode/extensions.json ================================================ { "recommendations": [ "Posit.air-vscode" ] } ================================================ FILE: .vscode/settings.json ================================================ { "[r]": { "editor.formatOnSave": true, "editor.defaultFormatter": "Posit.air-vscode" } } ================================================ FILE: DESCRIPTION ================================================ Package: pkgdown Title: Make Static HTML Documentation for a Package Version: 2.2.0.9000 Authors@R: c( person("Hadley", "Wickham", , "hadley@posit.co", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-4757-117X")), person("Jay", "Hesselberth", role = "aut", comment = c(ORCID = "0000-0002-6299-179X")), person("Maëlle", "Salmon", role = "aut", comment = c(ORCID = "0000-0002-2815-0399")), person("Olivier", "Roy", role = "aut"), person("Salim", "Brüggemann", role = "aut", comment = c(ORCID = "0000-0002-5329-5987")), person("Posit Software, PBC", role = c("cph", "fnd"), comment = c(ROR = "03wc8by49")) ) Description: Generate an attractive and useful website from a source package. 'pkgdown' converts your documentation, vignettes, 'README', and more to 'HTML' making it easy to share information about your package online. License: MIT + file LICENSE URL: https://pkgdown.r-lib.org/, https://github.com/r-lib/pkgdown BugReports: https://github.com/r-lib/pkgdown/issues Depends: R (>= 4.1) Imports: bslib (>= 0.5.1), callr (>= 3.7.3), cli (>= 3.6.1), desc (>= 1.4.0), downlit (>= 0.4.4), fontawesome, fs (>= 1.4.0), httr2 (>= 1.0.2), jsonlite, lifecycle, openssl, nanonext (>= 1.8.0), purrr (>= 1.0.0), ragg (>= 1.4.0), rlang (>= 1.1.4), rmarkdown (>= 2.27), tibble, whisker, withr (>= 2.4.3), xml2 (>= 1.3.1), yaml (>= 2.3.9) Suggests: covr, diffviewer, evaluate (>= 0.24.0), gert, gt, htmltools, htmlwidgets, knitr (>= 1.50), magick, methods, pkgload (>= 1.0.2), quarto, rsconnect, rstudioapi, rticles, sass, testthat (>= 3.1.3), tools VignetteBuilder: knitr, quarto Config/Needs/website: usethis, servr Config/potools/style: explicit Config/testthat/edition: 3 Config/testthat/parallel: true Config/testthat/start-first: build-article, build-quarto-article, build-reference, build Config/usethis/last-upkeep: 2025-09-07 Encoding: UTF-8 Roxygen: list(markdown = TRUE) RoxygenNote: 7.3.3 SystemRequirements: pandoc (>= 2.10.1) ================================================ FILE: LICENSE ================================================ YEAR: 2025 COPYRIGHT HOLDER: pkgdown authors ================================================ FILE: LICENSE.md ================================================ # MIT License Copyright (c) 2025 pkgdown authors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: NAMESPACE ================================================ # Generated by roxygen2: do not edit by hand S3method("[",tag) S3method(as_data,"NULL") S3method(as_data,tag_arguments) S3method(as_data,tag_author) S3method(as_data,tag_description) S3method(as_data,tag_details) S3method(as_data,tag_format) S3method(as_data,tag_note) S3method(as_data,tag_references) S3method(as_data,tag_section) S3method(as_data,tag_seealso) S3method(as_data,tag_source) S3method(as_data,tag_usage) S3method(as_data,tag_value) S3method(as_example,COMMENT) S3method(as_example,RCODE) S3method(as_example,TEXT) S3method(as_example,VERB) S3method(as_example,tag) S3method(as_example,tag_dontrun) S3method(as_example,tag_dontshow) S3method(as_example,tag_donttest) S3method(as_example,tag_dots) S3method(as_example,tag_if) S3method(as_example,tag_ifelse) S3method(as_example,tag_ldots) S3method(as_example,tag_out) S3method(as_example,tag_testonly) S3method(as_html,"#ifdef") S3method(as_html,"#ifndef") S3method(as_html,COMMENT) S3method(as_html,LIST) S3method(as_html,RCODE) S3method(as_html,Rd) S3method(as_html,TEXT) S3method(as_html,USERMACRO) S3method(as_html,VERB) S3method(as_html,character) S3method(as_html,tag) S3method(as_html,tag_R) S3method(as_html,tag_S3method) S3method(as_html,tag_S4method) S3method(as_html,tag_Sexpr) S3method(as_html,tag_acronym) S3method(as_html,tag_bold) S3method(as_html,tag_cite) S3method(as_html,tag_code) S3method(as_html,tag_command) S3method(as_html,tag_cr) S3method(as_html,tag_dQuote) S3method(as_html,tag_deqn) S3method(as_html,tag_describe) S3method(as_html,tag_dfn) S3method(as_html,tag_dots) S3method(as_html,tag_email) S3method(as_html,tag_emph) S3method(as_html,tag_enc) S3method(as_html,tag_enumerate) S3method(as_html,tag_env) S3method(as_html,tag_eqn) S3method(as_html,tag_figure) S3method(as_html,tag_file) S3method(as_html,tag_href) S3method(as_html,tag_if) S3method(as_html,tag_ifelse) S3method(as_html,tag_item) S3method(as_html,tag_itemize) S3method(as_html,tag_kbd) S3method(as_html,tag_ldots) S3method(as_html,tag_link) S3method(as_html,tag_linkS4class) S3method(as_html,tag_method) S3method(as_html,tag_newcommand) S3method(as_html,tag_option) S3method(as_html,tag_out) S3method(as_html,tag_pkg) S3method(as_html,tag_preformatted) S3method(as_html,tag_renewcommand) S3method(as_html,tag_sQuote) S3method(as_html,tag_samp) S3method(as_html,tag_special) S3method(as_html,tag_strong) S3method(as_html,tag_subsection) S3method(as_html,tag_tab) S3method(as_html,tag_tabular) S3method(as_html,tag_url) S3method(as_html,tag_var) S3method(as_html,tag_verb) S3method(pkgdown_print,default) S3method(pkgdown_print,gt_tbl) S3method(pkgdown_print,htmlwidget) S3method(print,pkgdown_xml) S3method(print,print_yaml) S3method(print,tag) S3method(usage_code,"NULL") S3method(usage_code,COMMENT) S3method(usage_code,RCODE) S3method(usage_code,Rd) S3method(usage_code,TEXT) S3method(usage_code,VERB) S3method(usage_code,tag) S3method(usage_code,tag_S3method) S3method(usage_code,tag_S4method) S3method(usage_code,tag_dots) S3method(usage_code,tag_ldots) S3method(usage_code,tag_method) S3method(usage_code,tag_special) S3method(usage_code,tag_usage) export(as_pkgdown) export(build_article) export(build_articles) export(build_articles_index) export(build_favicons) export(build_home) export(build_home_index) export(build_llm_docs) export(build_news) export(build_redirects) export(build_reference) export(build_reference_index) export(build_search) export(build_site) export(build_site_github_pages) export(build_tutorials) export(check_pkgdown) export(clean_cache) export(clean_site) export(data_template) export(deploy_site_github) export(deploy_to_branch) export(fig_settings) export(in_pkgdown) export(init_site) export(pkgdown_print) export(pkgdown_sitrep) export(preview_site) export(rd2html) export(render_page) export(stop_preview) export(template_articles) export(template_navbar) export(template_reference) import(fs) import(rlang) importFrom(lifecycle,deprecated) importFrom(utils,installed.packages) ================================================ FILE: NEWS.md ================================================ # pkgdown (development version) * When previewing a site, it is now served via a local http server. This enables dynamic features such as search to work correctly (@shikokuchuo, #2975). * do not autolink code that is in a link (href) in Rd files (#2972) # pkgdown 2.2.0 * Make `build_llm_docs()` more robust to the use of old Pandoc (@nanxstats, @galachad, #2952, #2954) ## Lifecycle changes * `autolink_html()` deprecated in 1.6.0 and `preview_page()` have been removed. ## New features * New `build_llm_docs()` generates a `llms.txt` at the root directory of your site, and provides a `.md` version of every page. You can disable by adding `llm-docs: false` to your `_pkgdown.yaml` (#2914, @maelle) * `build_articles()` now executes quarto vignettes in the same working directory as RMarkdown vignettes, namely the directory in which they live (#2877). ## Minor improvements and bug fixes * `build_site()` gained a `quiet` argument, which is propagated to other functions (e.g., `build_articles()`) and is useful for debugging build errors on GH actions. * New translations were add for Dutch (`nl`) and Japanese (`ja`), thanks to @pepijn-devires and @shikokuchuo respectively. * Links generated with `\code{\link{foo}()}` now have the `()` moved into the `` in the generated output (@maelle). * Plots in dark mode are now transformed with a CSS filter to improve their visibility (thanks to @gadenbuie). * Updated the translations vignette with instructions for building non-English sites through Github Actions. * Added documentation explaining how to solve incorrect rendering of plotmath expressions under ragg devices on Linux. (@remlapmot, #2908) * Improved the LaTeX syntax in one of the math rendering test cases (@remlapmot) # pkgdown 2.1.3 * Menu items can now set `class` and `id`. # pkgdown 2.1.2 ## New features * ROR IDs in `DESCRIPTION` are transformed into icons, similar to ORCID IDs. (#2850) * New `clean_site(force = TRUE)` for cleaning of `docs/` regardless of whether it was built by pkgdown (#2827). * The language of the site is set from the first `Language:` in the `DESCRIPTION` if it is available and no other language is specified (@jonthegeek, #2808). ## Bug fixes and minor improvements * Option `pkgdown.internet` was removed because CDN file caching now requires an internet connection. * Math rendering using katex and mathjax was improved and now includes necessary components using CDN (#2704). * Articles have improved test cases (thanks to @venpopov and @ethanbass). * Sass variables from bslib are now used to set the navbar background color: `$navbar-bg` for the background color in light and dark mode, or `$navbar-light-bg` and `$navbar-dark-bg` for individually controlling light and dark mode background colors. `pkgdown-navbar-bg` and `$pkgdown-navbar-bg-dark` both still provide pkgdown-specific overrides (@gadenbuie, #2847). * Code repositories hosted on Codeberg are now supported in the `BugReports` and `URL` fields (@nfrerebeau, #2843). * Links to favicons in page headers were updated to reflect changes to https://realfavicongenerator.net/ (#2804). Favicons should be re-generated by manually removing the `pkgdown/favicon` directory and then running `pkgdown::build_favicons()`. * Reinstate Rd macro loading, which was accidentally disabled in v2.1.1 (#2782). # pkgdown 2.1.1 * Added keyboard shortcut, `/`, to focus search bar (#2423). * The `BugReports` field can now be an email (@catalamarti, #2275). * New `clean_cache()` function removes the contents of the cache directory (#2718). * pkgdown now depends on R >= 4.0.0 (#2714). * Updated GitHub Actions advice and workflows around Quarto install (@tanho63, #2743). * Support ANSI sequences in `index.md` (@krlmlr, #2787). # pkgdown 2.1.0 ## Major changes * Added @olivroy and @salim-b as pkgdown authors in recognition of their contributions. * `build_articles()` and `build_article()` now support articles/vignettes written with quarto (version 1.5 and above). Combining the disparate quarto and pkgdown templating systems is a delicate art, so while I've done my best to make it work, there may be some rough edges. So please file an issue you encounter quarto features that don't work quite right. Learn more in `vignette("quarto")`(#2210). * New light switch makes it easy for users to switch between light and dark themes for the website (based on work in bslib by @gadenbuie). For now this behaviour is opt-in with `template.light-switch: true` but in the future we may turn it on automatically. See the customization vignette for details (#1696). * New `vignette("translations")` that discusses non-English sites including how to submit new translations (#2605). * New `vignette("accessibility")` describes what manual tasks you need to perform to make your site as accessible as possible (#2344). * New `template.math-rendering` allows you to control how math is rendered across your site. The default uses `mathml` which is low-dependency, but has the lowest fidelity. You can also use `mathjax`, the previous default, and `katex`, a faster alternative. (#1966). * All external assets (JS, CSS, fonts) are now directly included in the site instead of fetched from external CDN (@salim-b, #2249) * YAML validation has been substantially improved so you should get much clearer errors if you have made a mistake (#1927). Please file an issue if you find a case where the error message is not helpful. ## Lifecycle changes * `autolink_html()` was deprecated in pkgdown 1.6.0 and now warns every time you use it. `downlit::downlit_html_path()` should be used instead. * `build_site(document)` and `build_reference(document)` has been removed after being deprecated in pkgdown 1.4.0. `devel` should be used instead. * `preview_page()` has been deprecated (#2650). * Bootstrap 3 has been deprecated. It was superseded in December 2021, and now we're starting to more directly encourage folks to move away from it. ## Front end changes * When built on GitHub, source urls now use the name of the current upstream branch (rather than `HEAD`), which is more likely to generate correct links (#2597). * The search dropdown has been tweaked to look more like the other navbar menu items (#2338). * Improve HTML5 compliance (#2369): * No longer support IE9 or earlier * Strip trailing whitespace * Label `