Devotd Github
新着開発ツール

storytold/wordcraft — ODT フレームの読み取り可能な画像の選択

storytold/wordcraft は 2026-11-07 のコミットで文書内の画像を読み込んで保存する方式を改め、複数の画像形式を示すフレームが最初の読み取り可能な画像を表示し、保持するようにした。

リポジトリ情報storytold/wordcraft ↗

storytold/wordcraft は 2026-11-07 のコミットで文書内の画像を読み込んで保存する方式を改め、複数の画像形式を示すフレームが最初の読み取り可能な画像を表示し、保持するようにした。

GitHub の説明: An open-source, clean-room reimplementation of Microsoft Word in pure Rust

スター
★ 17.5K
フォーク
4.9K
言語
Rust
ライセンス
Apache-2.0
最新リリース
v0.16.0
原文を見る ↗GitHub で見る ↗

storytold/wordcraft は Microsoft Word を純粋な Rust で再実装したオープンソースプロジェクトである。2026-11-07 のコミット 595cddaaeff115e11ae7f7d524ecc71b3e53abe6 は文書内の画像を読み込んで保存する方式を見直した。画像を格納するフレームが複数の形式を併せて示す場合、読み取り可能な最初の画像を選び、後でファイルへ保存するときもその画像を保持するように変更された。

この修正は LibreOffice が保存した ODT(オープン文書形式に基づくワープロプロセッサ文書)ファイルで顕在化した問題を扱う。LibreOffice は同一の画像を .svm メタファイルと PNG で一緒に書き込むが、WordCraft はリストの先頭項目が何であれ取得していた。そのため読み取れない形式が先に来ると画像が見えず、モデルが生成した段落をファイルへ書き出すときにその画像が消失していた。今はフレームが示す優先順位に従って読み取り可能な最初の画像を選ぶ。また、読み取れない代替画像(replacement)が先にあっても、後ろにある読み取り可能な画像を表示して保存し、代替画像もオブジェクトが出現する前に捨てずに残す。

変更は ODT 本文パーサ(body.rs、body/drawing.rs)、ライタ(writer/drawing.rs)、テスト(floats.rs、objects.rs)、形式対応ドキュメント(docs/file-format-parity.md)を含む 7 ファイルにまたがる。155 行の追加、10 行の削除である。ただし、このコミットが扱うのはコミットメッセージが 'gap 19' と呼ぶ ODT の画像処理項目 1 つだけである。コミットは問題を CodeRabbit レビューで発見したとし、プレースホルダ(placeholder)は依然として記録されないと述べる。ROADMAP 文書は段階を alpha、次の目標を beta と記載しており、準備度の推定として ~15 points(実際の作業準備度 60% → 75%)と ~150–230 h を示している。ODT 以外の形式に対する検証結果はこのコミットには含まれていない。