file-converter

安装量: 40
排名: #17923

安装

npx skills add https://github.com/89jobrien/steve --skill file-converter

Convert files between formats across three categories: documents, data files, and images. Generate Python code dynamically for each conversion request, selecting appropriate libraries and handling edge cases.

Conversion Categories

Documents

| Markdown | HTML | markdown or mistune

| HTML | Markdown | markdownify or html2text

| HTML | PDF | weasyprint or pdfkit (requires wkhtmltopdf)

| PDF | Text | pypdf or pdfplumber

| DOCX | Markdown | mammoth

| DOCX | PDF | docx2pdf (Windows/macOS) or LibreOffice CLI

| Markdown | PDF | Convert via HTML first, then to PDF

Data Files

| JSON | YAML | pyyaml

| YAML | JSON | pyyaml

| JSON | CSV | pandas or stdlib csv + json

| CSV | JSON | pandas or stdlib csv + json

| JSON | TOML | tomli/tomllib (read) + tomli-w (write)

| XML | JSON | xmltodict

| JSON | XML | dicttoxml or xmltodict.unparse

Images

| PNG/JPG/WebP/GIF | Any raster | Pillow (PIL)

| SVG | PNG/JPG | cairosvg or svglib + reportlab

| PNG | SVG | potrace (CLI) for tracing, limited fidelity

Workflow

  • Identify source format (from file extension or user statement)

  • Identify target format

  • Check references/ for format-specific guidance

  • Generate conversion code using recommended library

  • Handle edge cases (encoding, transparency, nested structures)

  • Execute conversion and report results

Quick Patterns

Data: JSON to YAML

import json
import yaml

with open("input.json") as f:
    data = json.load(f)

with open("output.yaml", "w") as f:
    yaml.dump(data, f, default_flow_style=False, allow_unicode=True)

Data: CSV to JSON

import csv
import json

with open("input.csv") as f:
    reader = csv.DictReader(f)
    data = list(reader)

with open("output.json", "w") as f:
    json.dump(data, f, indent=2)

Document: Markdown to HTML

import markdown

with open("input.md") as f:
    md_content = f.read()

html = markdown.markdown(md_content, extensions=["tables", "fenced_code"])

with open("output.html", "w") as f:
    f.write(html)

Image: PNG to WebP

from PIL import Image

img = Image.open("input.png")
img.save("output.webp", "WEBP", quality=85)

Image: SVG to PNG

import cairosvg

cairosvg.svg2png(url="input.svg", write_to="output.png", scale=2)

Resources

Detailed guidance for complex conversions is in references/:

  • references/document-conversions.md - PDF handling, encoding issues, styling preservation

  • references/data-conversions.md - Schema handling, type coercion, nested structures

  • references/image-conversions.md - Quality settings, transparency, color profiles

Consult these references when handling edge cases or when the user has specific quality/fidelity requirements.

返回排行榜