mcpField
F
file-converter

file-converter

github.com/89jobrienドキュメント496 回インストール9 週間前に更新
リポジトリ

file-converter について

文書、データ、画像の形式変換を行うスキルです。依頼ごとにPythonコードを生成し、形式に応じたライブラリと資料を使って変換時の例外にも対応します。

主な機能

  1. 01文書形式の変換
  2. 02JSONやCSVなどのデータ変換
  3. 03ラスター画像とベクター画像の変換
  4. 04変換に応じたPythonライブラリの選択
  5. 05資料を参照した例外への対応

活用シーン

  1. 01Markdown文書をHTMLやPDFに変換
  2. 02JSON、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

詳細

ファイル変換

概要

ドキュメント、データファイル、画像の3つのカテゴリで、ファイルを異なる形式に変換します。各変換リクエストに応じてPythonコードを動的に生成し、適切なライブラリを選択してエッジケースに対応します。

変換カテゴリ

ドキュメント
変換元変換先推奨ライブラリ
MarkdownHTMLmarkdown or mistune
HTMLMarkdownmarkdownify or html2text
HTMLPDFweasyprint or pdfkit(wkhtmltopdf が必要)
PDFTextpypdf or pdfplumber
DOCXMarkdownmammoth
DOCXPDFdocx2pdf(Windows/macOS)or LibreOffice CLI
MarkdownPDFまずHTMLに変換し、その後PDFに変換
データファイル
変換元変換先推奨ライブラリ
JSONYAMLpyyaml
YAMLJSONpyyaml
JSONCSVpandas or 標準ライブラリのcsv + json
CSVJSONpandas or 標準ライブラリのcsv + json
JSONTOMLtomli/tomllib(読み込み)+ tomli-w(書き込み)
XMLJSONxmltodict
JSONXMLdicttoxml or xmltodict.unparse
画像
変換元変換先推奨ライブラリ
PNG/JPG/WebP/GIF任意のラスター形式Pillow (PIL)
SVGPNG/JPGcairosvg or 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 - 品質設定、透明度、カラープロファイル

エッジケースに対応するときや、ユーザーが品質や忠実度について具体的な要件を示しているときは、これらのリファレンスを参照してください。

コメント