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
937 B
937 B
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
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