34
29

More than 5 years have passed since last update.

Microsoft Word + pandoc + git によるドキュメント管理

Last updated at Posted at 2016-12-14

なぜ俺たちはこんなことをしなければならないのか

苦しみ

はじめに Word があった
Word は客と共にあった
Word は神であった

.docx 自体はただの zip ファイルで、解凍すれば xml 等が得られるのだが、それらは解読しがたく、変更差分の管理などは苦しみがある

git のドキュメントでも同じ苦しみについて言及されている
8.2 Git のカスタマイズ - Git の属性

ここでは git の textconv が用いられている
textconv を使うと、生ファイルではなく、それらを指定のコマンドに与えた結果(として出力されるテキスト)を diff に渡することができる
そこで、docx2txt という.docxをテキスト変換するスクリプトを textconv に定義することでテキストの差分を得ている

Mac ならば、標準の textutil を使い同様の事ができるだろう

これらによって差分を得ることはできるものの、プレーンなテキストで示される差分とドキュメント自体とを紐付ける苦しみは続く

啓示

pandoc に Docx reader が加わったことで、さらなる救いの道が示された

救済

pandoc はマルチプラットフォームなドキュメントフォーマット変換ツールであり、Windows用の.msiインストーラまで提供されている
そして、 .docx をインプットとして markdown をアウトプットできる
これによりプレーンなテキストよりは幾分まともな差分を得ることができる

.gitattributes
*.docx diff=pandoc
.gitconfig
[diff "pandoc"]
  textconv=pandoc --to=markdown
  prompt = false
[alias]
  wdiff = diff --word-diff=color --unified=1
git wdiff 糞糞.docx

pandocによる変換では、今のところ(pandoc 1.19.1)図形は無視され、画像は連番の参照情報が残されるだけだが、見出し、リスト、表等は生存することができる

以上、よろしくお願いいたします

参考

34
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
29