mirror of
https://github.com/lordmathis/llamactl.git
synced 2025-11-05 16:44:22 +00:00
Update documentation and add README synchronization
This commit is contained in:
59
docs/readme_sync.py
Normal file
59
docs/readme_sync.py
Normal file
@@ -0,0 +1,59 @@
|
||||
"""
|
||||
MkDocs hook to sync content from README.md to docs/index.md
|
||||
"""
|
||||
import re
|
||||
import os
|
||||
|
||||
|
||||
def on_page_markdown(markdown, page, config, **kwargs):
|
||||
"""Process markdown content before rendering"""
|
||||
# Only process the index.md file
|
||||
if page.file.src_path != 'index.md':
|
||||
return markdown
|
||||
|
||||
# Get the path to README.md (relative to mkdocs.yml)
|
||||
readme_path = os.path.join(os.path.dirname(config['config_file_path']), 'README.md')
|
||||
|
||||
if not os.path.exists(readme_path):
|
||||
print(f"Warning: README.md not found at {readme_path}")
|
||||
return markdown
|
||||
|
||||
try:
|
||||
with open(readme_path, 'r', encoding='utf-8') as f:
|
||||
readme_content = f.read()
|
||||
except Exception as e:
|
||||
print(f"Error reading README.md: {e}")
|
||||
return markdown
|
||||
|
||||
# Extract headline (the text in bold after the title)
|
||||
headline_match = re.search(r'\*\*(.*?)\*\*', readme_content)
|
||||
headline = headline_match.group(1) if headline_match else 'Management server for llama.cpp and MLX instances'
|
||||
|
||||
# Extract features section - everything between ## Features and the next ## heading
|
||||
features_match = re.search(r'## Features\n(.*?)(?=\n## |\Z)', readme_content, re.DOTALL)
|
||||
if features_match:
|
||||
features_content = features_match.group(1).strip()
|
||||
# Just add line breaks at the end of each line for proper MkDocs rendering
|
||||
features_with_breaks = add_line_breaks(features_content)
|
||||
else:
|
||||
features_with_breaks = "Features content not found in README.md"
|
||||
|
||||
# Replace placeholders in the markdown
|
||||
markdown = markdown.replace('{{HEADLINE}}', headline)
|
||||
markdown = markdown.replace('{{FEATURES}}', features_with_breaks)
|
||||
|
||||
return markdown
|
||||
|
||||
|
||||
def add_line_breaks(content):
|
||||
"""Add two spaces at the end of each line for proper MkDocs line breaks"""
|
||||
lines = content.split('\n')
|
||||
processed_lines = []
|
||||
|
||||
for line in lines:
|
||||
if line.strip(): # Only add spaces to non-empty lines
|
||||
processed_lines.append(line.rstrip() + ' ')
|
||||
else:
|
||||
processed_lines.append(line)
|
||||
|
||||
return '\n'.join(processed_lines)
|
||||
Reference in New Issue
Block a user