GitHunt

RiX

Initial development on the Rix scripting extension for JavaScript

Overview

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"

Explanation

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.`

Contributors

Created July 18, 2023
Updated July 18, 2023