diff --git a/.github/workflows/docs-checks.yml b/.github/workflows/docs-checks.yml
index 72175fa..f321bfb 100644
--- a/.github/workflows/docs-checks.yml
+++ b/.github/workflows/docs-checks.yml
@@ -59,6 +59,10 @@ jobs:
fi
python3 src/aggregate.py $OVERRIDE_ARGS
+ - name: Run transformation
+ run: |
+ make transform
+
- name: Upload aggregated docs
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
diff --git a/docs/contributing/documentation/auto-glossary.md b/docs/contributing/documentation/auto-glossary.md
index 3f8eaba..1552113 100644
--- a/docs/contributing/documentation/auto-glossary.md
+++ b/docs/contributing/documentation/auto-glossary.md
@@ -35,13 +35,13 @@ Deploy [Gardenlinux](/reference/glossary#gardenlinux) on [AWS](/reference/glossa
## Function
-During aggregation (`make aggregate`), the system:
+After aggregation, `make transform` runs through these steps:
-1. Parses `docs/reference/glossary.md` to extract all level-3 headers as terms
-2. Extracts aliases from terms with parenthesized expansions (e.g., `ADR (Architecture Decision Record)`)
-3. Scans all markdown files for glossary markers
-4. Replaces markers with markdown links to glossary anchors
-5. Preserves code blocks, inline code, and existing links
+1. Parse `docs/reference/glossary.md` to extract all level-3 headers as terms
+2. Extract aliases from terms with parenthesized expansions (e.g., `ADR (Architecture Decision Record)`)
+3. Scan all markdown files for glossary markers
+4. Replace markers with markdown links to glossary anchors
+5. Preserve code blocks, inline code, and existing links
## Marking Terms
diff --git a/docs/contributing/documentation/ci-architecture.md b/docs/contributing/documentation/ci-architecture.md
index 2e54c37..d5b304f 100644
--- a/docs/contributing/documentation/ci-architecture.md
+++ b/docs/contributing/documentation/ci-architecture.md
@@ -95,6 +95,7 @@ flowchart TD
subgraph docsng["gardenlinux/docs"]
C --> D["docs-checks.yml\nJob: aggregate\n(runs aggregate.py with overrides)"]
+ D --> D2["Job: transform\n(glossary linking)"]
D --> E["Job: linkcheck\n(lychee)"]
D --> F["Job: spelling\n(codespell via make spelling)"]
D --> G["Job: woke\n(inclusive language)"]
@@ -152,6 +153,7 @@ sequenceDiagram
SrcRepo->>SrcRepo: docs-check.yml triggered
(PR opened / synchronize)
SrcRepo->>DocsNG: workflow_call → docs-checks.yml
override-repo, override-ref, override-commit
DocsNG->>DocsNG: aggregate job
(aggregate.py with overrides)
+ DocsNG->>DocsNG: transform job
(glossary linking)
DocsNG->>DocsNG: linkcheck job (lychee)
DocsNG->>DocsNG: spelling job (codespell)
DocsNG->>DocsNG: woke job (inclusive language)
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 0000000..1632606
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,8 @@
+[build]
+command = "make publish"
+publish = "docs/.vitepress/dist"
+
+[build.environment]
+NODE_VERSION = "22"
+PYTHON_VERSION = "3.13"
+
diff --git a/src/aggregate.py b/src/aggregate.py
index 348cb92..d9d2e47 100755
--- a/src/aggregate.py
+++ b/src/aggregate.py
@@ -12,7 +12,6 @@
from pathlib import Path
from aggregation import DocsFetcher, copy_targeted_docs, load_config, save_config
-from aggregation.auto_glossary import process_glossary_links
from aggregation.flavor_matrix import generate_flavor_matrix_docs
from aggregation.github_api import GitHubAPIError, list_repo_releases
from aggregation.install_pins import sync_install_pins