file-converter について
文書、データ、画像の形式変換を行うスキルです。依頼ごとにPythonコードを生成し、形式に応じたライブラリと資料を使って変換時の例外にも対応します。
主な機能
- 01文書形式の変換
- 02JSONやCSVなどのデータ変換
- 03ラスター画像とベクター画像の変換
- 04変換に応じたPythonライブラリの選択
- 05資料を参照した例外への対応
活用シーン
- 01Markdown文書をHTMLやPDFに変換
- 02JSON、CSV、YAML、XMLファイルを変換
- 03画像形式の変更やSVGのラスタライズ
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 89jobrien/ steve --skill file-converterインストール後、Claude Code で/file-converterを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/data-conversions.mddocument-conversions.mdimage-conversions.md詳細
ファイル変換
概要
ドキュメント、データファイル、画像の3つのカテゴリで、ファイルを異なる形式に変換します。各変換リクエストに応じてPythonコードを動的に生成し、適切なライブラリを選択してエッジケースに対応します。
変換カテゴリ
ドキュメント
| 変換元 | 変換先 | 推奨ライブラリ |
|---|---|---|
| Markdown | HTML | markdown or mistune |
| HTML | Markdown | markdownify or html2text |
| HTML | weasyprint or pdfkit(wkhtmltopdf が必要) | |
| Text | pypdf or pdfplumber | |
| DOCX | Markdown | mammoth |
| DOCX | docx2pdf(Windows/macOS)or LibreOffice CLI | |
| Markdown | まずHTMLに変換し、その後PDFに変換 |
データファイル
| 変換元 | 変換先 | 推奨ライブラリ |
|---|---|---|
| JSON | YAML | pyyaml |
| YAML | JSON | pyyaml |
| JSON | CSV | pandas or 標準ライブラリのcsv + json |
| CSV | JSON | pandas or 標準ライブラリのcsv + json |
| JSON | TOML | tomli/tomllib(読み込み)+ tomli-w(書き込み) |
| XML | JSON | xmltodict |
| JSON | XML | dicttoxml or xmltodict.unparse |
画像
| 変換元 | 変換先 | 推奨ライブラリ |
|---|---|---|
| PNG/JPG/WebP/GIF | 任意のラスター形式 | Pillow (PIL) |
| SVG | PNG/JPG | cairosvg or svglib + reportlab |
| PNG | SVG | トレースにはpotrace (CLI)を使用。忠実度には制限があります |
ワークフロー
- 変換元の形式を特定します(ファイル拡張子またはユーザーの説明から)
- 変換先の形式を特定します
- 形式固有のガイダンスを
references/で確認します - 推奨ライブラリを使って変換コードを生成します
- エッジケース(エンコーディング、透明度、ネストされた構造)に対応します
- 変換を実行し、結果を報告します
クイックパターン
データ: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 対応