tbls/doc/Tutorial.md

82 lines
1.1 KiB
Markdown
Raw Normal View History

2024-08-03 23:09:10 +00:00
# Tutorial
## Random Selections
2024-08-02 18:22:14 +00:00
At its most basic, `tbls` selects a random element from a table.
Suppose you have a few tables:
```
:: suit
Hearts
Bells
Whistles
Cups
Knives
Shovels
:: card
Ace
One
Two
2024-08-03 23:09:10 +00:00
[...]
2024-08-02 18:22:14 +00:00
Queen
King
Beast
```
`tbls` might return "Whistles" from suit.
2024-08-03 23:09:10 +00:00
Or "Two" from card.
## Expansion
2024-08-02 18:22:14 +00:00
But wait there's more.
2024-08-03 23:09:10 +00:00
`tbls` will also expand certain text found in a table entry.
2024-08-02 18:22:14 +00:00
Let's add another table:
```
:: draw
[card] of [suit]
```
When you place the name of a table in `[squarebrackets]`,
then `tbls` views that as a placeholder
for a random item from that table.
2024-08-03 23:09:10 +00:00
It will expand that text.
So 'draw' might end up being "Thief of Shovels"
2024-08-02 18:22:14 +00:00
or "Twelve or Cups".
2024-08-03 23:09:10 +00:00
## Filters
`tbls` can run arbitary filters on text after expanding it.
Example filters can be found in `src/flib.fnl`.
To apply filters,
dot-chain them at the end
of a table reference.
Consider the following tables:
```
:: origin
Evelyn eats one [fruit]
Evelyn eats many [fruit.s]
:: fruit
banana
apple
pear
```
`s`, `plural`, and `pluralize`
are all different ways
to call the 'plural' filter function.
Example output:
```
Evelyn eats one pear
Evelyn eats one bananas
```