Style and tricks
Sometimes it looks like Pug forgets to add a space where it should, especially when using conditions. You end up with concatenated words. This is a known topic. See https://pugjs.org/language/plain-text.html: Whitespace Control section. You should use an empty piped line (a pipe with either spaces or nothing after it) to force a space in the output.
| | bla |
Three dots (
…) are automatically transformed into
…. You can also put
… directly in your mixins.
Capitalization is not automatic after
… because it is not systematic:
The first word after an ellipsis is capitalized if it begins a new grammatical sentence.
When you list elements, it is sometimes (but very rarely) useful to be able to know which elements are empty and which are not.
The list of the non empty elements:
is sent to separators, when they are mixins and take an object parameter (see exemple)
is made available in
itemz > itemstructure
will output either first, second and also third or first and second depending on
When in a a
eachzstructure, elements are objects, while when in an
itemz > itemstructure, elements are integers.
When you read
params.nonEmpty, it can be
undefined: this happens when RosaeNLG is actually testing if the elements are empty or not. RosaeNLG will make a second call with
xxx.nonEmptyproperly populated. Thus just test and ignore if