docs: per-tool reference pages for all 157 tools (+ fix docs build) (#261)

* fix(docs): keep gray-matter on js-yaml 3 so the docs site builds

The js-yaml >=4.2.0 override from #257 forced js-yaml 4 onto gray-matter (used by vitepress and vitepress-plugin-llms), which calls the removed yaml.safeLoad and broke `vitepress build`. Scope a gray-matter>js-yaml ^3.14.1 override so gray-matter keeps the v3 API (build-time, trusted frontmatter only) while app code stays on js-yaml 4.2.0+.

* docs: add per-tool reference pages for all 157 tools, with a modality sidebar

Generate /tools/<id> pages for the 104 tools that lacked one (video 29, audio 17, document 36, data 10, and 12 newer image tools), matching the existing page format (API endpoint, parameters from the OpenAPI spec, curl example, response, notes). Async/AI tools document the 202+SSE flow and feature-bundle requirement.

Sidebar: add Video / Audio / PDF & Documents / Data groups with per-tool links, fold the 12 new image tools into the existing image categories, and replace the placeholder rest.md-anchor group. Docs site builds cleanly (157 pages, no dead links).
This commit is contained in:
SnapOtter
2026-06-17 11:11:37 +08:00
committed by GitHub
parent c3d7411c67
commit ecc0a45f0e
107 changed files with 5122 additions and 7 deletions
+121 -6
View File
@@ -149,6 +149,9 @@ export default defineConfig({
{ text: "Sharpening", link: "/tools/sharpening" },
{ text: "Replace & Invert Color", link: "/tools/replace-color" },
{ text: "Color Blindness Simulation", link: "/tools/color-blindness" },
{ text: "Duotone", link: "/tools/duotone" },
{ text: "Pixelate", link: "/tools/pixelate" },
{ text: "Vignette", link: "/tools/vignette" },
],
},
{
@@ -172,6 +175,9 @@ export default defineConfig({
{ text: "HTML to Image", link: "/tools/html-to-image" },
{ text: "Barcode Reader", link: "/tools/barcode-read" },
{ text: "Image to Base64", link: "/tools/image-to-base64" },
{ text: "Histogram", link: "/tools/histogram" },
{ text: "LQIP Placeholder", link: "/tools/lqip-placeholder" },
{ text: "Barcode Generator", link: "/tools/barcode-generate" },
],
},
{
@@ -182,6 +188,9 @@ export default defineConfig({
{ text: "Image Splitting", link: "/tools/split" },
{ text: "Border & Frame", link: "/tools/border" },
{ text: "Beautify Screenshot", link: "/tools/beautify" },
{ text: "Circle Crop", link: "/tools/circle-crop" },
{ text: "Image Pad", link: "/tools/image-pad" },
{ text: "Sprite Sheet", link: "/tools/sprite-sheet" },
],
},
{
@@ -190,7 +199,7 @@ export default defineConfig({
{ text: "SVG to Raster", link: "/tools/svg-to-raster" },
{ text: "Image to SVG", link: "/tools/vectorize" },
{ text: "GIF Tools", link: "/tools/gif-tools" },
{ text: "PDF to Image", link: "/tools/pdf-to-image" },
{ text: "GIF/WebP Converter", link: "/tools/gif-webp" },
],
},
{
@@ -212,15 +221,121 @@ export default defineConfig({
{ text: "Content-Aware Resize", link: "/tools/content-aware-resize" },
{ text: "AI Canvas Expand", link: "/tools/ai-canvas-expand" },
{ text: "PNG Transparency Fixer", link: "/tools/transparency-fixer" },
{ text: "Background Replace", link: "/tools/background-replace" },
{ text: "Blur Background", link: "/tools/blur-background" },
],
},
{
text: "Video, Audio, Document & Data",
text: "Video",
items: [
{ text: "Video tools", link: "/api/rest#video-tools" },
{ text: "Audio tools", link: "/api/rest#audio-tools" },
{ text: "Document tools", link: "/api/rest#document-tools" },
{ text: "Data tools", link: "/api/rest#data-tools" },
{ text: "Convert Video", link: "/tools/convert-video" },
{ text: "Compress Video", link: "/tools/compress-video" },
{ text: "Trim Video", link: "/tools/trim-video" },
{ text: "Mute Video", link: "/tools/mute-video" },
{ text: "Video to GIF", link: "/tools/video-to-gif" },
{ text: "Resize Video", link: "/tools/resize-video" },
{ text: "Crop Video", link: "/tools/crop-video" },
{ text: "Rotate Video", link: "/tools/rotate-video" },
{ text: "Change FPS", link: "/tools/change-fps" },
{ text: "Video Color", link: "/tools/video-color" },
{ text: "Video Speed", link: "/tools/video-speed" },
{ text: "Reverse Video", link: "/tools/reverse-video" },
{ text: "Normalize Audio", link: "/tools/video-loudnorm" },
{ text: "Aspect Pad", link: "/tools/aspect-pad" },
{ text: "Blur Pad", link: "/tools/blur-pad" },
{ text: "Watermark Video", link: "/tools/watermark-video" },
{ text: "Stabilize Video", link: "/tools/stabilize-video" },
{ text: "GIF to Video", link: "/tools/gif-to-video" },
{ text: "Video to WebP", link: "/tools/video-to-webp" },
{ text: "Video to Frames", link: "/tools/video-to-frames" },
{ text: "Merge Videos", link: "/tools/merge-videos" },
{ text: "Replace Audio", link: "/tools/replace-audio" },
{ text: "Burn Subtitles", link: "/tools/burn-subtitles" },
{ text: "Embed Subtitles", link: "/tools/embed-subtitles" },
{ text: "Extract Subtitles", link: "/tools/extract-subtitles" },
{ text: "Images to Video", link: "/tools/images-to-video" },
{ text: "Clean Video Metadata", link: "/tools/video-metadata" },
{ text: "Auto Subtitles", link: "/tools/auto-subtitles" },
{ text: "Extract Audio", link: "/tools/extract-audio" },
],
},
{
text: "Audio",
items: [
{ text: "Convert Audio", link: "/tools/convert-audio" },
{ text: "Trim Audio", link: "/tools/trim-audio" },
{ text: "Volume Adjust", link: "/tools/volume-adjust" },
{ text: "Normalize Audio", link: "/tools/normalize-audio" },
{ text: "Fade Audio", link: "/tools/fade-audio" },
{ text: "Reverse Audio", link: "/tools/reverse-audio" },
{ text: "Audio Speed", link: "/tools/audio-speed" },
{ text: "Pitch Shift", link: "/tools/pitch-shift" },
{ text: "Audio Channels", link: "/tools/audio-channels" },
{ text: "Silence Removal", link: "/tools/silence-removal" },
{ text: "Noise Reduction", link: "/tools/noise-reduction" },
{ text: "Merge Audio", link: "/tools/merge-audio" },
{ text: "Split Audio", link: "/tools/split-audio" },
{ text: "Ringtone Maker", link: "/tools/ringtone-maker" },
{ text: "Waveform Image", link: "/tools/waveform-image" },
{ text: "Audio Metadata", link: "/tools/audio-metadata" },
{ text: "Transcribe Audio", link: "/tools/transcribe-audio" },
],
},
{
text: "PDF & Documents",
items: [
{ text: "PDF to Image", link: "/tools/pdf-to-image" },
{ text: "Merge PDFs", link: "/tools/merge-pdf" },
{ text: "Split PDF", link: "/tools/split-pdf" },
{ text: "Compress PDF", link: "/tools/compress-pdf" },
{ text: "Rotate PDF", link: "/tools/rotate-pdf" },
{ text: "Convert Document", link: "/tools/convert-document" },
{ text: "Convert Presentation", link: "/tools/convert-presentation" },
{ text: "Convert Spreadsheet", link: "/tools/convert-spreadsheet" },
{ text: "Excel to PDF", link: "/tools/excel-to-pdf" },
{ text: "Word to PDF", link: "/tools/word-to-pdf" },
{ text: "Extract Pages", link: "/tools/extract-pages" },
{ text: "Remove Pages", link: "/tools/remove-pages" },
{ text: "Organize PDF", link: "/tools/organize-pdf" },
{ text: "Protect PDF", link: "/tools/protect-pdf" },
{ text: "Unlock PDF", link: "/tools/unlock-pdf" },
{ text: "Repair PDF", link: "/tools/repair-pdf" },
{ text: "Web-Optimize PDF", link: "/tools/linearize-pdf" },
{ text: "Grayscale PDF", link: "/tools/grayscale-pdf" },
{ text: "PDF/A Convert", link: "/tools/pdfa-convert" },
{ text: "Crop PDF", link: "/tools/crop-pdf" },
{ text: "N-up PDF", link: "/tools/nup-pdf" },
{ text: "Booklet PDF", link: "/tools/booklet-pdf" },
{ text: "Watermark PDF", link: "/tools/watermark-pdf" },
{ text: "PDF Page Numbers", link: "/tools/pdf-page-numbers" },
{ text: "Flatten PDF", link: "/tools/flatten-pdf" },
{ text: "Redact PDF", link: "/tools/redact-pdf" },
{ text: "PDF to Text", link: "/tools/pdf-to-text" },
{ text: "PDF to Word", link: "/tools/pdf-to-word" },
{ text: "PDF Metadata", link: "/tools/pdf-metadata" },
{ text: "PowerPoint to PDF", link: "/tools/powerpoint-to-pdf" },
{ text: "HTML to PDF", link: "/tools/html-to-pdf" },
{ text: "Markdown to Word", link: "/tools/markdown-to-docx" },
{ text: "Markdown to HTML", link: "/tools/markdown-to-html" },
{ text: "Markdown to PDF", link: "/tools/markdown-to-pdf" },
{ text: "Convert EPUB", link: "/tools/epub-convert" },
{ text: "Convert to EPUB", link: "/tools/to-epub" },
{ text: "PDF OCR", link: "/tools/ocr-pdf" },
],
},
{
text: "Data",
items: [
{ text: "Chart Maker", link: "/tools/chart-maker" },
{ text: "CSV to Excel", link: "/tools/csv-excel" },
{ text: "CSV to JSON", link: "/tools/csv-json" },
{ text: "JSON to XML", link: "/tools/json-xml" },
{ text: "Split CSV", link: "/tools/split-csv" },
{ text: "Merge CSVs", link: "/tools/merge-csvs" },
{ text: "YAML / JSON", link: "/tools/yaml-json" },
{ text: "XML to CSV", link: "/tools/xml-to-csv" },
{ text: "Create ZIP", link: "/tools/create-zip" },
{ text: "Extract ZIP", link: "/tools/extract-zip" },
],
},
],