# sablon v0.4.3 - Table of Contents

> A docx template processor - Elixir port of the Ruby `sablon` gem.

## Pages

- [Sablon](readme.md)
- [Changelog](changelog.md)

## Modules

- [Sablon](Sablon.md): A document template processor for Word `.docx` files.
- [Sablon.CLI](Sablon.CLI.md): The `sablon` command line interface.
- [Sablon.Configuration](Sablon.Configuration.md): Global, mutable configuration for HTML conversion.
- [Sablon.Configuration.HTMLTag](Sablon.Configuration.HTMLTag.md): The conversion rules for a single HTML tag.
- [Sablon.Content](Sablon.Content.md): The values that can be inserted into a template.
- [Sablon.Content.HTML](Sablon.Content.HTML.md): HTML insertion.
- [Sablon.Content.Image](Sablon.Content.Image.md): Image insertion.
- [Sablon.Content.String](Sablon.Content.String.md): Plain text insertion.
- [Sablon.Content.WordML](Sablon.Content.WordML.md): Direct insertion of WordProcessingML into the template.
- [Sablon.Context](Sablon.Context.md): Turns the user supplied context into the shape the renderer expects.
- [Sablon.DOM.ContentTypes](Sablon.DOM.ContentTypes.md): Adds default content types to `[Content_Types].xml`.
- [Sablon.DOM.FileHandler](Sablon.DOM.FileHandler.md): Helpers shared by the handlers that manipulate individual package parts.

- [Sablon.DOM.Model](Sablon.DOM.Model.md): An in-memory model of the whole `.docx` package.
- [Sablon.DOM.Numbering](Sablon.DOM.Numbering.md): Creates list definitions in `word/numbering.xml`.
- [Sablon.DOM.Numbering.Definition](Sablon.DOM.Numbering.Definition.md): A freshly created list definition.
- [Sablon.DOM.Relationships](Sablon.DOM.Relationships.md): Adds relationships to a `.rels` part.
- [Sablon.Environment](Sablon.Environment.md): Bundles the template being rendered with the user supplied context.
- [Sablon.Expression](Sablon.Expression.md): The tiny expression language used inside merge fields.
- [Sablon.Expression.LookupOrMethodCall](Sablon.Expression.LookupOrMethodCall.md): A dotted lookup starting from a context key.
- [Sablon.Expression.Variable](Sablon.Expression.Variable.md): A direct lookup of a context key.
- [Sablon.HTML.Parser](Sablon.HTML.Parser.md): A lenient HTML fragment parser.
- [Sablon.HTMLConverter](Sablon.HTMLConverter.md): Converts HTML into WordProcessingML.
- [Sablon.HTMLConverter.AST](Sablon.HTMLConverter.AST.md): Dispatch helpers shared by every AST node.
- [Sablon.HTMLConverter.ASTBuilder](Sablon.HTMLConverter.ASTBuilder.md): Converts an HTML tree into the AST the WordML writer consumes.
- [Sablon.HTMLConverter.Collection](Sablon.HTMLConverter.Collection.md): A bare sequence of AST nodes, rendered by concatenation.
- [Sablon.HTMLConverter.Hyperlink](Sablon.HTMLConverter.Hyperlink.md): An `a` element, rendered as an external hyperlink.
- [Sablon.HTMLConverter.List](Sablon.HTMLConverter.List.md): An `ol` or `ul` element.
- [Sablon.HTMLConverter.ListParagraph](Sablon.HTMLConverter.ListParagraph.md): A paragraph that is part of a list.
- [Sablon.HTMLConverter.Newline](Sablon.HTMLConverter.Newline.md): A `br` element, rendered as a line break inside a run.
- [Sablon.HTMLConverter.NodeProperties](Sablon.HTMLConverter.NodeProperties.md): The WordML property tag of an AST node, e.g. `w:pPr` for a paragraph.
- [Sablon.HTMLConverter.Paragraph](Sablon.HTMLConverter.Paragraph.md): A `w:p` element - the top level content container of a Word document.
- [Sablon.HTMLConverter.Root](Sablon.HTMLConverter.Root.md): The top level container of a converted HTML fragment.
- [Sablon.HTMLConverter.Run](Sablon.HTMLConverter.Run.md): A `w:r` element, i.e. a run of text with a single set of formatting.
- [Sablon.HTMLConverter.Table](Sablon.HTMLConverter.Table.md): A `w:tbl` element.
- [Sablon.HTMLConverter.TableCell](Sablon.HTMLConverter.TableCell.md): A `w:tc` element.
- [Sablon.HTMLConverter.TableRow](Sablon.HTMLConverter.TableRow.md): A `w:tr` element.
- [Sablon.HTMLConverter.Visitor](Sablon.HTMLConverter.Visitor.md): Visitors applied to the AST before it is written out.

