InDesignとIllustratorのどちらでも動作するJavaScript
(ちっ、こんなに早く書くことができたんなら小ネタ出さなきゃよかったな)
以前のエントリでメモを書いておいたら早速CLさんがInDesign用を作ってくれました。
http://coderepos.org/share/browser/platform/indesign/javascript/icalcalendar/trunk/icalcalendar-popup.jsx?rev=24190
これはとても素晴らしい! のですがインターネットに繋がっていないといけないし、Illustratorではそもそも使えない。
じゃあまず、Illustrator版を作ろうかね。と作り始めました(やっぱりブログに書いてみるもんだね。自分の意識が高まります)。
日付と曜日があってるかどうかっていうのは、特にイベントがある場合が重要で、その場合、ポスター、チケットなどの端物があります。そんなケースではIllustratorで作るケースも多いので、Illustratorでも必要になります。
と作り始めると、「結局必要なのは選択されたテキストの中味(contents)だけなので、InDesign版とIllustrator版の違いは入り口だけで実際に処理する部分は同じで構わない」ということに気がつきました。そのうち、もしかしてapp.nameで分岐できるんでない? !!! 頭の中で爆発した。これはInDesignとIllustratorのどちらでも動作するJavaScriptだ!
テストは成功。フォッフォッフォッ
ということでこの部分だけの(他の部分はできてないので)ソースを公開。
if (app.documents.length == 0 ) {
alert("ドキュメントを開いてください。");
} else {
if (app.name == "Adobe InDesign") {
if (app.selection.length != 1) {
alert("日付形式のテキストを選択してください。");
} else {
switch (app.selection[0].constructor.name){
case "Story":
case "Text":
case "TextStyleRange":
case "TextColumn":
case "Paragraph":
case "Line":
checkWeek(app.selection[0].contents);
break;
default:
alert("日付形式のテキストを選択してください。");
}
}
} else if (app.name == "Adobe Illustrator") {
if (app.selection.constructor.name != "TextRange") {
alert("日付形式のテキストを選択してください。");
} else {
checkWeek(app.selection.contents);
}
}
}
function checkWeek(orgStr) {
alert(orgStr);
}