build(docs): output pages as pagename/index.html for clean URLs

Split DOCS_OUT into INDEX_OUT (index.md files stay as index.html) and
PAGE_OUT (all other pages become pagename/index.html). The __ROOT__
depth computation already handles the extra directory level correctly.
This commit is contained in:
pj committed 2026-04-23 00:35:38 +07:00
1 parent b678e18863
commit b209fc9e5a
1 file changed
+14 -3
+14 -3
View File
@@ -11,8 +11,12 @@ SIDECAR_EMBED := internal/sidecar/assets/sidecar-all.jar
SDK_AAR := sdk/android/build/outputs/aar/sdk-android-release.aar
SANDERLING_BIN := bin/sanderling
DOCS_SRC := $(shell find docs -type f -name '*.md' -not -path 'docs/_*')
DOCS_OUT := $(patsubst docs/%.md,build/site/%.html,$(DOCS_SRC))
DOCS_SRC := $(shell find docs -type f -name '*.md' -not -path 'docs/_*')
INDEX_SRC := $(filter %index.md,$(DOCS_SRC))
PAGE_SRC := $(filter-out %index.md,$(DOCS_SRC))
INDEX_OUT := $(patsubst docs/%.md,build/site/%.html,$(INDEX_SRC))
PAGE_OUT := $(patsubst docs/%.md,build/site/%/index.html,$(PAGE_SRC))
DOCS_OUT := $(INDEX_OUT) $(PAGE_OUT)
DOCS_TEMPLATE := docs/_template/page.html
INSPECT_DIST := internal/inspect/dist
@@ -90,12 +94,19 @@ build/site/_assets: docs/_assets
@rm -rf $@
@cp -R $< $@
build/site/%.html: docs/%.md $(DOCS_TEMPLATE)
define build_page
@mkdir -p $(dir $@)
@pandoc $< --from=gfm --to=html5 --standalone \
--highlight-style=tango --template=$(DOCS_TEMPLATE) -o $@
@rel=$$(echo $(patsubst build/site/%,%,$@) | awk -F/ '{for(i=1;i<NF;i++)printf "../"}'); \
sed -i.bak "s|__ROOT__|$$rel|g" $@ && rm $@.bak
endef
$(INDEX_OUT): build/site/%.html: docs/%.md $(DOCS_TEMPLATE)
$(build_page)
$(PAGE_OUT): build/site/%/index.html: docs/%.md $(DOCS_TEMPLATE)
$(build_page)
clean:
$(GO) clean