- [Sablon.HTMLConverter.Visitor.LastNewlineRemover](Sablon.HTMLConverter.Visitor.LastNewlineRemover.md): Drops the trailing line break of a paragraph.
- [Sablon.Parser.MailMerge](Sablon.Parser.MailMerge.md): Finds the MailMerge fields in a document part.
- [Sablon.Parser.MailMerge.ComplexField](Sablon.Parser.MailMerge.ComplexField.md): A merge field spread over several runs, delimited by `w:fldChar` markers.
- [Sablon.Parser.MailMerge.Field](Sablon.Parser.MailMerge.Field.md): The behaviour shared by simple and complex merge fields.
- [Sablon.Parser.MailMerge.SimpleField](Sablon.Parser.MailMerge.SimpleField.md): A merge field stored as a single `w:fldSimple` element.

- [Sablon.Processor.Document](Sablon.Processor.Document.md): Processes the parts of a Word document that can contain merge fields.
- [Sablon.Processor.Document.Block](Sablon.Processor.Document.Block.md): The region of a document enclosed by a pair of control merge fields.
- [Sablon.Processor.Document.FieldHandlers](Sablon.Processor.Document.FieldHandlers.md): Turns merge fields into statements.
- [Sablon.Processor.Document.FieldHandlers.Comment](Sablon.Processor.Document.FieldHandlers.Comment.md): Handles `«comment» ... «endComment»` blocks.
- [Sablon.Processor.Document.FieldHandlers.Conditional](Sablon.Processor.Document.FieldHandlers.Conditional.md): Handles `«value:if»`, `«value:elsIf»`, `«value:else»` and `«value:endIf»` blocks.
- [Sablon.Processor.Document.FieldHandlers.EachLoop](Sablon.Processor.Document.FieldHandlers.EachLoop.md): Handles `«items:each(item)» ... «items:endEach»` blocks.
- [Sablon.Processor.Document.FieldHandlers.Image](Sablon.Processor.Document.FieldHandlers.Image.md): Handles `«@figure:start» ... «@figure:end»` image placeholders.
- [Sablon.Processor.Document.FieldHandlers.Insertion](Sablon.Processor.Document.FieldHandlers.Insertion.md): Handles `«=value»` fields.
- [Sablon.Processor.Document.OperationConstruction](Sablon.Processor.Document.OperationConstruction.md): Walks the merge fields of a document part and turns them into statements.
- [Sablon.Processor.SectionProperties](Sablon.Processor.SectionProperties.md): Applies document level section properties supplied at render time.
- [Sablon.Props](Sablon.Props.md): An insertion-ordered property list.
- [Sablon.Registry](Sablon.Registry.md): Global registries for the pluggable parts of `sablon`.
- [Sablon.Statement](Sablon.Statement.md): The operations a template can perform.
- [Sablon.Statement.Comment](Sablon.Statement.Comment.md): Drops a block from the rendered document.
- [Sablon.Statement.Condition](Sablon.Statement.Condition.md): Renders the first block whose condition holds, or the `else` block.
- [Sablon.Statement.Image](Sablon.Statement.Image.md): Renders an image into a placeholder picture.
- [Sablon.Statement.Insertion](Sablon.Statement.Insertion.md): Replaces a merge field with the value of an expression.
- [Sablon.Statement.Loop](Sablon.Statement.Loop.md): Repeats a block once per item of an enumerable.
- [Sablon.Template](Sablon.Template.md): A Word document used as a template.
- [Sablon.Test.Assertions](Sablon.Test.Assertions.md): Helpers for asserting on generated documents.
- [Sablon.XML](Sablon.XML.md): Convenience entry points for the mutable XML layer.
- [Sablon.XML.Document](Sablon.XML.Document.md): A mutable XML document.
- [Sablon.XML.Node](Sablon.XML.Node.md): A handle on a node inside a `Sablon.XML.Document`.
- [Sablon.XML.Parser](Sablon.XML.Parser.md): A small, non-validating XML parser.
- [Sablon.XML.Serializer](Sablon.XML.Serializer.md): Turns a `Sablon.XML` tree back into XML text.
- [Sablon.XML.Store](Sablon.XML.Store.md): The mutable cell behind a document tree.
- [Sablon.XML.XPath](Sablon.XML.XPath.md): A small XPath 1.0 subset, sufficient for every query `sablon` performs.
- [Sablon.Zip](Sablon.Zip.md): A minimal in-memory ZIP reader and writer.

- Exceptions
  - [Sablon.ContextError](Sablon.ContextError.md): Raised when the supplied context does not fit what the template expects.
  - [Sablon.TemplateError](Sablon.TemplateError.md): Raised when a template is structurally invalid, e.g. a block without an end field.

