build_articles.Rd
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/build-articles.R
\name{build_articles}
\alias{build_articles}
\alias{build_article}
\title{Build articles section}
\usage{
build_articles(pkg = ".", quiet = TRUE, lazy = TRUE,
override = list(), preview = NA)
build_article(name, pkg = ".", data = list(), lazy = FALSE,
quiet = TRUE)
}
\arguments{
\item{pkg}{Path to package.}
\item{quiet}{Set to \code{FALSE} to display output of knitr and
pandoc. This is useful when debugging.}
\item{lazy}{If \code{TRUE}, will only re-build article if input file has been
modified more recently than the output file.}
\item{override}{An optional named list used to temporarily override
values in \code{_pkgdown.yml}}
\item{preview}{If \code{TRUE}, or \code{is.na(preview) && interactive()}, will preview
freshly generated section in browser.}
\item{name}{Name of article to render. This should be either a path
relative to \code{vignettes/} without extension, or \code{index} or \code{README}.}
\item{data}{Additional data to pass on to template.}
}
\description{
Each R Markdown vignette in \code{vignettes/} and its subdirectories is rendered
and saved to \code{articles/}. Vignettes are rendered using a special document
format that reconciles \code{\link[rmarkdown:html_document]{rmarkdown::html_document()}} with your pkgdown
template.
}
\details{
A vignette with the same name as the package (e.g., \code{vignettes/pkgdown.Rmd})
gets special treatment. It is rendered and linked to in the navbar under
"Get started".
}
\section{External files}{
pkgdown differs from base R in its handling of external files. When building
vignettes, R assumes that vignettes are self-contained (a reasonable
assumption when most vignettes were PDFs) and only copies files explicitly
listed in \code{.install_extras}. pkgdown takes a different approach based on
\code{\link[rmarkdown:find_external_resources]{rmarkdown::find_external_resources()}}, and it will also copy any images that
you link to. If for some reason the automatic detection doesn't work, you
will need to add a \code{resource_files} field to the yaml metadata, e.g.:\preformatted{---
title: My Document
resource_files:
- data/mydata.csv
- images/figure.png
---
}
Note that you can not use the \code{fig.path} to change the output directory of
generated figures as its default value is a strong assumption of rmarkdown.
}
\section{YAML config}{
To tweak the index page, you need a section called \code{articles},
which provides a list of sections containing, a \code{title}, list of
\code{contents}, and optional \code{description}.
For example, this imaginary file describes some of the structure of
the \href{http://rmarkdown.rstudio.com/articles.html}{R markdown articles}:\preformatted{articles:
- title: R Markdown
contents:
- starts_with("authoring")
- title: Websites
contents:
- rmarkdown_websites
- rmarkdown_site_generators
}
Note that \code{contents} can contain either a list of vignette names
(including subdirectories), or if the functions in a section share a
common prefix or suffix, you can use \code{starts_with("prefix")} and
\code{ends_with("suffix")} to select them all. If you don't care about
position within the string, use \code{contains("word")}. For more complex
naming schemes you can use an arbitrary regular expression with
\code{matches("regexp")}.
pkgdown will check that all vignettes are included in the index
this page, and will generate a warning if you have missed any.
}
\section{YAML header}{
By default, pkgdown builds all articles with \code{\link[rmarkdown:html_document]{rmarkdown::html_document()}}
using setting the \code{template} parameter. This overrides any custom settings
you have in your YAML metadata, ensuring that all articles are rendered
in the same way (and receive the default site template).
If you need to override the output format, or set any options, you'll need
to add a \code{pkgdown} field to your yaml metadata:\preformatted{pkgdown:
as_is: true
}
This will tell pkgdown to use the \code{output_format} (and options) that you
have specified. This format must accept \code{template}, \code{theme}, and
\code{self_contained} in order to work with pkgdown.
If the output format produces a PDF, you'll also need to specify the
\code{extension} field:\preformatted{pkgdown:
as_is: true
extension: pdf
}
}
\section{Suppressing vignettes}{
If you want articles that are not vignettes, either put them in
subdirectories or list in \code{.Rbuildignore}. An articles link will be
automatically added to the default navbar if the vignettes directory is
present: if you do not want this, you will need to customise the navbar. See
\code{\link[=build_site]{build_site()}} details.
Vignette files prefixed with an underscore (e.g., \code{_index.Rmd}) are ignored
to enable rendering of \href{https://bookdown.org/yihui/bookdown/}{bookdown}
sites.
}
\section{Tables of contents}{
You can control the TOC depth via the YAML configuration file:\preformatted{toc:
depth: 2
}
}
\section{Figures}{
You can control the default rendering of figures by specifying the \code{figures}
field in \code{_pkgdown.yml}. The default settings are equivalent to:\preformatted{figures:
dev: grDevices::png
dpi: 96
dev.args: []
fig.ext: png
fig.width: 7.2916667
fig.height: ~
fig.retina: 2
fig.asp: 1.618
}
}