Files
owl/doc/qweb.md
T
Géry Debongnie a7d2edd0c9 imp: qweb compiler now condenses whitespaces
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
2019-03-22 12:04:50 +01:00

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