監視フォルダにポストされたDITAソース・ファイルに対してDITA-OTを自動実行する方法
BMC Software, Inc.のAnn Gentleさんのブログに、A chatched folder ofr publishing from DITA source filesという記事が掲載されていました。
自分一人でDITA-OTを使っている分には必要がない話しですが、会社の中で複数の人がDITAドキュメントを書いているなら、この記事で書かれているような環境があると便利かと思います。実際に動かして見たわけではないですが、どんなしくみになっているか興味があったので記事を読んでみました。
大体、こんな感じで動くようです。
前提
- DITA-OT, FO pluginのインストールが済んでいて、正常動作を確認済みであること。
- WinzipとWinzip Command Line Support Pluginがインストール済みであること。
セットアップ手順
- DITA-OTのインストール・フォルダの下に、監視フォルダ(dita_it)と出力フォルダ(dita_out)を設ける。
- 監視フォルダと出力フォルダを共有可能に設定する。
- 監視フォルダの中に、DITA-OTを起動するためのバッチ・ファイル(buildDITA.bat, buildCHM.bat, buildPDF.bat, buildPDF2.bat)、Antファイル(buildCHMFiles.xml, buildPDFFile.xml, buildPDF2File.xml)、およびファイル名を変更するためのバッチ・ファイル(renameOutputFiles.bat)を置く。
- Windowsのコントロール・パネルにある[タスク]アイコンから、%DITA-OT%dita_in\buildDITA.batを10分ごとに実行するタスクをスケジューリングする。
動かす手順
- DITAドキュメントのファイル・セット(*.ditamap, *.dita, グラフィック・ファイル)があるフォルダをzipにアーカイブする。
- zipファイルを監視フォルダにコピーする。
何が起こるか
- 10分ごとにbuildDITA.batが呼び出される。
- buildDITA.batは、監視フォルダにzipファイルがないか確認し、あったら%DITA-OT%dita_in\workingに解凍して、buildCHM.bat, buildPDF.bat, buildPDF2.batを順次呼び出し、それぞれHTML Help、PDF、PDF2へのtransformを実行する。
- 最後に、renameOutputFiles.batが呼び出され、%DITA-OT%dita_out\htmlhelp, pdf, pdf2に出力されたCHM, PDFファイルのファイル名の変更と、不要なファイルの掃除が行われる。CHM, PDFファイルのファイル名は日時付きのファイル名になる。
排他制御のことが気になると思いますが、ソースzipファイルを解凍した直後にlock.txtというファイルを作ることにより、一応の排他制御を行っています。しかし、一度に複数のzipファイルがポストされた場合は、10分間ごとに1つのzipファイルしか処理されないと思われます。