Agent skill

front-matter-image-converter

Convert local images referenced in Hugo front matter to modern formats (WebP) and update front matter using ci/convert_page_images.py.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/front-matter-image-converter

SKILL.md

Front Matter Image Converter

When to use this skill

Use this skill when you need to:

  • Ensure images referenced in tool front matter (page bundle resources, hero images, etc.) use modern formats where possible.
  • Convert legacy formats (PNG/JPEG/GIF) to WebP and update front matter paths in index.md.
  • Normalize tool icons or other page resources so the site prefers modern image formats.

What this does

The script ci/convert_page_images.py scans index.md front matter, finds local image paths, converts eligible files to .webp, updates the YAML front matter to point at the new files, and deletes the originals after successful conversion.

Supported/behavior notes:

  • Converts .png, .jpg, .jpeg, .gif to .webp.
  • Skips .webp inputs.
  • Treats .svg as non-convertible (left as-is).
  • .avif is recognized but conversion depends on Pillow build support; if conversion fails, keep the original and report the error.
  • Only local file paths are processed (no URLs or data URIs).

How to run

Process all tools under content/ (default root):

bash
uv run ci/convert_page_images.py

Process a specific subtree:

bash
uv run ci/convert_page_images.py --root content/tools

Process a single page bundle index:

bash
uv run ci/convert_page_images.py --file content/tools/html/tool-slug/index.md

Adjust WebP quality (1-100, default 80):

bash
uv run ci/convert_page_images.py --quality 85

Post-run checks

  • Review git status to confirm which images were converted and removed.
  • Open the updated index.md front matter and ensure references now point to .webp files.
  • Verify any non-convertible images (like .svg) remain intact.

Troubleshooting

  • If a conversion fails for .avif, leave the original in place and consider keeping it (already modern) or replacing it with WebP manually.
  • If front matter YAML fails to parse, fix the YAML and rerun the script.

Didn't find tool you were looking for?

Be as detailed as possible for better results