Skip to content
Open
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
1 change: 1 addition & 0 deletions lychee.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ exclude = [
"^https://github\\.com/gardenlinux/python-gardenlinux-lib/blob/main/_static/",
"^https://github\\.com/gardenlinux/docs-ng/blob/main/src/README\\.md$",
"^https://github\\.com/gardenlinux/docs-ng/blob/main/tests/README\\.md$",
"^http://packages\\.gardenlinux\\.io/gardenlinux$",
]

# Accept these status codes as valid
Expand Down
50 changes: 13 additions & 37 deletions repos-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"docs_path": "docs",
"target_path": "projects/gardenlinux",
"ref": "docs-ng",
"commit": "063253164fffb481c5d1400f92c5455218f27897",
"commit": "3d3392ef4f115a2c37d0963200b6086c4e972f3d",
"root_files": [
"CONTRIBUTING.md",
"SECURITY.md",
Expand All @@ -21,11 +21,7 @@
"reference": "reference",
"contributing": "contributing"
},
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets"]
},
{
"name": "builder",
Expand All @@ -34,25 +30,21 @@
"target_path": "projects/builder",
"ref": "docs-ng",
"commit": "9a9a7e0ed3b0507e360c37dc2acd5d4d9ce36020",
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets"]
},
{
"name": "python-gardenlinux-lib",
"url": "https://github.com/gardenlinux/python-gardenlinux-lib",
"docs_path": "docs",
"target_path": "projects/python-gardenlinux-lib",
"ref": "docs-ng",
"commit": "73a16adcc674e43ad9b811c399fa5af1b698d62f",
"commit": "cf301b55dd89f5989ef626f3605b59c69b48f3cb",
"structure": "sphinx",
"media_directories": [
".media",
"assets",
"_static"
]
"target_map": {
"cli.md": "reference/python-gardenlinux-lib-cli.md",
"api.md": "reference/python-gardenlinux-lib-api.md"
},
"media_directories": [".media", "assets"]
},
{
"name": "package-linux",
Expand All @@ -61,11 +53,7 @@
"target_path": "projects/package-linux",
"ref": "docs-ng",
"commit": "9570d0f81eae4e1e500dd3f36ea845a2dce14357",
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets"]
},
{
"name": "package-build",
Expand All @@ -74,11 +62,7 @@
"target_path": "projects/package-build",
"ref": "docs-ng",
"commit": "b4bce8b1dbb48cfedefdd866f3bc28d1c395c060",
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets"]
},
{
"name": "repo",
Expand All @@ -87,11 +71,7 @@
"target_path": "projects/repo",
"ref": "docs-ng",
"commit": "4953feba27c5efd31421a883dec7c5bd61ac40f5",
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets"]
},
{
"name": "glrd",
Expand All @@ -100,11 +80,7 @@
"target_path": "projects/glrd",
"ref": "docs-ng",
"commit": "b5262e0bf409065ee1b9d62f4d0270695d9081a2",
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets"]
}
]
}
18 changes: 11 additions & 7 deletions repos-config.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,55 +20,59 @@
"contributing": "contributing"
},
"special_files": {},
"media_directories": [".media", "assets", "_static"]
"media_directories": [".media", "assets"]
},
{
"name": "builder",
"url": "file://../builder",
"docs_path": "docs",
"target_path": "projects/builder",
"structure": "flat",
"media_directories": [".media", "assets", "_static"]
"media_directories": [".media", "assets"]
},
{
"name": "python-gardenlinux-lib",
"url": "file://../python-gardenlinux-lib",
"docs_path": "docs",
"target_path": "projects/python-gardenlinux-lib",
"structure": "sphinx",
"media_directories": [".media", "assets", "_static"]
"target_map": {
"cli.md": "reference/python-gardenlinux-lib-cli.md",
"api.md": "reference/python-gardenlinux-lib-api.md"
},
"media_directories": [".media", "assets"]
},
{
"name": "package-linux",
"url": "file://../package-linux",
"docs_path": "docs",
"target_path": "projects/package-linux",
"structure": "flat",
"media_directories": [".media", "assets", "_static"]
"media_directories": [".media", "assets"]
},
{
"name": "package-build",
"url": "file://../package-build",
"docs_path": "docs",
"target_path": "projects/package-build",
"structure": "flat",
"media_directories": [".media", "assets", "_static"]
"media_directories": [".media", "assets"]
},
{
"name": "repo",
"url": "file://../repo",
"docs_path": "docs",
"target_path": "projects/repo",
"structure": "flat",
"media_directories": [".media", "assets", "_static"]
"media_directories": [".media", "assets"]
},
{
"name": "glrd",
"url": "file://../glrd",
"docs_path": "docs",
"target_path": "projects/glrd",
"structure": "flat",
"media_directories": [".media", "assets", "_static"]
"media_directories": [".media", "assets"]
}
]
}
5 changes: 5 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,8 @@ pytest
pyyaml
# glrd @ git+https://github.com/gardenlinux/glrd.git@v4.2.0
# gardenlinux @ git+https://github.com/gardenlinux/python-gardenlinux-lib.git@0.10.20
sphinx
sphinx-markdown-builder
sphinx-rtd-theme
sphinx-click
sphinxcontrib-autoprogram
3 changes: 3 additions & 0 deletions src/aggregation/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
)
from .releases import generate_release_docs
from .flavor_matrix import generate_flavor_matrix_docs
from .sphinx_builder import build_sphinx_markdown

