Marketplace file-converter

This skill handles file format conversions across documents (PDF, DOCX,

install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/89jobrien/file-converter" ~/.claude/skills/aiskillstore-marketplace-file-converter && rm -rf "$T"
manifest: skills/89jobrien/file-converter/SKILL.md
source content

File Converter

Overview

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

FromToRecommended Library
MarkdownHTML
markdown
or
mistune
HTMLMarkdown
markdownify
or
html2text
HTMLPDF
weasyprint
or
pdfkit
(requires wkhtmltopdf)
PDFText
pypdf
or
pdfplumber
DOCXMarkdown
mammoth
DOCXPDF
docx2pdf
(Windows/macOS) or LibreOffice CLI
MarkdownPDFConvert via HTML first, then to PDF

Data Files

FromToRecommended Library
JSONYAML
pyyaml
YAMLJSON
pyyaml
JSONCSV
pandas
or stdlib
csv
+
json
CSVJSON
pandas
or stdlib
csv
+
json
JSONTOML
tomli
/
tomllib
(read) +
tomli-w
(write)
XMLJSON
xmltodict
JSONXML
dicttoxml
or
xmltodict.unparse

Images

FromToRecommended Library
PNG/JPG/WebP/GIFAny raster
Pillow
(PIL)
SVGPNG/JPG
cairosvg
or
svglib
+
reportlab
PNGSVG
potrace
(CLI) for tracing, limited fidelity

Workflow

  1. Identify source format (from file extension or user statement)
  2. Identify target format
  3. Check
    references/
    for format-specific guidance
  4. Generate conversion code using recommended library
  5. Handle edge cases (encoding, transparency, nested structures)
  6. 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.