doc(ltm): add readme

ltm
Jef Roosens 2023-12-17 10:09:00 +01:00
parent 665f5fc63c
commit 11421dca74
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
1 changed files with 32 additions and 0 deletions

32
ltm/README.md 100644
View File

@ -0,0 +1,32 @@
# LTM - Lander Template Module
This module provides an interface for generating `char` streams from a given
template.
```html
<body>
<h1>{{ title }}</h1>
<ul>
{{ item start }}
<li><a href="{{ url }}">{{ name }}</a></li>
{{ item end }}
</ul>
</body>
```
The above snippet shows everything the templating language currently offers;
either singular variables (here: `title`) or nested templates (here: `item`).
Note the absence of a loop construct. This is because each variable and nested
template is implicitely already a loop; a variable or a nested template can be
added as many times as needed, and they will appear in the order they were
added.
Template strings are compiled into templates. From a template, an instance can
be created to which the required data can be added to fill in the template.
Instantiating a template does not modify the original template, meaning
templates can be safely used concurrently.
Each inserted variable can get its data from a variety of sources, namely
`char` buffers, files or a custom reader function. The resulting `char` stream
is never fully loaded into memory; an instance can stream its content to a
provided buffer to prevent unnecessary memory usage.