docs site: generate landing pages for documented directories
infrastructure.md links to incidents/ the way Gitea renders directories. A static site has no directory listing, so the build now generates a small landing page (with each document's own title) for any documented directory that lacks an index. Build artifact only — no document is touched.
This commit is contained in:
1 parent
fa1f38ced2
commit
2d3291d493
1 file changed
+23
@@ -44,6 +44,29 @@ tar cf - \
|
|||||||
# A file that must sit at the site root (crawler rules), not under publishing/.
|
# A file that must sit at the site root (crawler rules), not under publishing/.
|
||||||
cp publishing/robots.txt "$SITE_SRC/robots.txt"
|
cp publishing/robots.txt "$SITE_SRC/robots.txt"
|
||||||
|
|
||||||
|
# The documents sometimes link to a directory (`incidents/`) the way Gitea
|
||||||
|
# renders it. A static site has no directory listing, so generate a small
|
||||||
|
# index page for any documented subdirectory that lacks one. This is a build
|
||||||
|
# artifact — the documents themselves are never touched.
|
||||||
|
(cd "$SITE_SRC" && find . -mindepth 1 -type d ! -path './publishing*' | while read -r dir; do
|
||||||
|
if compgen -G "$dir"/*.md >/dev/null && [ ! -f "$dir/index.md" ]; then
|
||||||
|
dir_name="$(basename "$dir")"
|
||||||
|
title="$(echo "$dir_name" | sed 's/-/ /g' | sed 's/^./\u&/')"
|
||||||
|
{
|
||||||
|
echo "# $title"
|
||||||
|
echo
|
||||||
|
echo "Landing page for this directory, generated by the publishing layer — the"
|
||||||
|
echo "documents themselves live untouched in the repository."
|
||||||
|
echo
|
||||||
|
for f in "$dir"/*.md; do
|
||||||
|
[ "$(basename "$f")" = "index.md" ] && continue
|
||||||
|
heading="$(grep -m1 '^# ' "$f" | sed 's/^# //' || true)"
|
||||||
|
echo "- [${heading:-$(basename "$f" .md)}]($(basename "$f"))"
|
||||||
|
done
|
||||||
|
} > "$dir/index.md"
|
||||||
|
fi
|
||||||
|
done)
|
||||||
|
|
||||||
# 2. Build.
|
# 2. Build.
|
||||||
if [ ! -x "$VENV/bin/mkdocs" ]; then
|
if [ ! -x "$VENV/bin/mkdocs" ]; then
|
||||||
echo "Creating build venv at $VENV"
|
echo "Creating build venv at $VENV"
|
||||||
|
|||||||
Reference in new issue
Block a user