Skip to content

docs: resolve nav-orphan pages - #3

Merged
pfeerick merged 1 commit into
edgetx_2.12from
docs/resolve-nav-orphans
Sep 7, 2026
Merged

docs: resolve nav-orphan pages#3
pfeerick merged 1 commit into
edgetx_2.12from
docs/resolve-nav-orphans

Conversation

@pfeerick

@pfeerick pfeerick commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #2, resolving the nav-orphan pages flagged in Finding 2 of the pre-merge gap analysis (pages that build but aren't reachable from nav):

  • api-overview/constants/key_events.md — wired into nav under API Overview > Constants as "Key Event Mechanism", right after Key Event Constants. It had real, unique content (the FIRST/LONG/REPEAT/BREAK key-event mechanism explainer) not covered anywhere else, but was never linked from nav. Note: its own EVT_* constants table overlaps with key-event-constants.md's cleaner reference table — reconciling that duplication is left as a follow-up editorial call rather than bundled into this nav fix.
  • api-reference/constants.md — deleted. Empty auto-generated stub ("No extracted APIs are assigned to this group yet"), never in nav, not linked from anywhere else.
  • module-*.md dashboards — no action needed; already addressed by the planned mkdocs.yml/mkdocs.dev.yml public/dev split (separate change).
  • radios/tbs/README.md — no action needed; correctly commented out of nav pending real TBS radio model content (it's currently just an empty table with two commented-out placeholder rows).

Test plan

  • Confirmed nothing else links to api-reference/constants.md before deleting it
  • mkdocs build --strict — exit 0, zero warnings

🤖 Generated with Claude Code

https://claude.ai/code/session_015yCHydHbzZYCKpav38SonD

Wires api-overview/constants/key_events.md into nav under API Overview
> Constants as "Key Event Mechanism", right after Key Event Constants.
It was built but unreachable from nav despite having real, unique
content (the FIRST/LONG/REPEAT/BREAK key-event mechanism explainer)
that isn't covered anywhere else. Its constants table overlaps with
key-event-constants.md's cleaner reference table; reconciling that
duplication is left as a follow-up editorial decision rather than
bundled into this mechanical nav fix.

Also deletes api-reference/constants.md, an empty auto-generated stub
("No extracted APIs are assigned to this group yet") that was never
wired into nav and isn't linked from anywhere else in the site.

module-*.md dashboards and radios/tbs/README.md (also flagged as
nav-orphans in the pre-merge gap analysis) need no action here:
module-*.md is already addressed by the separate mkdocs.yml/
mkdocs.dev.yml public/dev split, and radios/tbs/README.md is
correctly hidden pending real TBS radio model content.

Verified with `mkdocs build --strict` (exit 0, zero warnings).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015yCHydHbzZYCKpav38SonD
@pfeerick
pfeerick merged commit 0988101 into edgetx_2.12 Sep 7, 2026
@pfeerick
pfeerick deleted the docs/resolve-nav-orphans branch September 7, 2026 04:09
pfeerick added a commit that referenced this pull request Sep 7, 2026
1. Critical: build_outputs() unconditionally regenerated every group's
   hub page from the model, including "display-lvgl" (zero extracted
   items, since LVGL firmware has no luadoc annotations at all) --
   this silently clobbered the hand-authored display-lvgl.md with the
   generic empty-group stub. Fixed build_outputs so a zero-item
   group's existing page is never overwritten (or deleted by the
   stale-page cleanup pass, which ran before the per-group write loop
   and would have unlinked it regardless of any check placed after)
   unless that existing content already matches the stub text.
   Verified no other hub page was affected: exactly two groups
   ("constants", "display-lvgl") currently have zero items, and only
   display-lvgl.md held real content.

   Per updated direction: display-lvgl.md is not restored to its full
   hand-ported content, since a separate in-progress firmware PR will
   add real /*luadoc*/ annotations for every LVGL function directly to
   api_colorlcd_lvgl.cpp, after which this page should be regenerated
   from source like every other page rather than hand-maintained.
   Replaced with an honest placeholder explaining the LVGL page and
   its ~30 function pages are pending that firmware work, rather than
   the misleading "no APIs assigned" stub or a soon-to-be-replaced
   full copy.

2. Investigated the LuaLS type-annotation regression from re-extracting
   against the real 2.12 branch: found 28 items where a param/return
   type dropped to "unknown". For 26 of them, the raw upstream
   /*luadoc*/ comment text genuinely differs between branches -- real
   2.12 firmware lacks an explicit type token (e.g. "(integer)") that
   the old cpm-tlm-sim-fix dev-branch snapshot had. That's an accurate
   reflection of real 2.12 being less precisely annotated, not a
   pipeline bug, and is not something to silently "fix" by reverting
   to the wrong-branch data.

   The other 2 (lcd.drawText, lcd.drawNumber) initially looked like a
   parser regression (identical raw_luadoc between old/new models) but
   traced to a real quirk in merge_item(): these symbols are
   documented in two source files (api_stdlcd.cpp without an
   inversColor parameter, api_colorlcd.cpp with one), and merge_item
   keeps whichever raw_luadoc text is longer for display while merging
   parameter lists from whichever block has more parameters -- so the
   displayed raw_luadoc didn't reflect the block that actually
   determines inversColor's type. Checked api_colorlcd.cpp on real
   2.12 directly: `@param inversColor (optional with the INVERS flag)
   ...` has no type token either. Same root cause as the other 26,
   just obscured by which merged block happens to get shown. No parser
   fix needed.

3. Added a conservative, report-only stale-page sweep (`build
   --report-unowned`) rather than an automatic delete: after building,
   lists any .md file under --docs-output not accounted for by the
   current model (not an index/review/module/group page, not an item
   page, not a preserved zero-item group page), for manual review.
   Never deletes anything -- some listed files may be legitimate
   hand-authored content with no model backing (confirmed: currently
   only the 45 known lvgl-*.md pages show up), some may be genuine
   orphans from a prior run under a different naming scheme or group
   assignment, and telling those apart automatically isn't safe to do
   with full confidence yet.

4. Removed the "constants" group from api-groups.json entirely (zero
   items, confirmed nothing references its page) -- this PR's rebuild
   had regenerated api-reference/constants.md, undoing its deliberate
   deletion in #3. Removing the group definition (rather than just
   deleting the page again) means a future rebuild can't resurrect it.

Also re-fixes the same recurring assets/luals/*.d.lua broken-link
regression documented in the previous commit -- repeated build runs
while investigating these findings regenerated the LuaLS files from
the still-unfixed raw upstream comments again.

Verified: `mkdocs build --strict` passes with zero warnings on both
mkdocs.yml and mkdocs.dev.yml. Confirmed all 45 lvgl-*.md pages still
exist on disk (just not linked from the temporary display-lvgl.md
placeholder). Confirmed zero uncategorized items after removing the
constants group.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015yCHydHbzZYCKpav38SonD
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant