Skip to content

Restore Dialog as its own page; rewrite Dialog Nodes landing#34

Merged
jduval23 merged 1 commit into
rokudev:v2.0from
chrisdp:restore-dialog-page
May 12, 2026
Merged

Restore Dialog as its own page; rewrite Dialog Nodes landing#34
jduval23 merged 1 commit into
rokudev:v2.0from
chrisdp:restore-dialog-page

Conversation

@chrisdp
Copy link
Copy Markdown
Contributor

@chrisdp chrisdp commented May 12, 2026

Summary

Companion to #31, addressing the same consolidation pattern for Dialog. Upstream commit 5435954e ("fixed superfluous index pages", May 6 2026) merged dialog-nodes/dialog.md into dialog-nodes/index.md, deleting the dedicated Dialog reference page.

Unlike LabelBase, Dialog is a concrete instantiable node, not an abstract base class. Its natural home is back where it was at dialog-nodes/dialog.md, alongside the three subclasses (KeyboardDialog, PinDialog, ProgressDialog) that extend it — so this PR restores the file in place rather than relocating it to abstract-nodes/.

Why this restructuring matters

The same developer-impact concerns from #31 apply here:

  • Component clarity was lost. Dialog is the base class three other dialog nodes extend, and the docs are full of "Extends Dialog" references that need a real page to land on. Folding the Dialog reference into the section index makes Dialog no longer searchable as its own node and conflates "section landing" with "node reference."
  • The section landing stopped doing landing-page work. After consolidation, the index was a 70-line Dialog fields dump with no overview of the section, no signposting to the Standard dialog framework that supersedes these legacy nodes, and no introduction to which legacy dialog node fits which use case.
  • Inbound doc:dialog links broke silently across nine link sites in the repo.

What changed

  • Restored: docs/REFERENCES/scenegraph/dialog-nodes/dialog.md. Same content as the pre-consolidation page, with SEO metadata backfilled (excerpt / metadata.title / metadata.description) to match the convention upstream commit b2287405 applied to sibling reference pages.
  • Rewritten: docs/REFERENCES/scenegraph/dialog-nodes/index.md. Prominent deprecation pointer to the Standard dialog framework, a Choosing-a-node table covering Dialog / KeyboardDialog / PinDialog / ProgressDialog with use cases, an inheritance note ("the other three all extend Dialog"), and a "Looking for something else?" section pointing readers at the modern replacements (StandardMessageDialog, StandardKeyboardDialog, StandardPinPadDialog, StandardProgressDialog) plus a note that voice entry is only available in the Standard framework.

Inbound-link audit

