見出し画像

Markdown原稿を一瞬で組版する「FindChangeByList.jsx」

これまで「Markdown→InDesign」は、Pandocを使ってICMLを通過させてきました。

画像も読み込めるので最強な反面、数ページの原稿の場合には逆に手間がかかります。

検索置換のクエリーを順番に適用させていたのですが、もう少しシステマチックに運用していこうと思い立ったとき、Uske_Sさんのブログ記事を見つけました。

「FindChangeByList.jsx」は、InDesignに元から用意されているスクリプトで、「FindChangeList.txt」という設定ファイル内の検索置換クエリーを順番に実行します。

ありがたいことに、Uske_SさんがMarkdown用のサンプルを用意してくだっさっています。

各行は次のような構成になっています。正規表現での検索置換の設定をテキスト化したものと言えます。

これを元に、ガッツリと作り込んでみたところ、数秒で完了できるようになりました。ビューティ。

ちなみにスクリプトの実行時には、次のダイアログボックスが出て適用範囲を指定します。

  • Document:ドキュメント

  • Selected Story:選択しているストーリー

  • Selection:選択範囲

Markdownについては、こちらの記事もご覧ください。

前提となるInDesignの段落スタイル/文字スタイル

前提として、InDesignの段落スタイル/文字スタイルの整備が重要です。

案件ごとに都度スタイル名を付けるのではなく、共通のスタイルを用意しておくとラクです。

もちろん、各スタイルの中身は案件ごとに異なりますが、
「構造」として用意しておき、ここからカスタマイズしていくとよいでしょう。

Word互換のスタイル名にしておくのもよいでしょう。

追加した設定

すべてではありませんが、考え方の道筋として。

番号リスト

  • ^\d+\.\s(.+)

  • 行頭に「1. 」など(2桁以上も)

  • 段落スタイル「ol-li」を適用

grep {findWhat: "^\d+\.\s(.+)"} {changeTo: "$1", appliedParagraphStyle: app.activeDocument.paragraphStyles.item("ol-li")} {}

引用(ブロック)

  • ^> (.+)

  • 行頭に「> 」

  • 段落スタイル「p.blockquote」を適用

grep {findWhat: "^>\s?(.+)"} {changeTo: "$1", appliedParagraphStyle: app.activeDocument.paragraphStyles.item("p.blockquote")} {}

リンク

  • \\[(.+)\]\((.+)/\)

  • [テキスト](リンク)

  • 段落スタイル「link」を適用し、テキスト <リンク>に変換

grep {findWhat: "\[(.+)\]\((.+)/\)"} {changeTo: "$1 <$2>", appliedCharacterStyle: app.activeDocument.characterStyles.item("link")} {}

画像

画像のプレースホルダー(配置用の“空”のボックス)を用意し、カットしてから実行します。

  • \[(.+)\]\((.+)/\)

  • ![](画像のパス)

  • 段落スタイル「p.img」を適用し、「画像+改行+画像のパス」に置換

grep {findWhat: "^!\[\]\((.+)\)"} {changeTo: "~C\r$1", appliedParagraphStyle: app.activeDocument.paragraphStyles.item("p.img")} {}

箇条書き

Markdownでは行頭に「- 」のほか、「* 」「+ 」もサポートしています。

さらにMarkdown記法を使わず、「・」(全角の中黒)を使う人にも対応できるようにしておくとよさそうです。

  • ^\* (.+)

  • ^\+ (.+)

  • ^・(.+)

キャプション

HTML(Markdown)には「キャプション」というボキャブラリーがありません。

おそらく使うことのないh6(######)を擬似的に使う方法もありますが、直近の案件ですと、次のような原稿が届きました。

<!-- キャプション -->写真の説明文<!-- /キャプション -->
[キャプション]写真の説明文
▲写真の説明文

「キャプションはこのように記述して」と事前にアナウンスして、それに準じていただくのが理想ですが、なかなか厳しいですね…

ご参考

次のようなシートを作って管理しています。

使い分けはどうするの?

「FindChangeByList.jsx」を使っていくと、「FindChangeList.txt」の使い分けが必要になってきます。

  • 「FindChangeList.txt」があれば、そのファイルが読まれるので、都度、名称を変更してもよいのですが、非常に面倒です。

  • 「FindChangeList.txt」を「FindChangeList-markdown.txt」のようにリネームしてしまうのがよさそうです。

運用

「FindChangeByList.jsx」を実行すると、まず、適用先を聞かれます。

その後、「どのfind/change listを実行しますか?」と聞いてきますので、選択して[開く]ボタンをクリックして進められるようになります。

Word互換のスタイル名に対応する

適切にスタイルを設定したWordドキュメントをInDesignに読み込むと、たとえばMS Wordの「標準」スタイルはInDesignでは「Normal」という段落スタイルになります。

事前にInDesign側でその段落スタイルを準備しておけば、自動的にマッピングされます。

次のように一括で変換できるようなクエリーを用意しておくとよさそうです。

text	{appliedParagraphStyle: 'p'}	{appliedParagraphStyle: 'Normal'}	{}	
text	{appliedParagraphStyle: 'h1'}	{appliedParagraphStyle: 'Heading 1'}	{}	
text	{appliedParagraphStyle: 'h2'}	{appliedParagraphStyle: 'Heading 2'}	{}	
text	{appliedParagraphStyle: 'h3'}	{appliedParagraphStyle: 'Heading 3'}	{}	
text	{appliedParagraphStyle: 'p.blockquote'}	{appliedParagraphStyle: 'Quote'}	{}	

このようなExcelシートを用意しました。

参考記事

ダウンロード

ここから先は

3字 / 5ファイル
月に10-20本くらいの記事を投稿しています。定期購読されると、更新のお知らせを受け取ったり、マガジン限定記事やサンプルファイルをダウンロードできます。 購読を開始した月に更新された記事から読むことができます(初月無料)。

DTP Transit 定期購読マガジン

¥100 / 月 初月無料

マガジン限定記事やサンプルファイルをダウンロードできます。

定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5