Convert local images referenced in Hugo front matter to modern formats (WebP) and update front matter using ci/convert_page_images.py.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: front-matter-image-converter
description: Convert local images referenced in Hugo front matter to modern formats (WebP) and update front matter using ci/convert_page_images.py.
---
# 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.
No comments yet. Be the first to comment!