mcpField
F
file-converter

file-converter

github.com/89jobrien文档处理496 次安装9 周前更新
代码仓库

关于 file-converter

用于转换文档、数据和图像格式的技能,会针对每项请求生成 Python 代码。它依据格式选择相应库,并参考专门指南处理转换边界情况。

主要功能

  1. 01转换文档格式
  2. 02转换 JSON、CSV 等数据格式
  3. 03转换栅格与矢量图像
  4. 04为转换选择 Python 库
  5. 05查阅资料处理边界情况

适用场景

  1. 01将 Markdown 文档转换为 HTML 或 PDF
  2. 02转换 JSON、CSV、YAML 或 XML 文件
  3. 03更改图像格式或将 SVG 栅格化

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/file-converter确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
data-conversions.md
document-conversions.md
image-conversions.md

详细介绍

文件转换器

概述

在三类格式之间转换文件:文档、数据文件和图像。针对每个转换请求动态生成 Python 代码,选择合适的库并处理边缘情况。

转换类别

文档
FromTo推荐库
MarkdownHTMLmarkdown 或 mistune
HTMLMarkdownmarkdownify 或 html2text
HTMLPDFweasyprint 或 pdfkit(需要 wkhtmltopdf)
PDF文本pypdf 或 pdfplumber
DOCXMarkdownmammoth
DOCXPDFdocx2pdf(Windows/macOS)或 LibreOffice CLI
MarkdownPDF先转换为 HTML,再转换为 PDF
数据文件
FromTo推荐库
JSONYAMLpyyaml
YAMLJSONpyyaml
JSONCSVpandas 或标准库 csv + json
CSVJSONpandas 或标准库 csv + json
JSONTOMLtomli/tomllib(读取)+ tomli-w(写入)
XMLJSONxmltodict
JSONXMLdicttoxml 或 xmltodict.unparse
图像
FromTo推荐库
PNG/JPG/WebP/GIF任意栅格格式Pillow (PIL)
SVGPNG/JPGcairosvg 或 svglib + reportlab
PNGSVG使用 potrace(CLI)进行描摹,保真度有限

工作流

  1. 确定源格式(根据文件扩展名或用户说明)
  2. 确定目标格式
  3. 查看 references/ 中针对格式的指南
  4. 使用推荐的库生成转换代码
  5. 处理边缘情况(编码、透明度、嵌套结构)
  6. 执行转换并报告结果

快速示例

数据:JSON 转 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)
数据:CSV 转 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)
文档:Markdown 转 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)
图像:PNG 转 WebP
from PIL import Image

img = Image.open("input.png")
img.save("output.webp", "WEBP", quality=85)
图像:SVG 转 PNG
import cairosvg

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

资源

复杂转换的详细指南见 references/:

  • references/document-conversions.md - PDF 处理、编码问题、样式保留
  • references/data-conversions.md - 模式处理、类型强制转换、嵌套结构
  • references/image-conversions.md - 质量设置、透明度、色彩配置文件

处理边缘情况,或用户对质量/保真度有特定要求时,请参阅这些参考资料。

评论

支持 Markdown