templates: one Jinja language (hive-template) for the notify router's flows, flows document version 2
A todo node's key and text were hand-expanded `{field}` strings. They are now Jinja templates rendered through the new hive-template crate (minijinja, an unknown variable is an error), and the controller's save check reads the variables the template uses. The flows document is version 2; a version 1 document reads as version 2 with each `{field}` converted to `{{ field }}`, and the next save writes it.
This commit is contained in:
parent
11393bc538
commit
8ef3138863
1 changed files with 306 additions and 91 deletions
14
hive-template/README.md
Normal file
14
hive-template/README.md
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# hive-template
|
||||
|
||||
The one template language the hyperhive workspace renders with: Jinja, through
|
||||
[`minijinja`](https://crates.io/crates/minijinja). A value is `{{ name }}`, a
|
||||
block is `{% if cond %}...{% endif %}`, and a lone `{` or `}` stays plain text.
|
||||
|
||||
- **`render(template, &context)`**: the text, or a message when the template
|
||||
does not parse or names a variable the context lacks. An unknown variable is
|
||||
an error, never an empty string.
|
||||
- **`variables(template)`**: the variables the template reads, so a caller can
|
||||
refuse an unknown field when the template is saved instead of when it renders.
|
||||
|
||||
Used by the notification router's flow templates (`swarm-notify-router`,
|
||||
`swarm-wire`).
|
||||
Loading…
Reference in a new issue