No collateral link rewrites needed. The Dialog restoration lands the file back at its original slug, so:

  • All 9 inbound doc:dialog / dialog-nodes/dialog.md references resolve naturally after the restoration.
  • 0 references to doc:dialog-nodes exist in the repo — nobody linked the consolidated section landing by slug, so the landing rewrite doesn't strand any inbound link.
  • 0 anchor-style references (dialog-nodes/index.md#fields, etc.) into the consolidated index.

Upstream commit 5435954 (May 6, 2026) merged dialog-nodes/dialog.md
into dialog-nodes/index.md, deleting the dedicated Dialog reference
page. Unlike LabelBase, Dialog is a concrete instantiable node (not
an abstract base class), so its natural home is back where it was at
dialog-nodes/dialog.md alongside the three subclasses (KeyboardDialog,
PinDialog, ProgressDialog) that extend it.

The consolidation made the section landing into a 70-line Dialog
reference dump with no overview of the section, no signposting to
the Standard dialog framework that supersedes these legacy nodes,
and broken inbound doc:dialog references across nine link sites.

This change restores dialog.md to its original location (so all nine
inbound doc:dialog / dialog-nodes/dialog.md references resolve again
without any link rewrites) and rewrites dialog-nodes/index.md as a
real section landing: prominent deprecation pointer to the Standard
dialog framework, a Choosing-a-node table covering all four legacy
dialogs, and a Looking-for-something-else section directing readers
toward the modern replacements.

Both pages also get SEO metadata backfilled to match the convention
established by upstream commit b228740 (seo backfill).
jduval23 pushed a commit that referenced this pull request May 12, 2026
Companion to PR #31 (LabelBase), #34 (Dialog), and #35 (LayoutGroup),
addressing the fourth instance of the same consolidation pattern.
Upstream commit 5435954 (May 6, 2026) merged
dynamic-voice-keyboard-nodes/dynamic-keyboard-base.md into the section
index.md, deleting the dedicated DynamicKeyboardBase reference page
and breaking 14 inbound doc:dynamic-keyboard-base link sites.

Like LabelBase, DynamicKeyboardBase is a genuine abstract base class
(not directly instantiable; you only ever instantiate DynamicKeyboard,
DynamicPinPad, DynamicMiniKeyboard, or DynamicCustomKeyboard, which
all extend it). Its natural home is abstract-nodes/, matching the
convention used by ArrayGrid, AnimationBase, and the just-merged
LabelBase.

This change:
- Restores the page at abstract-nodes/dynamic-keyboard-base.md with
  SEO metadata backfilled, fields-table HTML reformatted with proper
  indentation, and a typo fix ("dication" -> "dictation" in two cells
  of the `domain` field description).
- Rewrites dynamic-voice-keyboard-nodes/index.md as a real section
  landing: short intro, Choosing-a-node table for the four keyboard
  variants, a separate components table covering DynamicKeyGrid,
  VoiceTextEditBox, and Key Definition File, an Inheritance note,
  a Voice entry note (currently English and Spanish, sourced from
  the existing DynamicKeyboardBase copy), a Looking-for-something-
  else section pointing at the legacy Keyboard/PinPad and the
  Standard dialog framework's StandardKeyboardDialog/
  StandardPinPadDialog, and a Sample app pointer.
- Updates 3 file-path-style refs in release-notes/index.md from
  /docs/references/scenegraph/dynamic-voice-keyboard-nodes/
  dynamic-keyboard-base.md to /docs/references/scenegraph/
  abstract-nodes/dynamic-keyboard-base.md.

All 14 inbound doc:dynamic-keyboard-base references resolve naturally
to the restored page (slug unchanged). The 1 inbound
doc:dynamic-voice-keyboard-nodes reference (release-notes:593)
resolves to the rewritten section landing.
jduval23 pushed a commit that referenced this pull request May 12, 2026
Upstream commit 600fc23 (May 6, 2026) renamed
layout-group-nodes/layoutgroup.md to layout-group-nodes/index.md as a
"fixed index page for layoutgroups" cleanup. The rename was a pure
git move with zero content changes, but it left the LayoutGroup
reference dressed up as a section landing (title still "Layout group
nodes" rather than "LayoutGroup", which had been mismatched to the
filename even before the May 6 rename), and broke five inbound
doc:layoutgroup link sites pointing at a slug that no longer existed.

Like Dialog (PR #34), LayoutGroup is a concrete instantiable node
(not an abstract base class), so its natural home is back at
layout-group-nodes/layoutgroup.md alongside ButtonGroup, TargetGroup,
and Group. This change restores the page (title corrected to
"LayoutGroup", fields-table HTML reformatted with proper indentation
and per-row line breaks for source readability while preserving the
rendered output) and rewrites index.md as a real section landing.

The new landing:
- Covers all four nodes in the section (Group, LayoutGroup,
  ButtonGroup, TargetGroup) with use-case descriptions
- Notes the inheritance relationships (ButtonGroup extends
  LayoutGroup; TargetGroup extends Group directly, not LayoutGroup)
- Adds a "How positioning is calculated" section explaining that
  LayoutGroup/ButtonGroup arrange children based on each child's
  bounding rectangle, with a pointer to ifSGNodeBoundingRect
- Points readers at List and grid nodes for built-in list/grid
  options, and at plain Group for free-positioning use cases

All five inbound doc:layoutgroup references resolve naturally to
the restored page without any link rewrites elsewhere. No inbound
references to doc:layout-group-nodes existed.
@jduval23 jduval23 merged commit 80b2846 into rokudev:v2.0 May 12, 2026
1 check failed
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.

2 participants