Initial development on the Rix scripting extension for JavaScript
RiX is a minimal library that allows for generative language extensions within standard JavasScript strings.
An example:
let a = `A basic JavaScript string`
console.log(a) // -> "A basic JavaScript string"
let a = rix`A [special | lovely | Rix] JavaScript string`
console.log(a) // -> "A special JavaScript string" OR
// "A lovely JavaScript string" OR
// "A Rix JavaScript string"
TODO:
Notice that the 3rd output above is not exactly grammatical. Rather than "A expanded..." it should read "An expanded...". We can solve this using RiX transforms:
let a = rix`A [RiX | special | expanded].articlize() JavaScript string`
console.log(a) // -> "A RiX JavaScript string" OR
// "A special JavaScript string" OR
// "An expanded JavaScript string"
The script above uses a choice element, in brackets: [ RiX | special | expanded]
. Each time the script is run, one of the options -- "RiX" or "special" or "expanded" -- is selected.
The script also uses the articlize() transform. Transforms are basically functions that modify the text they are attached to. In this case the text in brackets -- "RiX" or "special" or "expanded" -- gets the appropriate article (a or an) via the Rix inflector.`