前回、egblidge Universalの使い方 2ということで、 egbridge Universalの新機能であるユニバーサルパレットをカスタマイズして、 自分好みのパレットを作り上げてしまう方法を紹介したりした。 そこで今回は、私が付け加えた昨日の中で一番便利に使っているAタグを作る機能を紹介しちゃったりしてみる。 機能を追加する方法については、前回で説明してある。
さて、Aタグを作る機能として、デフォルトのブログパレットに「Safari」というボタンがある。 このボタンを押すと、Safariの一番前のタブで開いているURLが、 リンク先としてセットされたAタグをバシッと一発で書き込んでくれる、 という素晴らしいボタンだ。 例えば、Google ニュースを表示しておいてボタンを押すと、 下のようなタグが生成される。
<a target="_blank" href="http://news.google.com/news">http://news.google.com/news</a>
しかし、よく見るとタイトルとページ名がうまく読み込めていない。 できれば、下のようになって欲しいのが、人の限りない欲望の証。おおげさ。
<a title="Google ニュース 日本版" href="http://news.google.com/news" target="_top">Google ニュース 日本版</a>
これは、Travellers Taleさんの Travellers Tale: Safari から URL & ページタイトル&テキストを取得 その1を参考にさせてもらったところうまく行ったので、下にソースコードを書いておく。
前回説明した通り、スクリプトエディタで新規ファイルを開いてコピペして、 プラグインフォルダにファイルを「名前を付けて保存」すれば使えるようになる。 デフォルトのブログパレットで使っているAppleScriptは見つからなかったので、 そちらを書き換えてデフォルトのパレットを強化することはできない。 いじらせてくれればいいのにね。
property theElement : "a"
on convert_lines(theLines)
tell application "Safari"
set theURL to URL of document 1 as Unicode text
set theTitle to name of document 1 as Unicode text
end tell
set startTag to "<" & theElement & " title=¥"" & theTitle & "¥" href=¥"" & theURL & "¥" target=¥"_top¥">"
set endTag to "</" & theElement &
">"
set theResult to startTag & theTitle & endTag
return theResult
end convert_lines
注:¥はバックスラッシュ(option押しながら¥)に置き換えてください。
さて、Safari以外のブラウザも使う私としては、これを他のブラウザにも対応させたい。 私は特にシイラをよく使っているので、まずシイラに対応させてみよう。
と思ったら、上ののSafariの部分をShiiraに変えるだけで大丈夫だった。ラッキー。 一応ソースを書いておくと、下のようになる。
property theElement : "a"
on convert_lines(theLines)
tell application "Shiira"
set theURL to URL of document 1 as Unicode text
set theTitle to name of document 1 as Unicode text
end tell
set startTag to "<" & theElement & " title=¥"" & theTitle & "¥" href=¥"" & theURL & "¥" target=¥"_top¥">"
set endTag to "</" & theElement &
">"
set theResult to startTag & theTitle & endTag
return theResult
end convert_lines
注:¥はバックスラッシュ(option押しながら¥)に置き換えてください。
じゃあ調子に乗ってFirefoxも行ってみよう、と思ったらうまくいかなかった。 で、調べてみると、Firefox 版アンカータグを作成する AppleScriptにそのままズバリのコードが公開されていたので、 ありがたく借用させていただく。
property theElement : "a"
on convert_lines(theLines)
tell application "Firefox"
set theURL to «class curl» of window 1
set theTitle to «class pTit» of window 1
end tell
set startTag to "<" & theElement & " title=¥"" & theTitle & "¥" href=¥"" & theURL & "¥" target=¥"_top¥">"
set endTag to "</" & theElement &
">"
set theResult to startTag & theTitle & endTag
return theResult
end convert_lines
注:¥はバックスラッシュ(option押しながら¥)に置き換えてください。
『«』『»』はそれぞれ、『option + ]』『option + shift + ]』で入力できる。
ついでに、クリップボードにURLがコピーしてあるときに、 そのURLをリンク先に設定したAタグを作るソースも載せておこう。
property theElement : "a"
on convert_lines(theLines)
set clipData to the clipboard as string
set startTag to "<" & theElement & " href=¥"" & clipData & "¥" target=¥"_top¥">"
set endTag to "</" & theElement & ">"
set theResult to startTag & theLines & endTag
return theResult
end convert_lines
注:¥はバックスラッシュ(option押しながら¥)に置き換えてください。
ということで、ブログであるか否かを問わず、サイトを持っている人は「ちょっとリンク張ろうかなー」 と思うことが多いはず。 そんなときにこのボタンがあれば、ちまちま「href=...」と打ち込んだあげく、 「あれ?飛べない。あ、herfになってたorz」 とかならなくて済むのでかなり便利! なのでどんどん使うといいと思います。
でもegbridge Universalを使っている人にしか役に立たないTipsなので、 限りなく需要が小さいけど気にしない!気にしないんだから!
追記:
エルゴソフト サポートでユニバーサルパレットのカスタマイズについて書かれている。
まぁ、ここで書いてるのと同じような話。
だが、こっちのが早かったぜ。勝ってどうする。








