Learn R Programming

pander (version 0.3.1)

Pandoc.brew: Brew in pandoc format

Description

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())

Arguments

file
file path of the brew template. As this is passed to readLines, file could be an URL too, but not over SSL (for that latter RCurl would 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.convert and 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 %t when output is set to stdout and paste0(basename(output), '-%n') otherwise) passed to evals. Besides
graph.dir
character string (default to tempdir() when output is set to stdout and dirname(graph.name) otherwise) passed to evals
graph.hi.res
render high resolution images of plots? Default is FALSE except for HTML output.
text
character vector (treated as the content of the file
envir
environment where to brew the template

Value

  • converted file name with full path if convert is set, none otherwise

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 andpandermethod 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 (http://rapporter.github.com/pander/#brew-to-pandoc) and examples (http://rapporter.github.com/pander/#examples).

References

  • Jeffrey Horner (2011). _brew: Templating Framework for Report Generation._http://CRAN.R-project.org/package=brew
  • John MacFarlane (2012): _Pandoc User's Guide_.http://johnmacfarlane.net/pandoc/README.html

Examples

Run this code
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%>.\nAnd here are some random data:\n<%=runif(10)%>'))
str(Pandoc.brew(text='# Header <%=1%>\nPi is <%=pi%> which is smaller then <%=2%>.\nfoo\nbar\n <%=3%>\n<%=mtcars[1:2,]%>'))
str(Pandoc.brew(text='<%for (i in 1:5) {%>\n Pi has a lot (<%=i%>) of power: <%=pi^i%><%}%>'))

Run the code above in your browser using DataLab