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
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
42 changes: 11 additions & 31 deletions repos-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,7 @@
"reference": "reference",
"contributing": "contributing"
},
"media_directories": [
".media",
"assets",
"_static"
]
"media_directories": [".media", "assets"]
},
{
"name": "builder",
Expand All @@ -46,13 +42,13 @@
"docs_path": "docs",
"target_path": "projects/python-gardenlinux-lib",
"ref": "docs-ng",
"commit": "73a16adcc674e43ad9b811c399fa5af1b698d62f",
"commit": "86c57e91171a2b64680be06606f5cfe28abcb5ca",
"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 +57,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 +66,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 +75,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 +84,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 @@ -6,6 +6,7 @@
from .flavor_matrix import generate_flavor_matrix_docs
from .models import AggregateResult, RepoConfig
from .releases import generate_release_docs
from .sphinx_builder import build_sphinx_markdown
from .structure import (copy_targeted_docs, process_all_markdown,
transform_directory_structure)
from .transformer import (ensure_frontmatter, parse_frontmatter,
Expand Down Expand Up @@ -33,4 +34,6 @@
"generate_release_docs",
# Flavor Matrix
"generate_flavor_matrix_docs",
# Sphinx builder
"build_sphinx_markdown",
]
35 changes: 28 additions & 7 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

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


def _convert_to_git_pattern(pattern: str) -> str:
Expand Down Expand Up @@ -120,12 +121,22 @@ 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 @@ -174,12 +185,22 @@ def _fetch_local(
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
4 changes: 3 additions & 1 deletion src/aggregation/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ 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:
"""Check if this is a local file:// repository."""
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