reprex development version
The YAML of reprex's template has been updated in light of the stricter YAML parser used in Pandoc >= 2.2.2.
rlang::set_attrs()has been soft-deprecated and is no longer used internally.
The reprex ad is formatted as superscript for
venue = "gh"and
venue = "so", i.e. it is more subtle (#201).
New experimental venue "rtf" produces syntax highlighted snippets suitable for pasting into presentation software such as Keynote or PowerPoint. This venue is discussed in an article (#26).
opts_knithave been removed from
reprex(). The same effect has always been achievable via roxygen comments in the reprex code and the examples have always demonstrated this. Overriding knitr options doesn't seem to come up often enough in real-world
reprex()usage to justify these arguments.
Internal file system operations use the fs package. This should not make any user-facing changes in reprex and we definitely want to know if it does.
reprex has a website: https://reprex.tidyverse.org. It includes a contributed article from @njtierney (#103).
reprex() gains several arguments and many arguments can now be controlled via an option, in case a user wants their own defaults.
reprex_selection() add-in reprexes the current selection, with venue controlled by the option
reprex.venue. It can be handy to bind to a keyboard shortcut (#84 @hadley).
If reprex can't write to the user's clipboard (e.g. on RStudio server or Unix-like systems lacking xclip or xsel), it offers to open the output file for manual copy.
Option-controlled arguments for custom defaults
These look like
reprex(..., arg = opt(DEFAULT), ...) in the help file. This is shorthand for
arg = getOption("reprex.arg", DEFAULT), i.e. the option
reprex.arg is consulted and, if unset, the documented default is used. Allows user to define their own default behaviour (#116).
New arguments to
advertise: toggles inclusion of a footer that describes when and how the reprex was created, e.g., "Created on 2017-11-16 by the reprex package (v0.1.1.9000)". Defaults to
style: requests code restyling via the newly-Suggested styler package. styler can cope with tidyeval syntactical sugar, e.g.
df %>% group_by(!! group_var). Defaults to
tidyverse_quiet: affords control of the startup message of the tidyverse meta-package. Defaults to
TRUE, i.e. suppresses the message (important special case of #70, #100).
std_out_err: appends output sent to stdout and stderr by the reprex rendering process. This can be necessary to reveal output if the reprex spawns child processes or has
system()calls. Defaults to
render: determines if the reprex is actually rendered or just returns after producing the templated
.Rfile. For internal testing.
Line wrapping is preserved from source via a Pandoc option (#145 @jimhester, #175).
venue = "gh"now targets CommonMark as the standard for GitHub Flavored Markdown (#77).
venue = "so"has appropriate whitespace at the start.
venue = "ds"is a new value, corresponding to https://www.discourse.org, which is the platform behind community.rstudio.com. This is currently just an alias for the default
"gh"GitHub venue, because the formatting appears to be compatible. Adding the
"ds"value so Discourse can be documented and to guard against the possibility that some formatting is actually unique.
keep.sourceoption is set to
TRUEwhen rendering the reprex, so reprexes involving srcrefs should work (#152).
The "undo" functions (
outfileargument is new (#129, #68).
The default value for knitr's
upload.funis now set according to the venue. It is
knitr::imgur_upload()for all venues except
"r", where it is
The HTML preview should appear in the RStudio Viewer more consistently, especially on Windows (#75 @yutannihilation).
More rigorous use of UTF-8 encoding (#76 @yutannihilation).
Expression input handling has been refactored. As a result, formatR is no longer Suggested. Trailing comments -- inline and on their own line -- are also now retained (#89, #91, #114, @jennybc and @jimhester).
Custom prompts are now escaped when used in regexes (#98, #99 @jimhester). Embedded newlines are now escaped.
This was a non-functioning release created by CRAN maintainers by commenting out lines of code relating to the clipboard.
- pandoc added to SystemRequirements.
outfile = NAcauses outfiles to be left in working directory. Filenames will be based on the
inputfile, if there was one.
reprex()strips any leading prompts from input code.
reprex_rescue()in order to go backwards, i.e. recover source from a wild-caught reprex.
venue = "R"(or
"r") can be used to get an R script back, augmented with commented output.
commentargument added to specify prefix for commented output.
Added an RStudio addin, accessed via "Render reprex".
reprex()and friends handles code as string, character vector, or file path.
The reprex is rendered via
callr::r_safe()and is thus run in a clean, separate R process, eliminating any leakage of objects or loaded packages to/from the calling session.
reprex()gains optional arguments
opts_knit, taking named list as input, in order to supplement or override default knitr chunk and package options, respectively. (#33)
- This made the explicit
upload.funargument unnecessary, so it's gone. The
upload.funoption defaults to
knitr::imgur_upload, which means figures produced by the reprex will be uploaded to imgur.com and the associated image syntax will be put into the Markdown, e.g.
!(http://i.imgur.com/QPU5Cg9.png). (#15 @paternogbc)
- This made the explicit
reprex()arguments has changed.
siargument to request that
sessionInfo()be appended to reprex code (#6 @dgrtwo). When
si = TRUEand
venue = "gh"(the default), session info is wrapped in a collapsible details tag. See an example (#55).
Reprex code can be provided as an R expression. (#6 @dgrtwo, #35)
reprex()uses clipboard functionality from
cliprand thus should work on Windows and suitably prepared Unix-like systems, in addition to Mac OS. (#16 @mdlincoln)
- I tweeted about this and some people actually used it!