48 lines
1.8 KiB
Python
48 lines
1.8 KiB
Python
import os
|
|
import argparse
|
|
|
|
# Define the directory containing Portainer Stack Markdown files
|
|
markdown_dir = "./docs/portainer-stacks"
|
|
|
|
# Define the relative path prefix used in mkdocs.yml
|
|
relative_path_prefix = "portainer-stacks/"
|
|
|
|
# Read the existing mkdocs.yml content
|
|
with open("mkdocs.yml", "r") as f:
|
|
mkdocs_content = f.read()
|
|
|
|
# Generate navigation entries
|
|
nav_entries = []
|
|
for filename in os.listdir(markdown_dir):
|
|
if filename.endswith(".md"):
|
|
title = filename[:-3] # Remove ".md" extension
|
|
relative_path = f"{relative_path_prefix}{filename}" # Generate relative path
|
|
nav_entries.append(f" - {title}: {relative_path}") # Add 4 spaces
|
|
|
|
# List of names to ignore
|
|
names_to_ignore = ["template"] # Add names you want to ignore here
|
|
|
|
# Filter out entries to ignore
|
|
filtered_nav_entries = [entry for entry in nav_entries if not any(name in entry for name in names_to_ignore)]
|
|
|
|
# Sort the navigation entries alphabetically (case-insensitive)
|
|
sorted_nav_entries = sorted(filtered_nav_entries, key=lambda entry: entry.lower())
|
|
|
|
# Combine all the sorted navigation entries into a single string
|
|
new_section_content = "\n".join(sorted_nav_entries)
|
|
|
|
# Parse command-line arguments
|
|
parser = argparse.ArgumentParser(description="Generate navigation entries for mkdocs.yml")
|
|
parser.add_argument("--replace", action="store_true", help="Replace mkdocs.yml with new content")
|
|
args = parser.parse_args()
|
|
|
|
# If --replace option is provided, replace the existing "Portainer Stacks" section
|
|
if args.replace:
|
|
updated_mkdocs_content = mkdocs_content.replace(" - Portainer Stacks:\n", f" - Portainer Stacks:\n{new_section_content}\n")
|
|
with open("mkdocs.yml", "w") as f:
|
|
f.write(updated_mkdocs_content)
|
|
else:
|
|
# Print the sorted navigation entries with 4 spaces
|
|
for entry in sorted_nav_entries:
|
|
print(entry)
|