__all__ = [
# Models
Expand All @@ -41,4 +42,6 @@
"generate_release_docs",
# Flavor Matrix
"generate_flavor_matrix_docs",
# Sphinx builder
"build_sphinx_markdown",
]
33 changes: 27 additions & 6 deletions src/aggregation/fetcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from typing import Tuple, Optional

from .models import RepoConfig, AggregateResult
from .sphinx_builder import build_sphinx_markdown


def _convert_to_git_pattern(pattern: str) -> str:
Expand Down Expand Up @@ -119,11 +120,21 @@ def _fetch_remote(
resolved_commit = result.stdout.strip()
print(f" Resolved commit: {resolved_commit}")

# Copy docs to output directory
# Copy docs to output directory (or build Sphinx Markdown first)
docs_source = temp_dir / repo.docs_path
if docs_source.exists():
print(f" Copying docs to {output_dir}")
self._copy_docs(docs_source, output_dir)
if repo.structure == "sphinx":
print(f" Building Sphinx Markdown from {repo.docs_path}/")
sphinx_ok = build_sphinx_markdown(
temp_dir, repo.docs_path, output_dir,
target_map=repo.target_map or None,
)
if not sphinx_ok:
print(f" Warning: Sphinx build failed; falling back to raw docs copy")
self._copy_docs(docs_source, output_dir)
else:
print(f" Copying docs to {output_dir}")
self._copy_docs(docs_source, output_dir)
else:
print(f" Warning: docs_path '{repo.docs_path}' not found in repository")

Expand Down Expand Up @@ -168,11 +179,21 @@ def _fetch_local(
print(f" Error: Local repository not found: {repo_abs_path}", file=sys.stderr)
return False

# Copy docs directory
# Copy docs directory (or build Sphinx Markdown first)
docs_source = repo_abs_path / repo.docs_path
if docs_source.exists():
print(f" Copying docs from {repo.docs_path}/")
self._copy_docs(docs_source, output_dir)
if repo.structure == "sphinx":
print(f" Building Sphinx Markdown from {repo.docs_path}/")
sphinx_ok = build_sphinx_markdown(
repo_abs_path, repo.docs_path, output_dir,
target_map=repo.target_map or None,
)
if not sphinx_ok:
print(f" Warning: Sphinx build failed; falling back to raw docs copy")
self._copy_docs(docs_source, output_dir)
else:
print(f" Copying docs from {repo.docs_path}/")
self._copy_docs(docs_source, output_dir)
else:
print(f" Warning: docs_path '{repo.docs_path}' not found in local repository")

Expand Down
2 changes: 2 additions & 0 deletions src/aggregation/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class RepoConfig:
structure: Union[str, Dict[str, str]] = "flat"
special_files: Dict[str, str] = field(default_factory=dict)
media_directories: List[str] = field(default_factory=list)
target_map: Dict[str, str] = field(default_factory=dict)

@property
def is_local(self) -> bool:
Expand Down Expand Up @@ -56,6 +57,7 @@ def from_dict(cls, data: Dict) -> "RepoConfig":
structure=data.get("structure", "flat"),
special_files=data.get("special_files", {}),
media_directories=data.get("media_directories", []),
target_map=data.get("target_map", {}),
)


Expand Down
Loading
Loading