mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
a7d2edd0c9
This is a pretty big breaking change: the html output by qweb is now different. The main goal is to optimize the compiled templates: - condense all consecutive whitespaces into a single spaces - if possible, drop completely some text nodes, based on the following heuristic: if a text node is only composed of whitespaces, and contains at least one linebreak, then it can be dropped. This leads in my benchmark test to an improvement of about 10%, in rendering speed and in memory consuption. Note: whitespace here means anything that matches the \s regexp: newlines, tabs, ... close #8
36 lines
937 B
Markdown
36 lines
937 B
Markdown
# QWeb
|
|
|
|
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
|
|
|
|
## 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
|