コメント (4)
haruさんコメントありがとうございます。
そして復活おめでとうございます。
後から気付いてGoogleで検索してみたら、キャッシュが残っていました。参考にさせて頂き、初めてApple Scriptを活用しました。
ありがとうございます。
今後もTipsともども期待しています。
投稿者: keizo | 2006年6月25日 15:49
日時: 2006年6月25日 15:49
や、どうもどうも。
やっとマトモに動くようになってきました。
私もApple Scriptは今回初めて使いました。
やっぱり動機がないと覚えませんね。
投稿者: haru | 2006年6月25日 20:03
日時: 2006年6月25日 20:03
この機能のスクリプトは、AppleがSafariがベータだった時代にサンプルを大量に放出していますよ。
EG Bridgeではなく、Apple純正のスクリプトメニューなどで実行できる汎用のスクリプトとして配布されていました。
こんな内容でした。
on run
tell application "Safari"
if exists (document 1) then
if exists URL of document 1 then
set theURL to URL of document 1
set theTitle to validatedText of me from name of document 1
set the clipboard to "" & theTitle & ""
else
display dialog "開かれているSafariウインドウは空白ページです。" buttons " OK " default button 1
end if
else
display dialog "Safariウインドウが開かれていません。" buttons " OK " default button 1
end if
end tell
end run
on validatedText from theText
set theText to replacedText of theText by "&" instead of "&"
set theText to replacedText of theText by """ instead of "?""
set theText to replacedText of theText by " return theText
end validatedText
on replacedText of theText by newCharacters instead of oldCharacters
set tmp to AppleScript's text item delimiters
set AppleScript's text item delimiters to oldCharacters
set theList to every text item of theText
set text item delimiters to newCharacters
set theText to theList as string
set AppleScript's text item delimiters to tmp
return theText
end replacedText
投稿者: とおりがかり | 2006年7月22日 01:28
日時: 2006年7月22日 01:28
とおりがかりさん
情報ありがとうございますー。
Safariのスクリプトはegbridgeにもデフォルトで入っていて、それが便利だなーと思ったのがカスタマイズしようとした発端です。
確かにスクリプトメニューに組み込んで使うのは正攻法なのでしょうが、多分それでは私は使うようにならなかったと思います。
思うに、Applescriptが普及しないのは、インターフェースというか使い勝手の問題が大きくて、Appleもそれに気付いているからAutomatorを出したのかなと。残念ながら流行ってませんが。
要は、ユニバーサルパレットみたいなインターフェースを提供されたのが、Applescriptを便利に使う可能性なのかなと。メニューから呼び出すのなら、マウスを使うのは同じですし、存在を忘れがちです。見やすいところに押しやすいボタンがある、というのがいいのだと思います。
ま、この方法以外にも、似たようなインターフェースを実現する方法はあるんでしょうね。きっと。
投稿者: ハル | 2006年7月22日 16:59
日時: 2006年7月22日 16:59