docs: cleanup Confluence-export link debris + add confluence-html-link lint rule#55
Merged
Merged
Conversation
…k lint rule
Audit step 4 partial: kills the 11 known `<Name>_<digits>.html`
Confluence-export link artifacts left over from the original
Confluence-to-Markdown migration. Each was repointed at the current
in-repo doc that supersedes the dead Confluence page. The audit called
these "not aliasable" but the human-readable filename prefix maps every
target unambiguously.
Link rewrites (3 files / 11 edits):
docs/DEVELOPER/core-concepts/xml-components/component-initialization-order.md
L18 children_1608551.html
-> /docs/references/scenegraph/xml-elements/children.md
L23 interface_1608549.html
-> /docs/references/scenegraph/xml-elements/interface.md
L28 script_1608550.html
-> /docs/references/scenegraph/xml-elements/script.md
L58 PosterGrid_1607203.html
-> /docs/references/scenegraph/list-and-grid-nodes/postergrid.md
L66 Remote-Control-Events_1607636.html
-> ../scenegraph-xml/remote-control-events.md
L67 Scene_1607315.html
-> /docs/references/scenegraph/scene.md
docs/DEVELOPER/core-concepts/xml-components/scenegraph-compilation.md
L24 component_1608292.html
-> /docs/references/scenegraph/xml-elements/component.md
L31 Scene_1607315.html
-> /docs/references/scenegraph/scene.md
L32 OverhangPanelSetScene_1613108.html
-> /docs/references/scenegraph/sliding-panels-nodes/overhangpanelsetscene.md
L34 Component-Initialization-Order_1611697.html
-> component-initialization-order.md (sibling file)
docs/REFERENCES/brightscript/interfaces/ifpath.md
L74 https://sdkdocs-archive.staging.web.roku.com/roAssociativeArray_1611481.html
-> /docs/references/brightscript/components/roassociativearray.md
Path-convention notes:
- 9 of 11 use lowercase absolute paths (`/docs/references/...`) matching
the proven-working pattern: all 226 working in-repo absolute links in
the repo today use the lowercase form, and the renderer resolves them
case-insensitively to the uppercase `docs/REFERENCES/` filesystem.
- 2 use relative paths (the `Remote Control Events` and `Component
Initialization Order` references): both source files are under
`docs/DEVELOPER/core-concepts/`, and there are zero working
`/docs/developer/...` precedents in the repo, so a sibling-relative
path is the safer choice. Filesystem resolution confirmed for both.
New lint rule:
.github/scripts/docs-lint/rules/links.mjs
Rule id: `confluence-html-link` (error)
Catches:
- Relative or absolute link targets matching `<Name>_<digits>.html`
- External URLs to `sdkdocs-archive.staging.web.roku.com/`
Wired into index.mjs RULES array.
Verification:
$ node .github/scripts/docs-lint/index.mjs
...
brightscript-fence-required: 0
confluence-html-link: 0
pipe-no-blank-above: 1 (pre-existing, ifscreen.md)
html-blank-between-tags: 2 (pre-existing, ifscreen.md)
Out of scope (deferred to follow-up PRs of audit step 4):
- 151 broken-prefix in-repo absolute links (`/docs/developer-program/`,
`/dev/docs/`, `/docs/specs/`, `/docs/references/`, `/trc-docs/`)
- 8 anchor mismatches in DEVELOPER/release-notes/index.md
- 55 unique dead/errored external URLs identified by HTTP HEAD pass
- 5 misc broken relative paths
- 2,855 doc:slug ReadMe-legacy links (Tier-2 future migration)
This was referenced May 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Audit step 4 partial: kills the 11 known
<Name>_<digits>.htmlConfluence-export link artifacts left over from the original Confluence-to-Markdown migration. Each was repointed at the current in-repo doc that supersedes the dead Confluence page.The audit called these "not aliasable" but the human-readable filename prefix maps every target unambiguously to a file that exists in the repo today.
Link rewrites (3 files / 11 edits)
DEVELOPER/core-concepts/xml-components/component-initialization-order.mdchildren_1608551.html/docs/references/scenegraph/xml-elements/children.mdinterface_1608549.html/docs/references/scenegraph/xml-elements/interface.mdscript_1608550.html/docs/references/scenegraph/xml-elements/script.mdPosterGrid_1607203.html/docs/references/scenegraph/list-and-grid-nodes/postergrid.mdRemote-Control-Events_1607636.html../scenegraph-xml/remote-control-events.mdScene_1607315.html/docs/references/scenegraph/scene.mdDEVELOPER/core-concepts/xml-components/scenegraph-compilation.mdcomponent_1608292.html/docs/references/scenegraph/xml-elements/component.mdScene_1607315.html/docs/references/scenegraph/scene.mdOverhangPanelSetScene_1613108.html/docs/references/scenegraph/sliding-panels-nodes/overhangpanelsetscene.mdComponent-Initialization-Order_1611697.htmlcomponent-initialization-order.md(sibling file)REFERENCES/brightscript/interfaces/ifpath.mdhttps://sdkdocs-archive.staging.web.roku.com/roAssociativeArray_1611481.html/docs/references/brightscript/components/roassociativearray.mdPath-convention notes
9 of 11 use lowercase absolute paths (
/docs/references/...) matching the proven-working pattern: all 226 working in-repo absolute links in the repo today use the lowercase form, and the renderer resolves them case-insensitively to the uppercasedocs/REFERENCES/filesystem.2 use relative paths (the Remote Control Events and Component Initialization Order references): both source files are under
docs/DEVELOPER/core-concepts/, and there are zero working/docs/developer/...precedents in the repo, so a sibling-relative path is the safer choice. Filesystem resolution confirmed for both.New lint rule
.github/scripts/docs-lint/rules/links.mjsRule id:
confluence-html-link(error)Catches:
<Name>_<digits>.html(anywhere in the URL path)sdkdocs-archive.staging.web.roku.com/Wired into
index.mjsRULESarray. Lint baseline preserved (same 3 pre-existingifscreen.mdfindings as before; ZERO new errors after the sweep).Test plan
node .github/scripts/docs-lint/index.mjs-> 0confluence-html-linkerrors after sweeponKeyEvent()API)ifscreen.mdunchanged)Out of scope (deferred to follow-up PRs of audit step 4)
/docs/developer-program/112,/dev/docs/19,/docs/specs/17,/docs/references/2,/trc-docs/1)DEVELOPER/release-notes/index.mdRelated
Part of the May 16 audit cleanup plan (
dev-doc-review-report-2026-05-16.mdstep 4 -- broken-link sweep). Step 1 (Quick Wins) is in flight as PR #52. Step 2 (BrightScript fence sweep + lint rule) is in flight as PR #54.