This is a simple wrapper function around as_utf8 and writeLines, letting users write their template strings to file without having to worry about file encodings. For more details on why UTF-8 encoding is necessary, check out Yihui Xie's post on the subject.

export_template(
template,
filename,
sep = "",
filename.is.string = TRUE,
strip.carriage.returns = TRUE
)

## Arguments

template The template string to be written out The path to write the template to, passed to writeLines. Also accepts stdout (and likely other similar functions) with a warning. Separator to use between lines written, passed to writeLines. Defaults to no separator, as templates are generally already spaced appropriately. A logical value indicating whether or not the filename parameter is expected to be a string (that is, a character vector). Setting the value to FALSE disables the warning when a non-character argument is passed, but this is unsupported functionality. A logical value indicating whether or not to strip carriage feed characters, should any exist. This preserves line spacing when writing out files originally written on Windows; otherwise writeLines appears to not recognize lines as ending with a newline and inserts one, resulting in 2x the number of line breaks as anticipated.

## Value

Returns the input template invisibly.

## Details

Note that this function is effectively the inverse of import_pattern -- export_template(import_pattern("out.txt"), "out.txt") should always result in an unchanged file, and exceptions to this rule would be considered bugs.

## Examples

pattern_file <- tempfile("out", tempdir(), ".Rmd")
export_template("my sample pattern", pattern_file)