Skip to content

dhowe/rix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

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