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 10 additions and 5 deletions
Showing only changes of commit 533258e662 - Show all commits
+1 -1
View File
@@ -113,4 +113,4 @@ In [docs/decisions.md](docs/decisions.md):
- A name lives in the category binding it, or in the repeat binding it, and is drawn on its first read
- comprehension floor: every dimension and the overall at 7.0 or above; item 5 scores the restructure, which ships unscored: every `{…}` drawing afresh, the moves into `internal/`, and items 101, 102 and 104 to 106
- The template engine stays the root package until item 107; what reads no engine type sits in `internal/`, and items 101 and 102 move a table's rows there
- Goal 5.1 counts `{{`, `}}` and a lone `}` as template syntax, so they are not text printed as written
- Goal 5.1's `{…}` covers `{{`, `}}` and a lone `}`, so the goal names no escape
+3 -3
View File
@@ -842,10 +842,10 @@ package under `internal/`, behind the import list `imports_test.go` checks. A
table's rows stop reading any engine type once items 101 and 102 remove those reads; item
102 then moves them into `internal/rows` and adds it to that list. Valid until `todo.md` item 107 moves the engine.
## Goal 5.1 counts `{{`, `}}` and a lone `}` as template syntax, so they are not text printed as written
## Goal 5.1's `{…}` covers `{{`, `}}` and a lone `}`, so the goal names no escape
2026-10-05, Lilleman auf Larv. Serves goal 5.1. Goal 5.1 says everything outside `{…}` prints
2026-10-05, Lilleman auf Larv. Serves goal 5.1, which says everything outside `{…}` prints
exactly as written, yet `{{` prints `{`, `}}` prints `}`, and a lone `}` is a load error naming
`}}`, as the README's Format string section states. The maintainer ruled the escape implicit in the
goal: the braces belong to the `{…}` syntax, so the goal names no exception and a lone `}`
goal: doubled braces and a lone `}` belong to the `{…}` syntax, so the goal names no exception and a lone `}`
stays an error. Valid while a template escapes a brace by doubling it.
+6 -1
View File
@@ -6,7 +6,7 @@
`Bar = 9`
`Next ID = 114`
`Next ID = 115`
| Goal | W |
|---|---|
@@ -108,6 +108,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 |
| 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 |
| 114 | 0.2.0 | question | **Settle whether goal 7.2's "no escaping" holds for a first template with a literal brace, which must write `{{` or `}}`.** | 1 | 1 | 4 | 5 | 7.2 | 13.8 |
| 107 | 0.2.0 | decision | **Move the template engine into `internal/`, leaving the root the public API and its options.** | 6 | 9 | 3 | 8 | 3.2, 3.4 | 12.2 |
| 112 | 0.2.0 | | **Check a calc's field operands where its template links, beside its name operands, once item 36 reports every mistake at once.** | 2 | 2 | 1 | 6 | 3.2 | 10.3 |
| 94 | 0.2.0 | | **Refuse a name whose every read passes one deeper level, naming the binding of that level: `{place as p}{p.geo.town.name} {p.geo.town.zip}` is `{place.geo.town as t}{t.name} {t.zip}`.** | 3 | 3 | 3 | 5 | 5.7 | 10.2 |
@@ -382,6 +383,10 @@ Require the path step to reach a sibling category.
`readTableOptions` in `table.go` and `walkDir` in `internal/datafiles` return on the first in Go's map order.
### 114. Settle whether goal 7.2's "no escaping" holds for a first template with a literal brace, which must write `{{` or `}}`.
The decision "Goal 5.1's `{…}` covers `{{`, `}}` and a lone `}`, so the goal names no escape" keeps a lone `}` a load error. Goal 7.2 promises a first template needs no escaping; the maintainer decides whether that means shell quoting only, or also the doubled brace.
### 107. Move the template engine into `internal/`, leaving the root the public API and its options.
Needs item 5. The engine returns column values and the root builds `Record`. Revises the decision "The template engine stays the root package until item 107; what reads no engine type sits in `internal/`, and items 101 and 102 move a table's rows there", and, if the vocabulary moves, "The vocabulary sits below `doc.go`'s package clause, not in the package doc".