There was no docs/ directory, so the site published exactly one page — the root README — and that page carried 18 link targets that resolved to nothing (7 into unsynced markdown, 11 into source files that do not exist in the site tree). mkdocs build runs non-strict, so this failed silently.
docs/.pages and docs/hosts/.pages give awesome-pages an explicit order; the trailing ... picks up new pages without an edit.
Links are rewritten so one URL is correct in both Gitea and the published site:
From
To
Form
anywhere
a source file or dir
absolute Gitea src/branch/main/…
a page under docs/
another page under docs/
relative
the root README
a page under docs/
absolute docs.lyrapup.pet/nixfiles/…
The root README is the only file republished at a different depth from the rest of the tree, which is why it is the only one needing absolute links inward.
In-code comments pointing at a moved README are updated. The README gains a Documentation section covering the sync contract and the linking rules; CLAUDE.md carries the short version so future edits do not reintroduce unsynced pages or dead links.
Validation
nix flake check passes; all five NixOS hosts evaluate.
The docs-site assembly was reproduced locally against its pinned toolchain (mkdocs 1.6.1, mkdocs-material 9.7.7, awesome-pages 2.10.1). Pages render at the URLs used in the README, in the order .pages declares.
Needs the docs-site nav fix
This PR alone will not make the pages appear. The nav: block in docs-site/mkdocs.yml references directories:
awesome-pages does not expand bare directory references. It warns A reference to 'nixfiles' is included in the 'nav' configuration, which is not found in the documentation files and drops the section. Deleting the nav: block makes the plugin auto-discover both trees and honour the .pages ordering — confirmed locally. This affects the Terraform section today, independently of this change.
## Why
The docs-site build syncs only two things from this repo:
```
README.md -> docs/nixfiles/index.md
docs/ -> docs/nixfiles/
```
There was no `docs/` directory, so the site published exactly one page — the root README — and that page carried 18 link targets that resolved to nothing (7 into unsynced markdown, 11 into source files that do not exist in the site tree). `mkdocs build` runs non-strict, so this failed silently.
## What
Moves:
```
home/README.md -> docs/shell.md
home/KEYBINDINGS.md -> docs/keybindings.md
hosts/<Name>/README.md -> docs/hosts/<name>.md
```
`docs/.pages` and `docs/hosts/.pages` give awesome-pages an explicit order; the trailing `...` picks up new pages without an edit.
Links are rewritten so one URL is correct in both Gitea and the published site:
| From | To | Form |
| -------------------- | -------------------------- | -------------------------------------- |
| anywhere | a source file or dir | absolute Gitea `src/branch/main/…` |
| a page under `docs/` | another page under `docs/` | relative |
| the root README | a page under `docs/` | absolute `docs.lyrapup.pet/nixfiles/…` |
The root README is the only file republished at a different depth from the rest of the tree, which is why it is the only one needing absolute links inward.
In-code comments pointing at a moved README are updated. The README gains a Documentation section covering the sync contract and the linking rules; CLAUDE.md carries the short version so future edits do not reintroduce unsynced pages or dead links.
## Validation
- `nix flake check` passes; all five NixOS hosts evaluate.
- The docs-site assembly was reproduced locally against its pinned toolchain (mkdocs 1.6.1, mkdocs-material 9.7.7, awesome-pages 2.10.1). Pages render at the URLs used in the README, in the order `.pages` declares.
## Needs the docs-site nav fix
This PR alone will not make the pages appear. The `nav:` block in `docs-site/mkdocs.yml` references directories:
```yaml
nav:
- Home: index.md
- Terraform: terraform
- nixfiles: nixfiles
```
awesome-pages does not expand bare directory references. It warns `A reference to 'nixfiles' is included in the 'nav' configuration, which is not found in the documentation files` and drops the section. Deleting the `nav:` block makes the plugin auto-discover both trees and honour the `.pages` ordering — confirmed locally. This affects the Terraform section today, independently of this change.
The docs-site build syncs this repo's README.md and docs/ into the site
tree; nothing else is copied. All prose apart from the README therefore lived
outside the sync and never appeared on https://docs.lyrapup.pet/nixfiles/, and
the one page that did publish carried 18 link targets that resolved to nothing.
Moves:
home/README.md -> docs/shell.md
home/KEYBINDINGS.md -> docs/keybindings.md
hosts/<Name>/README.md -> docs/hosts/<name>.md
docs/.pages and docs/hosts/.pages give the awesome-pages plugin an explicit
order; new pages are picked up by the trailing '...' without an edit.
Links are rewritten so a single URL is correct in both Gitea and the published
site: absolute Gitea source URLs for .nix files and directories, relative links
between pages under docs/, and absolute docs.lyrapup.pet URLs from the root
README, which the build republishes at a different depth from the rest of the
tree. In-code comments that pointed at a moved README are updated to the new
path.
The README gains a Documentation section covering the sync contract and the
linking rules, and CLAUDE.md carries the short version so future edits do not
reintroduce unsynced pages or dead links.
Verified by reproducing the docs-site assembly locally against its pinned
toolchain (mkdocs 1.6.1, mkdocs-material 9.7.7, awesome-pages 2.10.1): pages
render at the URLs used above and in the declared order.
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.
Why
The docs-site build syncs only two things from this repo:
There was no
docs/directory, so the site published exactly one page — the root README — and that page carried 18 link targets that resolved to nothing (7 into unsynced markdown, 11 into source files that do not exist in the site tree).mkdocs buildruns non-strict, so this failed silently.What
Moves:
docs/.pagesanddocs/hosts/.pagesgive awesome-pages an explicit order; the trailing...picks up new pages without an edit.Links are rewritten so one URL is correct in both Gitea and the published site:
src/branch/main/…docs/docs/docs/docs.lyrapup.pet/nixfiles/…The root README is the only file republished at a different depth from the rest of the tree, which is why it is the only one needing absolute links inward.
In-code comments pointing at a moved README are updated. The README gains a Documentation section covering the sync contract and the linking rules; CLAUDE.md carries the short version so future edits do not reintroduce unsynced pages or dead links.
Validation
nix flake checkpasses; all five NixOS hosts evaluate..pagesdeclares.Needs the docs-site nav fix
This PR alone will not make the pages appear. The
nav:block indocs-site/mkdocs.ymlreferences directories:awesome-pages does not expand bare directory references. It warns
A reference to 'nixfiles' is included in the 'nav' configuration, which is not found in the documentation filesand drops the section. Deleting thenav:block makes the plugin auto-discover both trees and honour the.pagesordering — confirmed locally. This affects the Terraform section today, independently of this change.