Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,25 @@ docs/**/assets
# Section directories - aggregated content is ignored, index.md is tracked
docs/contributing/**
!docs/contributing/index.md
!docs/contributing/documentation/
!docs/contributing/documentation/**
docs/explanation/**
!docs/explanation/index.md
!docs/explanation/documentation/
!docs/explanation/documentation/**
docs/how-to/**
!docs/how-to/documentation/
!docs/how-to/documentation/**
!docs/how-to/index.md
docs/reference/**
!docs/reference/documentation/
!docs/reference/documentation/**
!docs/reference/glossary.md
!docs/reference/index.md
!docs/reference/supporting_tools/
docs/reference/supporting_tools/**
!docs/reference/supporting_tools/index.md
!docs/reference/supporting_tools/docs-ng/
docs/tutorials/**
!docs/tutorials/documentation/
!docs/tutorials/documentation/**
!docs/tutorials/index.md
2 changes: 1 addition & 1 deletion README.md
1 change: 1 addition & 0 deletions docs/contributing/documentation/index.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
---
title: "docs-ng Architecture"
description: "Deep dive into how the docs-ng documentation aggregation system works"
github_org: gardenlinux
github_repo: docs-ng
github_source_path: docs/reference/supporting_tools/docs-ng/explanation/architecture.md
title: "Documentation Aggregation Architecture"
description: "Deep dive into how the documentation aggregation system works"
---

# docs-ng Architecture
# Documentation Aggregation Architecture

Deep dive into the design and implementation of the docs-ng documentation aggregation system.
Deep dive into the design and implementation of the documentation aggregation system.

> **Source Repository:** [gardenlinux/docs-ng](https://github.com/gardenlinux/docs-ng)

## System Overview

docs-ng is a documentation aggregation pipeline that combines content from multiple source repositories into a unified VitePress documentation site.
We use a documentation aggregation pipeline that combines content from multiple source repositories into a unified VitePress documentation site.

```
┌─────────────────┐
Expand Down Expand Up @@ -282,7 +279,8 @@ Temp Directory Docs Output

## See Also

- [Technical Reference](/reference/supporting_tools/docs-ng/reference/technical) — Module and API documentation
- [Configuration Reference](/reference/supporting_tools/docs-ng/reference/configuration) — Complete configuration field reference
- [Getting Started](/reference/supporting_tools/docs-ng/tutorials/getting_started) — Setup guide
- [Adding Repositories](/reference/supporting_tools/docs-ng/how-to/adding-repos) — How to add new repos
- [Getting Started Tutorial](../../tutorials/documentation/index.md) — Step-by-step guide to contributing documentation
- [Adding Repositories](../../how-to/documentation/adding-repos.md) — How to add new repositories to the aggregation
- [Technical Reference](../../reference/documentation/technical.md) — Source code and API documentation
- [Configuration Reference](../../reference/documentation/configuration.md) — Complete configuration options
- [Architecture Explanation](../../explanation/documentation/aggregation-architecture.md) — Deep dive into how the documentation aggregation system works
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
---
title: "How to Add Repositories to docs-ng"
title: "Adding Repositories to documentation aggregation"
description: "Guide for adding new repositories to the documentation aggregation system"
github_org: gardenlinux
github_repo: docs-ng
github_source_path: docs/reference/supporting_tools/docs-ng/how-to/adding-repos.md
---

# How to Add Repositories to docs-ng
# Adding Repositories to documentation aggregation

This guide explains how to add a new repository to the docs-ng aggregation system.
This guide explains how to add a new repository to the documentation aggregation system.

> **Source Repository:** [gardenlinux/docs-ng](https://github.com/gardenlinux/docs-ng)

Expand Down Expand Up @@ -251,6 +248,8 @@ Here's a complete configuration:

## See Also

- [Configuration Reference](/reference/supporting_tools/docs-ng/reference/configuration) — Complete field documentation
- [Architecture Explanation](/reference/supporting_tools/docs-ng/explanation/architecture) — How aggregation works
- [Technical Reference](/reference/supporting_tools/docs-ng/reference/technical) — Source code documentation
- [Getting Started Tutorial](../../tutorials/documentation/index.md) — Step-by-step guide to contributing documentation
- [Adding Repositories](../../how-to/documentation/adding-repos.md) — How to add new repositories to the aggregation
- [Technical Reference](../../reference/documentation/technical.md) — Source code and API documentation
- [Configuration Reference](../../reference/documentation/configuration.md) — Complete configuration options
- [Architecture Explanation](../../explanation/documentation/aggregation-architecture.md) — Deep dive into how the documentation aggregation system works
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
---
title: "docs-ng Configuration Reference"
title: "Documentation Aggregation Configuration Reference"
description: "Complete reference for repos-config.json and repos-config.local.json configuration options"
github_org: gardenlinux
github_repo: docs-ng
github_source_path: docs/reference/supporting_tools/docs-ng/reference/configuration.md
---

# docs-ng Configuration Reference
# Documentation Aggregation Configuration Reference

Complete reference for configuring the docs-ng aggregation system.
Complete reference for configuring the documentation aggregation system.

> **Source Repository:** [gardenlinux/docs-ng](https://github.com/gardenlinux/docs-ng)

Expand Down Expand Up @@ -54,12 +51,14 @@ Development configuration file for local testing. Uses `file://` URLs to avoid g
### Required Fields

#### `name`

- **Type:** String
- **Description:** Unique identifier for the repository
- **Example:** `"gardenlinux"`, `"builder"`, `"python-gardenlinux-lib"`
- **Notes:** Used in generated paths and logging

#### `url`

- **Type:** String (URL or file path)
- **Description:** Repository location
- **Examples:**
Expand All @@ -68,18 +67,21 @@ Development configuration file for local testing. Uses `file://` URLs to avoid g
- **Notes:** For local development, use `file://` URLs in `repos-config.local.json`

#### `docs_path`

- **Type:** String
- **Description:** Path to documentation directory within the repository
- **Examples:** `"docs"`, `"documentation"`, `"."` (for root)
- **Notes:** Relative to repository root; content of this directory is copied

#### `target_path`

- **Type:** String
- **Description:** Destination path in the docs directory
- **Example:** `"projects/gardenlinux"`
- **Notes:** Usually `projects/<name>` for project mirrors

#### `ref`

- **Type:** String
- **Description:** Git reference to fetch (branch, tag, or commit)
- **Examples:** `"main"`, `"docs-ng"`, `"v1.0.0"`
Expand All @@ -88,20 +90,23 @@ Development configuration file for local testing. Uses `file://` URLs to avoid g
### Optional Fields

#### `commit`

- **Type:** String (commit hash)
- **Description:** Lock to a specific commit for reproducible builds
- **Example:** `"abc123def456..."`
- **Default:** Not used (fetches from `ref`)
- **Notes:** Generated automatically with `make aggregate-update`

#### `root_files`

- **Type:** Array of strings
- **Description:** Root-level files to copy (e.g., README.md, CONTRIBUTING.md)
- **Example:** `["README.md", "CONTRIBUTING.md", "LICENSE"]`
- **Default:** `[]` (no root files copied)
- **Notes:** Files can have `github_target_path` frontmatter for targeted placement

#### `structure`

- **Type:** String or Object
- **Description:** How to reorganize directory structure
- **Options:**
Expand All @@ -111,6 +116,7 @@ Development configuration file for local testing. Uses `file://` URLs to avoid g
- **Default:** `"flat"`

**Custom Structure Example:**

```json
"structure": {
"tutorials": "tutorials",
Expand All @@ -123,16 +129,18 @@ Development configuration file for local testing. Uses `file://` URLs to avoid g
This maps source directories to Diataxis categories.

#### `media_directories`

- **Type:** Array of strings
- **Description:** Directory names to treat as media/assets
- **Example:** `[".media", "assets", "_static", "images"]`
- **Default:** `[]`
- **Notes:**
- **Notes:**
- Searched recursively in source repository
- Nested media dirs (e.g., `tutorials/assets/`) copied to same relative path
- Root-level media dirs (e.g., `_static/`) copied to common ancestor of targeted files

#### `special_files`

- **Type:** Object (filename → category mapping)
- **Description:** Map non-standard files to Diataxis categories
- **Example:**
Expand All @@ -158,22 +166,15 @@ This maps source directories to Diataxis categories.
"target_path": "projects/gardenlinux",
"ref": "docs-ng",
"commit": "c4b1d8d7f878fcb3e779315d28e35fcb19ae4dfb",
"root_files": [
"CONTRIBUTING.md",
"SECURITY.md"
],
"root_files": ["CONTRIBUTING.md", "SECURITY.md"],
"structure": {
"tutorials": "tutorials",
"how-to": "how-to",
"explanation": "explanation",
"reference": "reference",
"contributing": "contributing"
},
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets", "_static"]
},
{
"name": "builder",
Expand All @@ -183,11 +184,7 @@ This maps source directories to Diataxis categories.
"ref": "docs-ng",
"commit": "b10476ad8c46130f310e36daa42c6e2c14fb51a9",
"structure": "flat",
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets", "_static"]
},
{
"name": "python-gardenlinux-lib",
Expand All @@ -197,11 +194,7 @@ This maps source directories to Diataxis categories.
"ref": "docs-ng",
"commit": "9142fccc3d83ab51759db7d328fa19166bc1df63",
"structure": "sphinx",
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets", "_static"]
}
]
}
Expand All @@ -223,6 +216,7 @@ This maps source directories to Diataxis categories.
- Keep structure and other settings consistent with production

**Example local config:**

```json
{
"repos": [
Expand Down Expand Up @@ -278,6 +272,7 @@ Repository using `github_target_path` frontmatter:
```

Then in your markdown files:

```yaml
---
title: "My Tutorial"
Expand All @@ -297,7 +292,7 @@ These help create source links in the documentation.

## See Also

- [Getting Started](/reference/supporting_tools/docs-ng/tutorials/getting_started) — Initial setup guide
- [Adding Repositories](/reference/supporting_tools/docs-ng/how-to/adding-repos) — How to add new repos
- [Technical Reference](/reference/supporting_tools/docs-ng/reference/technical) — Source code documentation
- [Architecture](/reference/supporting_tools/docs-ng/explanation/architecture) — System design
- [Getting Started](../../tutorials/documentation/index.md) — Initial setup guide
- [Adding Repositories](../../how-to/documentation/adding-repos.md) — How to add new repos
- [Technical Reference](./technical.md) — Source code documentation
- [Architecture](../../explanation/documentation/aggregation-architecture.md) — System design
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
---
title: "docs-ng Technical Reference"
description: "Source code documentation for the docs-ng aggregation system - modules, APIs, and implementation details"
github_org: gardenlinux
github_repo: docs-ng
github_source_path: docs/reference/supporting_tools/docs-ng/reference/technical.md
title: "Documentation Aggregation Technical Reference"
description: "Source code documentation for the documentation aggregation system - modules, APIs, and implementation details"
---

# docs-ng Technical Reference
# Documentation Aggregation Technical Reference

Source code documentation for the docs-ng aggregation system.
Source code documentation for the documentation aggregation system.

> **Source Repository:** [gardenlinux/docs-ng](https://github.com/gardenlinux/docs-ng) > **Source File:** [src/README.md](https://github.com/gardenlinux/docs-ng/blob/main/src/README.md)

Expand Down Expand Up @@ -148,7 +145,7 @@ This ensures reproducible builds.

### Running Tests

See [Testing Reference](/reference/supporting_tools/docs-ng/reference/testing) for details on the test suite.
See [Testing Reference](./testing.md) for details on the test suite.

### Adding New Transformation

Expand Down Expand Up @@ -176,6 +173,6 @@ Key architectural decisions are documented in the source repository:

## See Also

- [Testing Reference](/reference/supporting_tools/docs-ng/reference/testing) — Test suite documentation
- [Configuration Reference](/reference/supporting_tools/docs-ng/reference/configuration) — Complete configuration field reference
- [Architecture Explanation](/reference/supporting_tools/docs-ng/explanation/architecture) — How the system works
- [Testing Reference](./testing.md) — Test suite documentation
- [Configuration Reference](./configuration.md) — Complete configuration field reference
- [Architecture Explanation](../../explanation/documentation/aggregation-architecture.md) — How the system works
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
---
title: "docs-ng Testing Guide"
description: "Test suite documentation for docs-ng - unit tests, integration tests, and testing best practices"
github_org: gardenlinux
github_repo: docs-ng
github_source_path: docs/reference/supporting_tools/docs-ng/reference/testing.md
title: "Documentation Aggregation Testing Guide"
description: "Test suite for documentation - unit tests, integration tests, and testing best practices"
---

# docs-ng Testing Guide
# Documentation Aggregation Testing Guide

Test suite documentation for the docs-ng aggregation system.
Test suite documentation for the documentation aggregation system.

> **Source Repository:** [gardenlinux/docs-ng](https://github.com/gardenlinux/docs-ng) > **Source File:** [tests/README.md](https://github.com/gardenlinux/docs-ng/blob/main/tests/README.md)

Expand Down Expand Up @@ -227,6 +224,8 @@ Integration tests may fail if:

## See Also

- [Technical Reference](/reference/supporting_tools/docs-ng/reference/technical) — Source code documentation
- [Configuration Reference](/reference/supporting_tools/docs-ng/reference/configuration) — Configuration options
- [Architecture Explanation](/reference/supporting_tools/docs-ng/explanation/architecture) — System design
- [Getting Started Tutorial](../../tutorials/documentation/index.md) — Step-by-step guide to contributing documentation
- [Adding Repositories](../../how-to/documentation/adding-repos.md) — How to add new repositories to the aggregation
- [Technical Reference](../../reference/documentation/technical.md) — Source code and API documentation
- [Configuration Reference](../../reference/documentation/configuration.md) — Complete configuration options
- [Architecture Explanation](../../explanation/documentation/aggregation-architecture.md) — Deep dive into how the documentation aggregation system works
Loading
Loading