Changelog
[4.0.0] - 2023-03-08
Added
-
new getters in
noPugmode
to provide smoother integration with typescript -
For French and English only, in
sentence
mixin, ability to generate a negative sentence, usingnegative: true
, e.g. to generate she is not giving it, she hasn’t it in English, and il ne les lui a pas données, ils n’ont jamais conduit in French. -
For French and English only, in
sentence
mixin, ability to generate a subject personal pronoun (I, you etc. in English, je, tu etc. in French), usingperson
property insubjectGroup
. -
For French only, in
value
andsentence
mixins, ability to generate a possessive determiner, usingpersonOwner: 1
, e.g. to generate ma maison, ta maison. ThepersonOwner
parameter is also available in thesentence
mixin subject and object groups.
Changed
-
#174: the initial
rosaenlg
package is split in two packages: arosaenlg-lib
package, without any Pug dependency, to be used (1) in 'noPug' mode, and (2) by therosaenlg
package (for templates), and arosaenlg
package, using therosaenlg-lib
package for usage within templates, and having the Pug dependencies. For 'noPug' mode users, this requires to now use therosaenlg-lib
package. -
Documentation from versions below 3.0.0 is no more published. 3.0.0 was released 2021-05-06. Main driver is build performance: building the full doc on all versions took ages.
[3.4.0] - 2023-02-27
Added
-
sentence
mixin to generate complete sentences using a description tree with subject, verb, complement. Support is beta (work in progress) and limited to French and English. See Sentences documentation.
[3.3.0] - 2023-02-07
Added
-
#154: it is now possible to reuse the context from one run to another, e.g. keeping the knowledge of what was said, the synonyms triggered etc. See Save context documentation.
[3.2.6] - 2022-10-30
[3.2.0] - 2022-01-22
Added
-
#109: There can now be 2 levels of assembly in
eachz
anditemz
. See in 2 levels assembly in eachz/itemz doc.
[3.1.2] - 2022-01-04
Fixed
-
\#
present in documentation are now corrected in#
(thanks to recipe https://github.com/asciidoctor/asciidoctor/issues/3415)
[3.0.0] - 2021-05-06
It is a major version because there are breaking changes.
Added
-
you may use RosaeNLG without using templates, accessing directly the low level JavaScript API; support is experimental. See Usage without Pug templates
-
there are now some "universal tenses" defined, which work for multiple languages; see Universal tenses table
Changed
There are 3 breaking changes that affect existing templates.
ref
and refexpr
must be reference to mixins
ref
and refexpr
must now be reference to mixins (and no more strings), and they must be referenced after being declared.
Before |
---|
- var PRODUCT = {}; - PRODUCT.ref = 'PRODUCT_ref'; mixin PRODUCT_ref(obj, params) |
the ring …. |
After |
- var PRODUCT = {}; mixin PRODUCT_ref(obj, params) |
the ring - PRODUCT.ref = PRODUCT_ref; …. |
Your templates will probably fail at runtime if you don’t change them. To migrate:
-
search for
.ref
and.refexpr
in your templates -
put references instead of strings
-
move them after the referenced mixin declaration
when referencing a mixin, assembly separators properties must not use a string
Assembly separators (last_separator
, begin_with_general
, etc.) can either be a string or reference a mixin.
When referencing a mixin, you must now put the mixin as a reference (no more as a string), and the mixin must have been defined before.
If you don’t migrate, your templates will not fail, but the text will be wrong: you will have the mixin name in the output.
To migrate, search for all assemblies (eachz
and itemz
) and change their properties if they reference mixins.
mixins and objects cannot have the same name
Mixins are now functions, which have a name; you cannot have mixins and objects having the same name, e.g.
mixin phone | bla bla - var phone = {};
is now invalid.
Your templates will probably fail at runtime if you don’t change them. Rename conflicting mixins or objects.