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.

pkgdown is designed to make it quick and easy to build a website for
your package. You can see pkgdown in action at
https://pkgdown.r-lib.org: this is the output of pkgdown applied to
the latest version of pkgdown. Learn more in vignette("pkgdown") or
?build_site.
# Install released version from CRAN
install.packages("pkgdown")
# Install development version from GitHub
# install.packages("pak")
pak::pak("r-lib/pkgdown")
Get started with usethis:
# Run once to configure your package to use and deploy pkgdown
usethis::use_pkgdown_github_pages()
# Preview your site locally before publishing
pkgdown::build_site()
This adds the necessary components and sets up GitHub Actions[^1] for
automatic site building when deploying. Your README.md becomes the
homepage, documentation in man/ generates a function reference, and
vignettes will be rendered into articles/.
pkgdown 2.0.0 includes an upgrade from Bootstrap 3 to Bootstrap 5, which
is accompanied by a whole bunch of minor UI improvements. If you’ve
heavily customised your site, there’s a small chance that this will
break your site, so everyone needs to explicitly opt-in to the upgrade
by adding the following to _pkgdown.yml:
template:
bootstrap: 5
Then learn about the many new ways to customise your site in
vignette("customise").
At last count, pkgdown is used by over 12,000 packages. Here are a few examples:
bayesplot (source): plotting functions for posterior analysis, model checking, and MCMC diagnostics.
valr (source): read and manipulate genome intervals and signals.
mkin (source): calculation routines based on the FOCUS Kinetics Report
NMF (source): a framework to perform non-negative matrix factorization (NMF).
Comparing the source and output of these sites is a great way to learn new pkgdown techniques.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
[^1]: If you don’t use GitHub, you can use usethis::use_pkgdown() +
pkgdown::build_site() to create a website.