Sablon.Processor.Document (sablon v0.4.4)

Copy Markdown View Source

Processes the parts of a Word document that can contain merge fields.

Fields are collected, turned into statements and evaluated in order. New field syntaxes can be supported by registering a handler:

Sablon.Processor.Document.register_field_handler(:my_field, MyHandler)

The handler named :default is special and is used for fields no other handler claims.

Summary

Functions

The handler used for fields no other handler claims.

All registered merge field handlers.

Evaluates every merge field in xml_node against env and returns the node.

Registers a merge field handler; raises when the name is taken.

Removes a merge field handler and returns it.

Replaces a merge field handler.

Functions

default_field_handler()

@spec default_field_handler() :: module() | nil

The handler used for fields no other handler claims.

field_handlers()

@spec field_handlers() :: [module()]

All registered merge field handlers.

process(document, env)

Evaluates every merge field in xml_node against env and returns the node.

Accepts either a document or a single node, which is what lets a block render a detached copy of its own body.

register_field_handler(name, handler)

@spec register_field_handler(atom(), module()) :: :ok

Registers a merge field handler; raises when the name is taken.

remove_field_handler(name)

@spec remove_field_handler(atom()) :: module() | nil

Removes a merge field handler and returns it.

replace_field_handler(name, handler)

@spec replace_field_handler(atom(), module()) :: :ok

Replaces a merge field handler.