diff --git a/src/rocky_man/main.py b/src/rocky_man/main.py index a10b7c7..0a230a2 100644 --- a/src/rocky_man/main.py +++ b/src/rocky_man/main.py @@ -254,6 +254,13 @@ def main(): help="Use vault directory instead of pub (vault/rocky instead of pub/rocky)", ) + parser.add_argument( + "--existing-versions", + nargs="*", + metavar="VERSION", + help="List of existing versions to include in root index (e.g., 8.10 9.7)", + ) + parser.add_argument( "--template-dir", type=Path, @@ -333,13 +340,24 @@ def main(): allow_all_sections=args.allow_all_sections, ) - # Scan for existing versions in output directory - existing_versions = [ + # Get existing versions from scan and argument + scanned_versions = [ d.name for d in config.output_dir.iterdir() if d.is_dir() and re.match(r"\d+\.\d+", d.name) ] - all_versions = sorted(set(existing_versions + config.versions)) + arg_versions = args.existing_versions or [] + + # Sort versions numerically by (major, minor) + def version_key(v): + try: + major, minor = v.split(".") + return (int(major), int(minor)) + except (ValueError, AttributeError): + return (0, 0) + + existing_versions = sorted(set(scanned_versions + arg_versions), key=version_key) + all_versions = sorted(set(existing_versions + config.versions), key=version_key) logger.info("Rocky Man - Rocky Linux Man Page Generator") logger.info(f"Versions to process: {', '.join(config.versions)}") diff --git a/src/rocky_man/web/generator.py b/src/rocky_man/web/generator.py index 4b08826..03d035f 100644 --- a/src/rocky_man/web/generator.py +++ b/src/rocky_man/web/generator.py @@ -292,6 +292,8 @@ class WebGenerator: minors_list = sorted(major_to_minors[major], key=int, reverse=True) if minor_idx < len(minors_list): row.append((major, minors_list[minor_idx])) + else: + row.append(None) # Empty cell placeholder version_rows.append(row) html = template.render( diff --git a/templates/root.html b/templates/root.html index 6b2f86e..141c5bc 100644 --- a/templates/root.html +++ b/templates/root.html @@ -164,7 +164,9 @@