Skip to contents


  • epoxy’s knitr engine is now epoxy and not glue. This avoids a name clash with the glue package, which provides a glue knitr engine with similar functionality. epoxy also provides epoxy_html and epoxy_latex knitr engines, although they can still be used via their aliases glue_html and glue_latex. (#21)

  • epoxyHTML() will now render elements with IDs using the # syntax, e.g. {{ full_name}} will create an element that is (essentially) <h3 id="name" class="author">{{ full_name }}</h3> (#22).

  • epoxy requires glue >= 1.5.0.

  • Added a new internal dataset, bechdel, containing details for a random sample of ten movies that received a score of 3 on the Bechdel Test (#24).

  • epoxy’s style transformers can now be chained via epoxy_style(). For example to use both epoxy_style_bold() and epoxy_style_collapse() on all replacement strings, you can call epoxy_style("bold", "collapse"). epoxy_style() accepts a style function name, e.g. "collapse", the function object directly, e.g. epoxy_style_collapse, or a call to a style function, e.g. epoxy_style_collapse() (#26).

  • Added a new vignette("inline-reporting") with thanks to @tjmahr for the inspiration (#25).

  • The epoxy style transformers for bold, italic and code styles now choose the correct syntax for the epoxy (markdown), epoxy_html and epoxy_latex engines. Alternatively, you can force the desired syntax by setting the syntax option (#28).

  • epoxy’s knitr engines can now be set manually via the newly exported (and renamed) use_epoxy_knitr_engines(). This function is called when epoxy is loaded, so you most likely do not need to call it directly. In general, you can instead simply library(epoxy). epoxy previously provided a glue chunk rather than an epoxy chunk and you can restore this behavior by calling use_epoxy_glue_engine() (#30).

  • Added a new chunk option, epoxy_style, that takes precedence over the .transformer chunk option. The new chunk option is best paired with epoxy_style(), and for convenience you can prove a vector of style names or a list of functions, e.g. epoxy_style = c("bold", "collapse") (#31).

  • A new styler, epoxy_style_apply(), can be used to globally apply a function to glue expressions. epoxy_style_apply() uses the same syntax as purrr::map() for defining the function, i.e. tolower or ~ tolower(.x) (#37).

  • epoxy_style_format() provides a small inline function, fmt() that can be used to apply specific formatting to an expression. It wraps all of the label functions from the scales package and provides shortcuts for many labellers. For example, {fmt(x, "%")} will format x as a percentage using scales::label_percent() and {fmt(x, "$")} will format x as a dollar figure. You can also provide your own functions (#39).

  • By default, epoxy_style_format() (#44) and epoxy_style_collapse() (#45) are now available in all epoxy chunks. This means you won’t need to specify the epoxy_style chunk option to use the inline fmt() function or the *, &, or | collapse syntax.

  • epoxy_style_collapse() now uses the and ackage, which provides language-aware conjoining of strings. As a result, the sep_and and sep_or arguments of epoxy_style_collapse() are deprecated and are silently ignored if provided (#45).

  • epoxy, epoxy_html() and epoxy_latex() are now exported functions that power the knitr engines and use the same defaults (#46).

  • The HTML element syntax used in epoxyHTML() is now available in epoxy_style_html() and is used by default in epoxy_html() (#46).

epoxy 0.0.2

  • Added a whisker engine that uses the whisker package instead of glue.

  • The chunk option glue_data was changed to data.

  • The glue_html engine now uses {{ and }} for open/close delimiters.

  • glue/whisker chunks now accept .envir chunk option for the containing environemnt, otherwise falling back to the knitr::knit_global() env.