This package provides a general-purpose tool for dynamic report
generation in R, which can be used to deal with any type of (plain
text) files, including Sweave, HTML, Markdown, reStructuredText,
AsciiDoc, and Textile. R code is evaluated as if it were copied and
pasted in an R terminal thanks to the evaluate package (e.g., we do
not need to explicitly print() plots from ggplot2 or lattice). R code
can be reformatted by the formatR package so that long lines are
automatically wrapped, with indent and spaces added, and comments
preserved. A simple caching mechanism is provided to cache results
from computations for the first time and the computations will be
skipped the next time. Almost all common graphics devices, including
those in base R and add-on packages like Cairo, cairoDevice and
tikzDevice, are built-in with this package and it is straightforward
to switch between devices without writing any special functions. The
width and height as well as alignment of plots in the output document
can be specified in chunk options (the size of plots for graphics
devices is also supported). Multiple plots can be recorded in a single
code chunk, and it is also allowed to rearrange plots to the end of a
chunk or just keep the last plot. Warnings, messages and errors are
written in the output document by default (can be turned off). The
language in code chunks is not restricted to R (there is simple
support to Python and shell scripts, etc). Many features are borrowed
from or inspired by Sweave, cacheSweave, pgfSweave, brew and decumar.

Homepage:
https://CRAN.R-project.org/package=knitr
