Make great documentation goal 1.2, and plan the README's reorganisation and the nested-template gaps #33

Open
lilleman wants to merge 966 commits from worktree-todo-relative-dates-exact-counts into main
3 changed files with 8 additions and 7 deletions
Showing only changes of commit 1bd9f58e56 - Show all commits
+3 -2
View File
@@ -959,8 +959,9 @@ Where the project is heading; the sections before Audience document what ships t
6. If two people could read a template differently, loading it fails, and the 6. If two people could read a template differently, loading it fails, and the
error shows how to write each meaning. error shows how to write each meaning.
7. Each result has one obvious way to write it. A spelling with a part that doesn't 7. Each result has one obvious way to write it. A spelling with a part that doesn't
change anything — a default written out, a repeated item, a wrapper around what change anything — a default written out, an item listed twice in a choice, a
could stand alone — fails to load, and the error shows it without that part. wrapper around what could stand alone — fails to load, and the error shows the
spelling to write instead.
8. When a clearer name turns up, it replaces the old one, even if that needs a new 8. When a clearer name turns up, it replaces the old one, even if that needs a new
major version. major version.
6. **Mistakes are caught when the data loads, and the error says plainly what is 6. **Mistakes are caught when the data loads, and the error says plainly what is
+2 -2
View File
@@ -532,8 +532,8 @@ Valid until item 4 makes every `{…}` draw afresh, which revises the shared ste
## A table selects by one key column, a code, never a free-form name ## A table selects by one key column, a code, never a free-form name
Decided 2026-09-27 by the maintainer, for goal 5.5: `[SE]` means one row wherever it is Decided 2026-09-27 by the maintainer, for goal 5.5: a name may repeat across rows or change
written. Valid while with its register, while a code selects one row for good. Valid while
the key is the code a user writes, as a database keys a table. `country[NO]` loads, and the key is the code a user writes, as a database keys a table. `country[NO]` loads, and
`country[Norway]` is refused naming `[NO]`, found by the row whose cell spells the `country[Norway]` is refused naming `[NO]`, found by the row whose cell spells the
selector. The key is the friendliest code the register holds, `misc.territory[SE]` and selector. The key is the friendliest code the register holds, `misc.territory[SE]` and
+3 -3
View File
@@ -106,7 +106,7 @@
| 27 | 0.2.0 | | **Merge `en_US.ip` and `sv_SE.ip`, today byte-identical, into one `misc.ip`.** | 3 | 2 | 4 | 6 | 5.7 | 14.1 | | 27 | 0.2.0 | | **Merge `en_US.ip` and `sv_SE.ip`, today byte-identical, into one `misc.ip`.** | 3 | 2 | 4 | 6 | 5.7 | 14.1 |
| 22 | 0.2.0 | | **Give `url` and `email` a path that draws only domains nobody can register, keeping the wide set as the default.** | 3 | 4 | 7 | 8 | 16 | 14.0 | | 22 | 0.2.0 | | **Give `url` and `email` a path that draws only domains nobody can register, keeping the wide set as the default.** | 3 | 4 | 7 | 8 | 16 | 14.0 |
| 46 | 0.2.0 | | **Report the same error every load for a table with two bad options, and for a folder with two unnamed rows files.** | 2 | 2 | 3 | 7 | 6, 10 | 14.0 | | 46 | 0.2.0 | | **Report the same error every load for a table with two bad options, and for a folder with two unnamed rows files.** | 2 | 2 | 3 | 7 | 6, 10 | 14.0 |
| 14 | 0.3.0 | | **Spell `misc.creditcard`'s digit runs `{digits(n)}`, and refuse a repeat over a lone `{digits(1)}` at `New`, naming that spelling.** | 3 | 3 | 4 | 6 | 5.7 | 13.9 | | 14 | 0.3.0 | | **Spell `misc.creditcard`'s digit runs `{digits(n)}`.** | 2 | 2 | 4 | 6 | 5.7 | 15.1 |
| 38 | 0.3.0 | defect | **Compare `calcParser.binary`'s operator as a rune.** | 1 | 1 | 3 | 6 | 6 | 13.8 | | 38 | 0.3.0 | defect | **Compare `calcParser.binary`'s operator as a rune.** | 1 | 1 | 3 | 6 | 6 | 13.8 |
| 45 | 0.3.0 | | **Name the node a selector follows in `stepInto`'s refusal.** | 1 | 1 | 3 | 6 | 6 | 13.8 | | 45 | 0.3.0 | | **Name the node a selector follows in `stepInto`'s refusal.** | 1 | 1 | 3 | 6 | 6 | 13.8 |
| 49 | 0.3.0 | | **Report a CRLF rows file holding only its header as having no rows.** | 1 | 1 | 3 | 6 | 6 | 13.8 | | 49 | 0.3.0 | | **Report a CRLF rows file holding only its header as having no rows.** | 1 | 1 | 3 | 6 | 6 | 13.8 |
@@ -372,9 +372,9 @@ Require the path step to reach a sibling category.
`readTableOptions` and `loadDir` return on the first in Go's map order. `readTableOptions` and `loadDir` return on the first in Go's map order.
### 14. Spell `misc.creditcard`'s digit runs `{digits(n)}`, and refuse a repeat over a lone `{digits(1)}` at `New`, naming that spelling. ### 14. Spell `misc.creditcard`'s digit runs `{digits(n)}`.
A repeat of 14 over `{digits(1)}` draws every 14-digit run with the odds `{digits(14)}` does, so under goal 5.7 the repeat is a wrapper that changes nothing. A `"repeat": 14` over `{digits(1)}` draws every 14-digit run with the odds `{digits(14)}` does. Both load, since neither has a part that changes nothing; the shipped data writes the obvious one. Re-pin seeded output in its own commit.
### 38. Compare `calcParser.binary`'s operator as a rune. ### 38. Compare `calcParser.binary`'s operator as a rune.