Changelog
[4.3.0] - 2023-10-07
Added
-
For French only, in
sentencemixin, ability to use personal pronouns with person 1S, 2S, 1P, 2P as objects, or to pass a non standard pronounForm e.g. to generate Il nous en remercie. -
For French only, now all French tenses (including INFINITIF, PARTICIPE PRESENT) supported. Passive voice is also supported in
verbandsentencemixin.
[4.2.1] - 2023-08-18
Changed
-
#193: search on documentation website is now powered by Antora Lunr extension
[4.1.0] - 2023-04-07
Added
-
For French only, in
sentencemixin, ability to insert a adverb modifier before the direct object, usingmodifierAdverb, e.g. to generate Le directeur ne prête pas souvent sa camionnette à ses élèves.
[4.0.0] - 2023-03-08
Added
-
new getters in
noPugmodeto provide smoother integration with typescript -
For French and English only, in
sentencemixin, 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
sentencemixin, ability to generate a subject personal pronoun (I, you etc. in English, je, tu etc. in French), usingpersonproperty insubjectGroup. -
For French only, in
valueandsentencemixins, ability to generate a possessive determiner, usingpersonOwner: 1, e.g. to generate ma maison, ta maison. ThepersonOwnerparameter is also available in thesentencemixin subject and object groups.
Changed
-
#174: the initial
rosaenlgpackage is split in two packages: arosaenlg-libpackage, without any Pug dependency, to be used (1) in 'noPug' mode, and (2) by therosaenlgpackage (for templates), and arosaenlgpackage, using therosaenlg-libpackage for usage within templates, and having the Pug dependencies. For 'noPug' mode users, this requires to now use therosaenlg-libpackage. -
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
-
sentencemixin 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
eachzanditemz. 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
.refand.refexprin 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.