This function takes a specially formatted R script and converts it to a
literate programming document. By default normal text (documentation) should
be written after the roxygen comment (#'
) and code chunk options are
written after #|
or #+
or # %%
or # ----
.
spin(
hair,
knit = TRUE,
report = TRUE,
text = NULL,
envir = parent.frame(),
format = c("Rmd", "Rnw", "Rhtml", "Rtex", "Rrst", "qmd"),
doc = "^#+'[ ]?",
inline = "^[{][{](.+)[}][}][ ]*$",
comment = c("^[# ]*/[*]", "^.*[*]/ *$"),
precious = !knit && is.null(text)
)
If text
is NULL
, the path of the final output document,
otherwise the content of the output.
Path to the R script. The script must be encoded in UTF-8 if it contains multibyte characters.
Logical; whether to compile the document after conversion.
Logical; whether to generate a report for Rmd
,
Rnw
and Rtex
output. Ignored if knit = FALSE
.
A character vector of code, as an alternative way to provide the
R source. If text
is not NULL
, hair
will be ignored.
Environment for knit()
to evaluate the code.
Character; the output format. The default is R Markdown.
A regular expression to identify the documentation lines; by
default it follows the roxygen convention, but it can be customized, e.g.
if you want to use ##
to denote documentation, you can use
'^##\\s*'
.
A regular expression to identify inline R expressions; by
default, code of the form {{code}}
on its own line is treated as
an inline expression.
A pair of regular expressions for the start and end delimiters
of comments; the lines between a start and an end delimiter will be
ignored. By default, the delimiters are /*
at the beginning of a
line, and */
at the end, following the convention of C comments.
logical: whether intermediate files (e.g., .Rmd
files
when format
is "Rmd"
) should be preserved. The default is
FALSE
if knit
is TRUE
and the input is a file.
Yihui Xie, with the original idea from Richard FitzJohn (who named it
as sowsear()
which meant to make a silk purse out of a sow's ear)
Obviously the goat's hair is the original R script, and the wool is the literate programming document (ready to be knitted).
stitch
(feed a template with an R script)