Skip to content

[Docs] Four doc directories have no index page, so their links 404 on the published site #1608

Description

@ChaoWao

Documentation Location

  • docs/hardware/ (4 pages)
  • docs/troubleshooting/ (7 pages)
  • docs/remote-l3-worker-design/ (6 pages)
  • docs/troubleshooting/device-error-codes/ (4 pages)

Linked as directories from docs/README.md (three rows), docs/dfx/README.md, and docs/user/how-to/debug-a-failed-run.md.

What's Wrong or Missing?

These four directories are linked with a trailing slash — [hardware/](hardware/) — rather than at a specific page. GitHub renders that as a directory listing, so it works when reading the repo. MkDocs leaves the link as-is and there is no index.html to serve, so every one of them 404s on https://hw-native-sys.github.io/simpler/.

MkDocs does report it, at INFO:

INFO - Doc file 'README.md' contains an unrecognized relative link 'hardware/', it was left as is.
INFO - Doc file 'README.md' contains an unrecognized relative link 'troubleshooting/', it was left as is.
INFO - Doc file 'README.md' contains an unrecognized relative link 'remote-l3-worker-design/', it was left as is.
INFO - Doc file 'dfx/README.md' contains an unrecognized relative link '../troubleshooting/', it was left as is.
INFO - Doc file 'user/how-to/debug-a-failed-run.md' contains an unrecognized relative link '../../troubleshooting/device-error-codes/', it was left as is.

--strict only fails on warn and above, so this builds clean today. The knob is validation.links.unrecognized_links in mkdocs.yml, currently at its default of info. It was deliberately left there in #1581 — that PR raised validation.links.anchors to warn and fixed the six broken anchors it exposed, and recorded that these five directory links are the remaining class, because fixing them means adding index pages, not editing links.

Twenty-one pages across the four directories are therefore reachable on the site only through nav, and the three that are excluded from nav on purpose (remote-l3-worker-design/*, troubleshooting/device-error-codes/*, investigations/* — see not_in_nav) are reachable only through these dead links.

Suggested Improvement

Add a README.md to each of the four directories, in the shape docs/dfx/README.md and docs/investigations/README.md already use — a short statement of what the directory is for, plus a table of its pages and what each covers. Then register them in mkdocs.yml's nav so the sidebar reaches them too.

Once all four exist, raise validation.links.unrecognized_links to warn in mkdocs.yml so --strict catches the next one. That step is the point of the exercise: without it, the same class of link rots back in silently, exactly as the anchors did before #1581.

docs/README.md already states the rule this would satisfy: "New docs belong in one of the groups below, and in a subdirectory when the group already has one." Four of the five subdirectories it names have no index of their own.

Additional Context

Related: #1581 (raised anchors to warn, fixed the six broken anchors, and scoped these out explicitly).

Discovered while making mkdocs build --strict meaningful; the site is built and deployed by .github/workflows/docs.yml on every push to main.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions