AppleScript 救急隊

The ForeSight Inc. AppleScript救急隊 ASQsについて Download (サンプル&デモ)


ビジネスで有効活用を目指す

われらがAppleScript救急隊


MacPower誌



Vol.5 GoLive CyberStudioでのスクリプティング

複雑なレイアウトのページを簡単に作成できる高機能HTMLエディター「GoLive CyberStudio」の日本語版が発売された。QuickTimeやQuickDraw 3Dなど、アップル社の技術への対応も充実している本製品の、AppleScriptによるスクリプティングの実例を紹介する。


自動リンク張りスクリプト

今月は、AppleScriptにも対応している注目の高機能HTMLエディター「GoLive CyberStudio」(図1)を使ったスクリプトを作ってみよう。

図1 米ゴーライブ・システムズ社(http://www.golive.com/)のGoLive CyberStudio
国内の販売元は(株)ソフトウェアトゥー(TEL 03-5676-2177)で、価格は6万4800円

HTMLエディターでホームページを作成していると、文中の特定の単語に対してすべて同じリンク先を指定したいときがある。ここで紹介するスクリプトは、このルールをあらかじめテキストファイルにまとめておき、単語を検索してルールどおりにリンクを張っていくというものである。
前回までの記事で紹介したように、AppleScriptだけでテキスト処理をさせても同様の結果を得るスクリプトを書けないことはなかったが、そこは専用アプリケーション。使いやすいコマンドを搭載している。
このコマンドを使うぶんには、HTMLの書式はあまり意識する必要がなく、サンプルとなるスクリプトにもHTMLはほとんど登場しない。これがCyberStudioのスクリプティングの特徴だ。


set aTarget to "AppleScript救急隊"
set aURL to "http://www.fsight.co.jp/asqs"

tell application "GoLive CyberStudio"
repeat while (Find aTarget)
Link aURL
end repeat
end tell


これが基本的な流れになる。もう少し詳しく説明しよう。
まず、CyberStudioのFindコマンドで、指定した文字列を検索している。ここでは、String型の変数aTargetに入ってきた文字列を検索する。Findコマンドは検索対象の文字列を発見すると、その文字列をSelect状態(選択した状態)にして、戻り値(return)としてbooleanをTrueで返す。サンプルスクリプトではrepeat while文を使って、検索対象文字列が検出されている間は、repeat文の中身が処理されるようになっている。
このFindコマンドは、とても使いやすい。通常のテキストエディターも、こういう形で検索/置換がAppleScriptから操作できると、非常にスクリプトが作りやすくなるはずだ。
ちなみに置換にも、Replaceコマンドが用意されている。これはFindコマンドに変換文字列のパラメーターを加えただけのコマンドと考えていい。Findコマンドの代わりに使うことで、検索した文字列の置換まで行ってくれる。これも簡単に使えるわりに強力なコマンドだ。
次は、検出された文字列に対してリンクを張る工程だ。CyberStudioにはLinkコマンドが用意されていて、これを使うと選択されている文字列にリンクを張るHTMLを書き出してくれる。
ほかにも、フォントの書体やサイズを変更をするFont、指定したタグで選択文字列を囲むStyle Tagなど、Linkコマンドと同様のコマンドをいくつか用意している。このスクリプトの応用例として、文字種やリンクに関するのルールを別のテキストファイルとして作っておき、一括変換をするといった使い方が可能だ。なお、SampleScripts Vol.5には、テキストファイルに各種のHTMLタグを埋め込むCyberStudio用サンプルスクリプトを収録している。

TOPへ

リスト表示/表組をする

前回/前々回と、ファイルメーカーProのデータをHTMLに変換するスクリプトを紹介したが、そこで一所懸命HTMLを絡めたスクリプトを書いて実現していたリスト表示や表組が、なんとCyberStudioではコマンド1つで作成できる。
では、実際に使ってみよう。
まずテキストからリストへの変換は、とてもシンプルなコマンドで行える。改行で区切ったテキストを書いておき、リストに変換したい部分を選択して、

tell application "GoLive CyberStudio"
List Unordered
end tell

とするだけ。これで簡単に指定したとおりのリスト表示にできる。オプションも複数用意している。
表組にはTableコマンドが用意されていて、図2のようなプロパティーを設定できる。このコマンドの使い方も簡単で、図3のようにカンマやタブなどで区切ったテキストをリストのときと同様に選択しておいて、Tableコマンドを実行するだけだ。これで、指定部分を表組に変換できる。

Table(文字列)

表組のキャプション

Rows(整数)

表の行数

Columns(整数)

表の列数

Border(整数)

表の先の太さ

Cell Spacing(整数)

Cell Spacing の値

Cell Padding(整数)

Cell Padding の値

Width(整数)

表の横幅

Separator(文字列)

テーブルに変換するときのセパレータ

Heading(Boolean)

Trueなら1行目を列のタイトルにする

図2 Tableコマンドのオプション一覧

図3 Tableコマンドでテキストを変換する際の様子。
こうして作られたHTMLファイルをブラウザーで見ると、下図のような結果になる

選択範囲に対して「Table "HTML Extensions" Border 1 Separator ":"」を実行

tell application "GoLive CyberStudio"
Table "HTML Extensions" Border 1 Separator ":"
end tell


AppleScriptで自動的にテーブルを作るときは、表組にしたい形にしたテキストをタブ区切りなどにしてドキュメントに挿入し、その部分を選択してTableコマンドを実行するだけだ。HTMLのタグを意識することなくテーブルを作成できる。テーブルのセルに対して細かい設定ができないことや、複数セルをまたぐセルが作れないなど、一部弱点もあるが、コマンド1つでテーブルになるのは非常に楽だ。

HTMLの文法チェック

CyberStudioはHTML書類の文法チェックが可能だ。この機能もAppleScriptから利用できる。

tell application "GoLive CyberStudio"
Check Syntax
end tell

とすると、ドキュメント内に含まれるHTMLの文法エラーの個数が返ってくる。

tell application "GoLive CyberStudio"
Get Syntax Error 1
end tell

で、1つ目のエラーのエラー番号を取得できる。が、これだけでは戻ってきたエラー番号が、どんな内容のエラーを示すのかわからない。エラーの内容は、ドキュメントウィンドウの下に表示されるので、これを参照しよう。高速に処理できるコマンドなので、スクリプトの最後に入れておくだけで、おかしなHTMLを出力してしまうことがなくなるだろう。

CyberStudioでのスクリプトの使い方

今回紹介したCyberStudioの特徴の1つに、パーツとして用意したテーブルやテキストボックスをドラッグ&ドロップで配置できるレイアウトモードという機能がある。画像やテキストボックスを「レイアウト・グリッドパーツ」という縦横のグリッドに沿って自由に配置でき、これによって従来のHTMLエディターでは作れなかった自由なレイアウトが作成できる。
実際にスクリプトを作ってみて残念だったのは、このレイアウトモードでオブジェクトを配置するためのApppleScriptコマンドが用意されていない点だ。AppleScriptからコマンドを送ると、レイアウトモードにしていても、自動的にソースモード(HTMLで内容が表示される画面)に切り替ってから処理される(図4)。
レイアウトモードのパーツ、特にレイアウト・グリッドパーツを使ったスクリプティングができれば、ファイルメーカーProなどのソフトと連携するHTML自動レイアウトツールとして、かなり強力なソリューションが構築できるのだが残念だ。

図4 レイアウトとソースの編集モードの違い。
残念ながら、AppleScriptからレイアウトモードでの操作を制御することはできない

しかし、それを差し引いても非常に使いやすい高機能なHTMLエディターであり、「足りない機能を自分専用のオリジナルコマンドとして補う」という使い方をすれば、現状の対応でもいろいろなスクリプトが書ける。
あまり欲張らずに、サポートツールとしての位置づけでAppleScriptを組み合わせて使っていくと、多彩なことができるアプリケーションだ。今後は、よりスクリプタブルなソフトとして成長していくことを期待したい。

TOP

AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp

主催 株式会社フォーサイト   後援 アップルコンピュータ株式会社

(c)1996-2010 The ForeSight Inc. All rights reserved.
Appleは、米国アップルコンピュータ社の登録商標です。
AppleScriptは、米国アップルコンピュータ社の商標です。
その他記載の会社名・製品名・ソフトウェア名は一般にその会社の登録商標または商標です。