interface, nel/gui: trim overused em-dashes to natural punctuation
Down from 267 em-dashes across 16 files to 16, all of which are
legitimate structural uses (table n/a markers in the "default" column
of attribute tables). Non-structural em-dashes were converted to:
- colons for term-then-definition patterns and appositives introducing
a list;
- periods for what read as full sentence breaks (a "but" clause, an
amplification, a punchy conclusion);
- semicolons where a run-on tail was really a second independent
clause;
- parentheses where a matched pair of em-dashes wrapped a parenthetical
aside;
- reworded prose where the em-dash was pinning together two ideas that
needed a proper conjunction.
Kept em-dashes where structural: table cells showing "no default"
(| — |). Section headers of the form "# widget — CClass" were rewritten
as "# widget (CClass)" or "# widget: description"; the anchor cross-refs
that pointed at those headings (embedding.md → views#text-cviewtext,
database#link-reactive-rules; embedding.md → widget_sample#emscripten-
webgl-build carried over from the earlier milestone-tag cleanup) were
updated to the new slugs.
Content unchanged — same claims, same code snippets, same warnings; only
the punctuation between them.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
interface, nel/gui: reframe more apologetic wording
More cases of the same pattern: the docs qualify a widget or attribute
by contrasting it with a "production" or "typical" use rather than
saying what it actually does.
- skinning.md + widget_sample.md: "only layer0 renders a visible title
band in production use ... deeper layers' header_h/title_font_size
params are mostly latent" — deeper-layer header_h is not latent; it
sets the collapsed-row height of rollout children (which serve as
those layers' "titlebar"). Reworded to say directly what the params
do at each layer.
- views.md: "these need the application to install a text provider
(client-only in practice)" on text_id/text_id_formated — restated as
a plain contract (server-string id needs an app-installed text
provider; the client wires the network string cache, a standalone
app supplies its own backing).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
interface, nel/gui: trim circumstantial dev-notes
Wiki documentation should describe the current API and how to use it, not
narrate the path that built the sample. Removed asides that read as dev
journal rather than reference:
- widget_sample.md: dropped the M1-M7 milestone status section, the
`(M2)` / `(M3)` tags on section headers, the "learned the hard way"
header, the "two NLGUI bugs fixed while building this" note, the
"sample originally erased the name" bug story, the "the sample
introduced/no longer forces" framing on frame_covers_open_list and
layer options, and the commit SHA on the browser-input paragraph.
Reworded the `build_interface --keep-going` note as a plain flag
description instead of a "gained" changelog entry.
- embedding.md: dropped the "for years / until 2f6a3f319" and
"since cc374f902" SHA references, the parenthetical
"(this exact bug shipped in the sample for three milestones)" on
the proc row, and the "everything here was learned the hard way"
header line.
- action_handlers.md: rewrote the `@0` warning to state the failure
mode directly instead of narrating the launcher-toggle bug and how
the Lua console isolated it. Rewrote the debugging tip about
`runAH` bisection likewise.
- controls.md: dropped "the sample's Lua console was broken exactly
this way" tail on the enter_loose_focus warning.
- lua.md: dropped the "(it found the proc `@0` bug)" tail on the
console description.
- skinning.md: dropped the "(kept exercised there)" aside on the w_
skin bullet.
- interface.md + embedding.md: fixed the cross-page anchor for the
Emscripten/WebGL section (now `#emscripten-webgl-build`, was
`#emscripten-webgl-build-m3`).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
interface, nel/gui: fix fabricated font/w_ header claims + note openable demo
The "ingame.ttf is the required pixel font, basic.ttf overflows by ~30%"
line was wrong: both fonts shipped historically (ingame in beta, basic
later) and neither breaks the header metrics. Also removed the parallel
"single 24px w_header_* band" fabrication in widget_sample.md (and the
matching claim in skinning.md's font paragraph): both w_ and skin_
declare per-layer header_h (16/14/12/10) in the layer options, but only
layer0 renders an actual visible title band in production use since
sub-layers carry rollout children whose collapsed rows serve as the
"titlebar". Non-frame w_ art (gauges, tab buttons, brick slots) still
ships alongside the skin_ frame set. Also added the openable container
mode to the sample's widget coverage list (views window collapses to
its titlebar via the layer0 arrow).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comprehensive NeL GUI documentation: /interface authoring tree + library pages
/interface rebuilt from stub into the UI-creation root with ten subpages:
first window tutorial, layout (hotspots/posref/sizeref/vector), XML
structure (parse pipeline, defines, templates, styles, options), views,
controls, windows and containers, database/links/expressions, action
handlers and procedures, Lua scripting, HTML groups, and skinning.
Attribute tables and behaviors verified against nel/src/gui source;
31 screenshots captured from the live nl_sample_gui showcase.
/nel/gui rewritten as the library overview (architecture, element
hierarchy, frame flow, widget registry) with a new embedding guide
covering the full host-application contract and pitfalls learned
building the sample. Cross-links and context index updated.