mcpField
O
odt

odt

github.com/sungkhumドキュメント037 回インストール37 週間前に更新
リポジトリ

odt について

ODT Document Skillは、ODT文書の読み取り、作成、編集、検証を行う人向けのワークフローガイドです。作業に応じてライブラリまたは生XMLの方法を案内し、パッケージ構造、変更履歴、言語設定も扱います。

主な機能

  1. 01変換ツールでテキストを抽出
  2. 02odfdoで文書を作成・編集
  3. 03変更履歴と注釈を扱う
  4. 04XMLパッケージの直接編集に対応
  5. 05検証と形式変換の手順を提示

活用シーン

  1. 01ODTファイルの文章や表を要約
  2. 02変更履歴を保ったまま文章を編集
  3. 03文書スタイルの言語とフォントを設定
  4. 04パッケージ内容とスキーマの有効性を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sungkhum/agent-skills --skill odt

インストール後、Claude Code で/odtを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
assets/
Test-Format-ODT-Khmer.odt
Test-Format-ODT.odt
odf/schemas/odf-1.3/
OpenDocument-v1.3-dsig-schema.rng
OpenDocument-v1.3-manifest-schema.rng
OpenDocument-v1.3-metadata.owl
OpenDocument-v1.3-package-metadata.owl
odf/scripts/
annotation_smoke_test.py
example_tracked_changes.py
fetch_schemas.py
pack.py
set_language.py
unpack.py
validate_changes.py
validate_rng_all.py
validate_rng.py
validate.py
references/
odf-schemas.md
odf-xml.md
odfdo.md
odt-change-tracking.md
odt-document.md
odt-language.md
odt-structure.md
tools.md
scripts/
__init__.py
annotation_smoke_test.py
example_tracked_changes.py
fetch_odf_schemas.py
odt_document.py

詳細

ODT ドキュメントスキル

.odt ファイルは、XML ファイルとアセットを含む ZIP パッケージです。可能な場合は高水準のライブラリを使用し、複雑な書式、変更履歴、または正確な制御が必要な場合は、生の XML を使用してください。

参照ファイル

トピックファイル
パッケージ構造references/odt-structure.md
変更履歴references/odt-change-tracking.md
言語/ロケールreferences/odt-language.md
XML パターンreferences/odf-xml.md
odfdo ライブラリreferences/odfdo.md
ODTDocument APIreferences/odt-document.md
スキーマ検証references/odf-schemas.md
ツールの概要references/tools.md

プロンプトの例

  • 「この ODT からすべてのテキストを抽出し、見出しと表を要約してください。」
  • 「変更履歴を適用して、取り消し線を維持したまま、これらの語句を置き換えてください。」
  • 「すべての段落スタイルに、クメール語の言語/ロケールとフォントを設定してください。」
  • 「この ODT パッケージを検証し、不足しているファイルを報告してください。」
  • 「展開して content.xml を編集し、スタイルを壊さずに再パッケージしてください。」

ワークフローの判断表

タスク方法
テキストの読み取り/抽出pandoc または odfdo-markdown を使用
新しいドキュメントの作成references/odfdo.md を読み、odfdo ライブラリを使用
簡単な編集references/odfdo.md を読み、odfdo ライブラリを使用
変更履歴/注釈references/odt-document.md を読み、ODTDocument API を使用
複雑な XML 編集references/odf-xml.md を読み、XML を直接編集

主な操作

テキストの抽出
pandoc document.odt -o document.md      # Convert to Markdown
odfdo-markdown document.odt > out.md    # Alternative
展開/再パッケージのワークフロー
python scripts/unpack_odt.py <file.odt> <dir>   # Unpack
# ... edit XML files ...
python scripts/pack_odt.py <dir> <file.odt>     # Repack
ODTDocument ライブラリの使用

ODTDocument を使用するスクリプトでは、PYTHONPATH にスキルのルートを設定する必要があります。リポジトリのルートから実行する場合は、スキルのフォルダーを明示的に指定してください。

PYTHONPATH=/path/to/repo/skills/odt python your_script.py
# example from repo root
PYTHONPATH=skills/odt python your_script.py
odfdo でのドキュメント作成

最初に references/odfdo.md を読んでください。基本的な例:

from odfdo import Document, Paragraph
doc = Document('text')
doc.body.append(Paragraph('Hello'))
doc.save('output.odt')
生の XML の編集

最初に references/odf-xml.md を読んでください。主なファイル:

  • content.xml — ドキュメントの本文
  • styles.xml — ドキュメントのスタイル
  • META-INF/manifest.xml — パッケージマニフェスト(ファイル追加時に更新)

変更履歴のワークフロー

構造の詳細については、references/odt-change-tracking.md を読んでください。主な原則:

  • 変更をまとめる:デバッグしやすいよう、関連する変更を1回につき3~10件まとめます
  • 最小限のマーキング:実際に変更されるテキストのみをマークします

ワークフロー:

  1. Markdown に変換します:pandoc doc.odt -o doc.md
  2. 変更を特定し、バッチにまとめます
  3. ODTDocument.suggest_replacement() / suggest_insertion() / suggest_deletion() を使用します
  4. 検証します:python scripts/validate_changes.py content.xml
  5. 再パッケージし、LibreOffice で確認します

言語サポート(クメール語、タイ語、アラビア語など)

references/odt-language.md を参照してください。ヘルパースクリプト:

python scripts/set_language.py styles.xml --lang km --country KH --font "Khmer OS System"

ODT から PDF/画像への変換

soffice --headless --convert-to pdf document.odt    # ODT → PDF
pdftoppm -jpeg -r 150 document.pdf page             # PDF → images

依存関係

必須

  • odfdo:pip install odfdo(ODT の作成/編集)
  • defusedxml:pip install defusedxml(安全な XML 解析)

任意

  • pandoc:brew install pandoc(Markdown への変換)
  • LibreOffice:brew install --cask libreoffice(ODT → PDF)
  • jing:validate_rng.py 用 Relax NG バリデーター
  • Poppler:brew install poppler(PDF → 画像変換用の pdftoppm)

検証スクリプト

python scripts/validate_odt.py <dir> --original <file.odt>     # Package validation
python scripts/validate_changes.py <dir>/content.xml           # Change tracking
python scripts/validate_rng.py <dir>/content.xml               # RNG schema (needs jing)
python scripts/smoke_test.py <file.odt> <work_dir>             # Full roundtrip

コメント