doctemplates v0.3 Release Notes
-
Note that all of the changes to template syntax described below are backwards compatible, and all old pandoc templates should continue to work as before.
๐ Allow
${...}
style delimiters around variables and directives, in addition to$...$
. Allow space around the delimiters.๐ Support
$it$
as a variable for the current value in an iteration. (The old method, where the containing variable name is used, still works.)๐ Support partials (subtemplates defined in different files).
Interpolated array variables now have all elements rendered, concatenated, with an optional separator that can be specified using a new bracketed syntax.
โ Remove
TemplateTarget
class. It was pointless; the calling program can just do these trivial transformations. Avoids dependencies on bytestring, blaze-html, blaze-markup.๐ Change type of
renderTemplate
andapplyTemplate
to produce aText
, instead of being polymorphic.๐ Changed type of
compileTemplate
: it now takes a template path and the template contents, and returns either a template or an error. It runs in an instance ofTemplateMonad
, which is an abstraction around different ways of getting partials. (For example, in IO we can get partials by reading them from a file system, but in a web application one might want to obtain them from the database or have a set of them baked in.)โ Remove
varListToJSON
.๐ Changed the architecture:
Template
is no longer just a newtype around a function, but a list ofTemplatePart
s.โ Added a newtype for
Variable
.๐ Improved documentation in README.md.
โ Added a new test framework and much more extensive tests.