2019-04-24 11:54:26 +02:00
|
|
|
# 🦉 QWeb 🦉
|
2019-03-14 12:51:19 +01:00
|
|
|
|
2019-03-14 14:23:27 +01:00
|
|
|
QWeb is a template specification. The QWeb class in this repository is:
|
|
|
|
|
|
|
|
|
|
- an implementation of the QWeb specification
|
|
|
|
|
- which outputs a virtual dom instead of a string
|
|
|
|
|
- and extended with a few extra directives
|
|
|
|
|
|
|
|
|
|
## QWeb Specification
|
|
|
|
|
|
|
|
|
|
add here a full description of what QWeb is supposed to be, with some examples
|
|
|
|
|
|
|
|
|
|
## QWeb Implementation
|
|
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
var qweb = new QWeb();
|
|
|
|
|
qweb.addTemplate("sometemplate", '<div>hello <t t-esc="name"/></div>');
|
|
|
|
|
|
|
|
|
|
// result is a vnode which represent <div>hello world</div>
|
|
|
|
|
result = qweb.render("sometemplate", { name: "world" });
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## QWeb extensions
|
|
|
|
|
|
|
|
|
|
- t-on directive
|
|
|
|
|
- t-widget, t-props, t-key
|
|
|
|
|
- t-ref
|
2019-03-22 11:09:57 +01:00
|
|
|
|
|
|
|
|
## Note on white spaces
|
|
|
|
|
|
|
|
|
|
White spaces in a templates are handled in a special way:
|
|
|
|
|
|
|
|
|
|
- consecutive whitespaces are always condensed to a single whitespace
|
|
|
|
|
- if a whitespace-only text node contains a linebreak, it is ignored
|
|
|
|
|
- the previous rules do not apply if we are in a `<pre>` tag
|