This function behaves just like brew except for the <%=...%> tags, where Pandoc.brew first translate the R object found between the tags to Pandoc's markdown before passing to the cat function.
Usage
Pandoc.brew(
file = stdin(),
output = stdout(),
convert = FALSE,
open = TRUE,
graph.name,
graph.dir,
graph.hi.res = FALSE,
text = NULL,
envir = parent.frame(),
append = FALSE,
...
)Arguments
- file
file path of the brew template. As this is passed to
readLines,filecould be an URL too, but not over SSL (for that latterRCurlwould be needed).- output
(optional) file path of the output file
- convert
string: format of required output document (besides Pandoc's markdown). Pandoc is called if set via
Pandoc.convertand the converted document could be also opened automatically (see below).- open
try to open converted document with operating system's default program
- graph.name
character string (default to
%twhenoutputis set tostdoutandpaste0(basename(output), '-%n')otherwise) passed toevals. Besidesevals's possible tags%iis also available which would be replaced by the chunk number (and optionally an integer which would handle nestedbrewcalls) and%Iwith the order of the current expression.- graph.dir
character string (default to
tempdir()whenoutputis set tostdoutanddirname(graph.name)otherwise) passed toevals- graph.hi.res
render high resolution images of plots? Default is
FALSEexcept for HTML output.- text
character vector (treated as the content of the
file- envir
environment where to
brewthe template- append
should append or rather overwrite (default) the
outputmarkdown text file? Please note that this option only affects the markdown file and not the optionally created other formats.- ...
additional parameters passed to
Pandoc.convert
Details
This parser tries to be smart in some ways:
a block (R commands between the tags) could return any value at any part of the block and there are no restrictions about the number of returned R objects
plots and images are grabbed in the document, rendered to a png file and
pandermethod would result in a Pandoc's markdown formatted image link (so the image would be shown/included in the exported document). The images are put inplotsdirectory in currentgetwd()or to the specifiedoutputfile's directory.all warnings/messages and errors are recorded in the blocks and returned in the document as a footnote
Please see my Github page for details (https://rapporter.github.io/pander/#brew-to-pandoc) and examples (https://rapporter.github.io/pander/#examples).
References
Jeffrey Horner (2011). _brew: Templating Framework for Report Generation._ https://cran.r-project.org/package=brew
John MacFarlane (2012): _Pandoc User's Guide_. https://johnmacfarlane.net/pandoc/README.html
Examples
if (FALSE) { # \dontrun{
text <- paste('# Header', '',
'What a lovely list:\n<%=as.list(runif(10))%>',
'A wide table:\n<%=mtcars[1:3, ]%>',
'And a nice chart:\n\n<%=plot(1:10)%>', sep = '\n')
Pandoc.brew(text = text)
Pandoc.brew(text = text, output = tempfile(), convert = 'html')
Pandoc.brew(text = text, output = tempfile(), convert = 'pdf')
## pi is awesome
Pandoc.brew(text='<%for (i in 1:5) {%>\n Pi has a lot (<%=i%>) of power: <%=pi^i%><%}%>')
## package bundled examples
Pandoc.brew(system.file('examples/minimal.brew', package='pander'))
Pandoc.brew(system.file('examples/minimal.brew', package='pander'),
output = tempfile(), convert = 'html')
Pandoc.brew(system.file('examples/short-code-long-report.brew', package='pander'))
Pandoc.brew(system.file('examples/short-code-long-report.brew', package='pander'),
output = tempfile(), convert = 'html')
## brew returning R objects
str(Pandoc.brew(text='Pi equals to <%=pi%>.
And here are some random data:\n<%=runif(10)%>'))
str(Pandoc.brew(text='# Header <%=1%>\nPi is <%=pi%> which is smaller then <%=2%>.
foo\nbar\n <%=3%>\n<%=mtcars[1:2,]%>'))
str(Pandoc.brew(text='<%for (i in 1:5) {%>
Pi has a lot (<%=i%>) of power: <%=pi^i%><%}%>'))
} # }