Website: generate the user guide's key tables from the Apps' own help lists #72
Closed
opened 2026-10-06 23:29:55 +00:00 by twisla
·
1 comment
No Branch/Tag Specified
main
ci-speed
badges
keys-tables
help-key
devlog-console
console-setting
site-dev
site-howto
site-devlog
site-guide
site-security-txt
site
fix-release-polish
gitea-updates
coverage
ci
notes
f1
s1
m3
g1
m2
ota
v0.12.0
v0.11.0
v0.10.0
v0.9.0
v0.8.1
v0.8.0
v0.7.0
v0.6.1
v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.1
v0.2.0
v0.1.0
Labels
Clear labels
area/apps
area/audio
area/build
area/cluster
area/gemini
area/gitea
area/gnss
area/ir
area/irc
area/lora
area/ota-debug
area/power
area/scripting
area/ssh
area/storage
area/ui
area/vpn
area/website
area/wifi
concern/memory
concern/security
Launcher and the apps in src/apps
Microphone, speaker, the codec, recording and playback
PlatformIO, Docker, scripts, partitions, sdkconfig
AtomS3 co-processors on Grove and the link protocol
GeminiService, the Gemini App, Saved Pages
The Gitea client: issues, releases, its TLS and its token
GnssService, the GNSS App, Tracks
The infrared LED and the IR Remote
IrcService and the IRC App
The Cap LoRa-1262 radio and the mesh
Updates, Probation, Safe Mode, Debug Console, crash reports
Battery, PowerService, sleep
Lua Apps from the SD card and their API
The SSH client and its terminal
StorageService, the SD card, Storage page
Canvas, widgets, dialogs, Toasts, fonts, keyboard
The WireGuard tunnel
The project website and its docs
WifiService, Wi-Fi Settings, Wi-Fi Tools
May push the heap towards its floors; measure on the device
TLS, signing, the debug token, trust on first use
kind
bug
Something that doesn't work as it should
kind
chore
Refactors, tooling, CI, scripts
kind
docs
README, CONTEXT, milestones, ADRs
kind
feature
Something new the device can do
priority
high
Next up
priority
low
Some day
priority
medium
Soon
status
blocked
Waiting on something else
status
needs-design
Needs a question round (Qnn) before code
status
ready
Designed; can be started
Milestone
No items
No Milestone
W1 Website
Assignees
twisla (Clément Martin)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: twisla/roro9stack#72
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Follow-up to #69 (Q202). Every App now declares its keys for the state it is in (
App::help(),KeyHelprows), and the help panel shows them on the device. The user guide's key tables on the website are still written by hand (site/content/guide/*.md), so the two can drift.Idea: generate the guide's key tables from the same lists, as
site/tools/gen_dev_docs.pyalready does for the command reference (fromkHelp) and the ADRs.What makes it less than trivial: the lists are built in C++ at run time, per state (
if (view_ == …) out.push_back({…})), insrc/apps, which doesn't compile on a PC. Options for a design round:help dumpover the console) and commit the result, checked in CI like the other generated pages;Done when (to be refined): a key added to an App shows up on the website without anyone editing a guide page, and CI fails when the generated page is out of date.
Done in pull request #75, merged into
main.lib/core/src/app_keys.h(52 tables, each under a comment// id: Title). The device's help panel shows the table of the state an App is in.site/tools/gen_dev_docs.pyreads the same file and writessite/data/keys.toml. Thekeysshortcode puts a screen's tables on its guide page, and/guide/keys/lists all of them.app_keys.hchanges. A key added to an App shows up on the website without anyone editing a page.Of the three options in the issue this is the first (constant tables a script can read). It cost three rows their second wording, since a table can't change with the state: GNSS's
Tabandr, and the Scanner'sc, now say both things they do.Left as it was: the guide's hand-written tables, where they say more than a key list can. They can still drift; the generated ones under them are the reference.