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 and applyTemplate to produce a Text, 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 of TemplateMonad, 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 of TemplateParts.

    • โž• Added a newtype for Variable.

    • ๐Ÿ‘Œ Improved documentation in README.md.

    • โž• Added a new test framework and much more extensive tests.