doctemplates v0.4 Release Notes

    • Split into three modules. Main module only exports an opaque version of the Template type. Import Internal if you need to manipulate a Template.

    • Add Context type, parameterized on the underlying content's type.

    • Add Val type.

    • Add valueToContext for converting an Aeson Value to a Context.

    • Make renderTemplate and applyTemplate polymorphic in both context and target. Context parameter is now any instance of ToContext (instead of ToJSON). Result is now any instance of TemplateTarget.

    • Change type of getPartial in TemplateMonad so it runs in the TemplateMonad instance, not the Parser. Return a simple value rather than an Either; error handling can vary with the monad.

    • Remove TemplatePart. Template is now an algebraci data type, not a list of TemplateParts.

    • Add an Indented type to indicate indentation for interpolated variables.

    • Improve architecture, doing more at compile time.

    • Depend on doclayout. Context can be parameterized on a doclayout Doc type, allowing intelligent reflowing of content.

    • Remove single final newline in interpolated variable.

    • Remove final newline from partial.

    • Don't iterate when the variable evaluates to NullVal.

    • Only indented interpolated variables if by themselves on line.

    • Add Indented parameter to Interpolate constructor.

    • Update documentation and haddocks.

    • Add benchmark.