M
403d68de27
Write every builtin one way
...
A builtin could be spelled as prep (args parsed once, at compile) or call
(args parsed per render), reaching the same closure by two routes. Nothing
enforced the "exactly one of" invariant: supplying both silently dropped
call, supplying neither compiled and then panicked inside a render, and a
test existed only to police it.
prep does everything call did, so it is now the one spelling. The zero-arg
shapes the README already names — a derivation reads the output emitted so
far, a generator reads only the rng — lift through derive and generate, so
the registry reads as that taxonomy. iban stops looking its country up per
render.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-31 13:33:05 +02:00
M
5a69b02ee0
Find a format's bound readers in one ordered scan
2026-08-30 22:31:54 +02:00
M
c1222eaf72
Label the error fences, and settle a tie by where the format writes it
2026-08-30 22:31:54 +02:00
M
447cfae50a
Hold a bound level against every route that renders it, and let a matching string be
2026-08-30 22:31:54 +02:00
M
3ebaa5958d
Close the calc and reference spellings of an overlap, and reach the repeat rule behind a choice
2026-08-30 22:31:54 +02:00
M
f7165274c7
Accept one spelling per draw, and reject a path into a repeating level
2026-08-30 22:31:54 +02:00
M
e05fed1190
Hold a path's last level too, and reject an unfinished path
2026-08-30 22:31:54 +02:00
M
f512c1663d
Hold a path's draw at every level it passes through
2026-08-30 22:31:54 +02:00
M
a25b42ace2
Read one value when a bound path is read twice
2026-08-30 22:31:54 +02:00
M
12100239f5
Draw a dotted token's head once per expansion
2026-08-30 22:31:54 +02:00
M
16f91503b0
Reject a standalone weight on key presence, whatever its value
2026-08-28 13:27:32 +02:00
M
b14caae3a8
Reject options that cannot take effect, and skip entries that are not data
2026-08-28 13:27:32 +02:00
Mikael Göransson
37759f773f
Pin the builtin registry shape and grow as a lower bound, and correct stale comments
2026-08-28 13:20:07 +02:00
lilleman
ab9846c2ff
Compile format strings at New instead of re-scanning them on every render
2026-08-28 13:20:07 +02:00
lilleman
5b6480a094
Updates from reviewers
2026-06-09 10:03:53 +02:00
lilleman
cee2f35a2c
Add {calc()}: arithmetic over number literals and sibling fields
2026-06-09 07:59:29 +02:00
lilleman
cde56b7924
Add session-scoped seq() builtin; move uuid v4 from locales to misc only
2026-06-09 01:52:39 +02:00
lilleman
ae41e6bb97
Add ID/checksum/numeric builtins and a misc data folder (uuid v4, mac, creditcard)
2026-06-09 01:25:41 +02:00
lilleman
18de1b7004
Add {..path} references: render a node from elsewhere in the merged data root
2026-06-09 00:11:17 +02:00
lilleman
8db65ac598
Replace locale dirs with a data-folder namespace model: New([]paths), folder dot-paths, last-wins merge
2026-06-08 23:52:37 +02:00
lilleman
acf7571334
Stuff
2026-06-08 23:35:51 +02:00
lilleman
3e1cd3ee2a
Add repeat/separator templates; validate at compile time; support Go 1.22+ via GO_VERSION
2026-06-08 21:11:58 +02:00
lilleman
943a1d9f1b
Add fakes library: recursive JSON template engine, i18n locales, Docker workflow
2026-06-05 19:51:18 +02:00