Create (and optionally edit) a draft of an R Markdown document based on a template.

draft(file, template, package = NULL, create_dir = "default", edit = TRUE)

Arguments

file

File name for the draft

template

Template to use as the basis for the draft. This is either the full path to a template directory or the name of a template directory within the rmarkdown/templates directory of a package.

package

(Optional) Name of package where the template is located.

create_dir

TRUE to create a new directory for the document (the "default" setting leaves this behavior up to the creator of the template).

edit

TRUE to edit the template immediately

Value

The file name of the new document (invisibly).

Details

The draft function creates new R Markdown documents based on templates that are either located on the filesystem or within an R package. The template and its supporting files will be copied to the location specified by file.

Note

An R Markdown template consists of a directory that contains a description of the template, a skeleton Rmd file used as the basis for new documents, and optionally additional supporting files that are provided along with the skeleton (e.g. a logo graphic).

If the template directory is contained within a package then it should be located at inst/rmarkdown/templates. For example, a package named pubtools that wanted to provide a template named quarterly_report would need to provide the following files within the pubtools/inst/rmarkdown/templates directory:

quarterly_report/template.yaml
quarterly_report/skeleton/skeleton.Rmd

The template.yaml file should include a name field. If you want to ensure that a new directory is always created for a given template, then you can add the create_dir field to the template.yaml file. For example:

create_dir: true

The skeleton/skeleton.Rmd file should include the initial contents you want for files created from this template. Additional files can be added to the skeleton directory, for example:

skeleton/logo.png

These files will automatically be copied to the directory containing the new R Markdown draft.

Examples

if (FALSE) {
rmarkdown::draft("Q4Report.Rmd",
                 template="/opt/rmd/templates/quarterly_report")

rmarkdown::draft("Q4Report.Rmd",
                 template="quarterly_report", package="pubtools")
}