opml2indexignは、OPML形式をInDesign用に整形するXMLスタイルシート(XSL)と、便利なタスクを設定したGruntfile、セッティング済みのInDesignテンプレートでできたツールです。OmniOutliner、Tree、MindNode、Scapple等の人気のエディタから出力したOPML形式のデータを、InDesignのドキュメントへ自動組版することができます。
上記サンプルは resources/DEMO.indd から出力しています。
InDesignを使ってXSLTを適用する使い方です。最もシンプルな手順で流し込みが行えます。
任意のソフトウェアを使い、OPML形式のファイルを作成します。Tree、MindNodePro、Scappleなどのマインドマッピングツールや、各種アウトラインエディタが対応しています。
拡張子を書き換えると、InDesignがXMLとして解釈できるようになります。
resources/ 以下のInDesignテンプレートには、8〜12レベルの見出しと本文用のスタイルがXML構造にマップ済みです。CS4のINDD形式か、CS4以降のすべてのバージョンで互換性のあるIDML形式のいずれかを使用できます。
- a4_eng_cs4.indd, a4_eng_cs4-cc.idml - 英語用のテンプレートです。
- a4_jpn_cs4.indd, a4_eng_cs4-dd.idml - 日本語用のテンプレートです。
「ファイル > XMLを読み込み...」から、先程拡張子を書き換えたXMLファイルを選択します。この時に「XSLTを適用」をチェックし、opml2indesign.xslをスタイルシートとして適用します。
Grunt.jsを使うことで、拡張子の置き換えやXSLの適用をInDesignの外部で自動処理できます。OPMLを直接エディタで編集しながらInDesignに反映できるため、より原稿の執筆に集中できるワークフローが実現可能です。
$npm install を実行し、依存するnodeモジュールが利用可能な状態にしてください。xsltprocは、MacOSXの場合は標準でインストールされています。
以下のタスクが実行されます。
- src/opml 以下のファイルを監視
- 変更があった場合は、XSLTを適用して build 以下へ出力
この場合では、XSLTを適用せずにそのまま読み込みを行なってください。Gruntが走り続けている間は、OPMLファイルに変更がある度にXMLファイルが再生成されます。このファイルにInDesignからリンクを設定することで、情報のリロードを簡単に行うことができるようになります。
InDesignの仕様上、フレームグリッドへタグ付きテキストを流し込んだ際、フレームブリッド 自体のスタイルが優先的に適用されてしまうようです。以下の対処方法があります。
テキストフレーム内のテキストを「コマンド+A」ですべて選択し、段落スタイルパレットのメニューから「オーバーライドの消去」を実行します。
テキストが流し込まれた後、もう一度同じファイルを同じ手順で読み込み直します。2回目の読み込み時に、正しいスタイルが適用されます。
opml2indexignはMITライセンスで配布されます。改変・再配布・商用利用は自由です。
Copyright (c) 2014 y_hokkey
Released under the MIT license
http://opensource.org/licenses/mit-license.php
1988年生まれ。多摩グラ中退のグラフィックデザイナー。印刷物/Web/電子書籍/モバイルアプリ/業務用アプリケーションといった分野のデザインに携わっています。
こんなのも作ってます。 http://metroexits.nobody.jp/