You've already forked Openterface_assets
mirror of
https://github.com/TechxArtisanStudio/Openterface_assets.git
synced 2025-12-17 14:02:32 -08:00
generate_image_links.py
This commit is contained in:
132
generate_image_links.py
Normal file
132
generate_image_links.py
Normal file
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Script to generate markdown file with WebP image links from source images.
|
||||
This script scans the src/images directory and creates markdown links for all images
|
||||
that would be converted to WebP format during the build process.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def find_image_files(directory):
|
||||
"""Find all image files that would be converted to WebP."""
|
||||
image_extensions = {'.png', '.jpg', '.jpeg'}
|
||||
svg_extensions = {'.svg'}
|
||||
image_files = []
|
||||
svg_files = []
|
||||
|
||||
for root, dirs, files in os.walk(directory):
|
||||
for file in files:
|
||||
file_path = Path(root) / file
|
||||
if file_path.suffix.lower() in image_extensions:
|
||||
# Get relative path from src/images
|
||||
rel_path = file_path.relative_to(directory)
|
||||
image_files.append(rel_path)
|
||||
elif file_path.suffix.lower() in svg_extensions:
|
||||
# Get relative path from src/images
|
||||
rel_path = file_path.relative_to(directory)
|
||||
svg_files.append(rel_path)
|
||||
|
||||
return sorted(image_files), sorted(svg_files)
|
||||
|
||||
def generate_markdown_links(image_files, base_url="https://assets.openterface.com"):
|
||||
"""Generate markdown links for WebP images."""
|
||||
markdown_lines = []
|
||||
|
||||
for image_path in image_files:
|
||||
# Convert to WebP extension
|
||||
webp_path = image_path.with_suffix('.webp')
|
||||
|
||||
# Create the full URL
|
||||
full_url = f"{base_url}/images/{webp_path}"
|
||||
|
||||
# Create a descriptive name for the alt text
|
||||
# Remove path separators and file extension, replace with hyphens
|
||||
alt_name = str(webp_path).replace('/', '-').replace('\\', '-').replace('.webp', '')
|
||||
|
||||
# Generate markdown link
|
||||
markdown_link = f""
|
||||
markdown_lines.append(markdown_link)
|
||||
|
||||
return markdown_lines
|
||||
|
||||
def generate_svg_markdown_links(svg_files, base_url="https://assets.openterface.com"):
|
||||
"""Generate markdown links for SVG images."""
|
||||
markdown_lines = []
|
||||
|
||||
for svg_path in svg_files:
|
||||
# Create the full URL (keep .svg extension)
|
||||
full_url = f"{base_url}/images/{svg_path}"
|
||||
|
||||
# Create a descriptive name for the alt text
|
||||
# Remove path separators and file extension, replace with hyphens
|
||||
alt_name = str(svg_path).replace('/', '-').replace('\\', '-').replace('.svg', '')
|
||||
|
||||
# Generate markdown link
|
||||
markdown_link = f""
|
||||
markdown_lines.append(markdown_link)
|
||||
|
||||
return markdown_lines
|
||||
|
||||
def main():
|
||||
# Get the script directory
|
||||
script_dir = Path(__file__).parent
|
||||
src_images_dir = script_dir / "src" / "images"
|
||||
|
||||
# Check if src/images directory exists
|
||||
if not src_images_dir.exists():
|
||||
print(f"Error: {src_images_dir} directory not found!")
|
||||
print("Please run this script from the project root directory.")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"Scanning for images in: {src_images_dir}")
|
||||
|
||||
# Find all image files
|
||||
image_files, svg_files = find_image_files(src_images_dir)
|
||||
|
||||
if not image_files and not svg_files:
|
||||
print("No image files found!")
|
||||
return
|
||||
|
||||
print(f"Found {len(image_files)} image files and {len(svg_files)} SVG files")
|
||||
|
||||
# Generate markdown links
|
||||
webp_markdown_lines = generate_markdown_links(image_files)
|
||||
svg_markdown_lines = generate_svg_markdown_links(svg_files)
|
||||
|
||||
# Write to output file
|
||||
output_file = script_dir / "image_links.md"
|
||||
|
||||
with open(output_file, 'w', encoding='utf-8') as f:
|
||||
f.write("# Image Links\n\n")
|
||||
f.write("Generated from source images in src/images/\n\n")
|
||||
|
||||
if webp_markdown_lines:
|
||||
f.write("## WebP Image Links\n\n")
|
||||
f.write("Copy and paste these links into your markdown files:\n\n")
|
||||
for line in webp_markdown_lines:
|
||||
f.write(line + "\n\n")
|
||||
|
||||
if svg_markdown_lines:
|
||||
f.write("## SVG Image Links\n\n")
|
||||
f.write("Copy and paste these links into your markdown files:\n\n")
|
||||
for line in svg_markdown_lines:
|
||||
f.write(line + "\n\n")
|
||||
|
||||
print(f"Generated {len(webp_markdown_lines)} WebP image links and {len(svg_markdown_lines)} SVG links")
|
||||
print(f"Output saved to: {output_file}")
|
||||
|
||||
# Also print a few examples
|
||||
if webp_markdown_lines:
|
||||
print("\nFirst 3 WebP links:")
|
||||
for i, line in enumerate(webp_markdown_lines[:3]):
|
||||
print(f"{i+1}. {line}")
|
||||
|
||||
if svg_markdown_lines:
|
||||
print("\nFirst 3 SVG links:")
|
||||
for i, line in enumerate(svg_markdown_lines[:3]):
|
||||
print(f"{i+1}. {line}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
390
image_links.md
Normal file
390
image_links.md
Normal file
@@ -0,0 +1,390 @@
|
||||
# Image Links
|
||||
|
||||
Generated from source images in src/images/
|
||||
|
||||
## WebP Image Links
|
||||
|
||||
Copy and paste these links into your markdown files:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## SVG Image Links
|
||||
|
||||
Copy and paste these links into your markdown files:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Reference in New Issue
Block a user