https://github.com/dhowe/rix
Rix scripting
https://github.com/dhowe/rix
javascript-library rita tagged-template-literals
Last synced: 6 months ago
JSON representation
Rix scripting
- Host: GitHub
- URL: https://github.com/dhowe/rix
- Owner: dhowe
- Created: 2023-07-18T16:04:00.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-26T00:25:52.000Z (about 2 years ago)
- Last Synced: 2025-02-16T00:29:25.389Z (8 months ago)
- Topics: javascript-library, rita, tagged-template-literals
- Homepage:
- Size: 17.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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:```js
let a = `A basic JavaScript string`
console.log(a) // -> "A basic JavaScript string"
```
```js
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_:
```js
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"
```
### ExplanationThe 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.`