Safari用MakeLink代替AppleScriptをいじってみた

最近、Firefoxをお休みしてSafari4.0.2を試してみている。
Safari4.0.2が良さそうなのでしばらく使う (うむらうす)

確かに、サイトを開きまくってもメモリが増えて行きにくい感じがする。
そして速い。今のところほぼ満足。

しかしちょっと不便なところがある。
Firefoxのアドオン代替が完全ではないからだ。

例えば、MakeLink。
これはURL+と並んでブロガーには必須なわけだが、Safariにはない。

探したところ、すばらしいAppleScriptが紹介されているのを発見した。
SafariでMake LinkするAppleScript | r.izumitaの航跡
これは良い!
ただ、私の使い方と少しとズレていたので微調整させてもらった。

具体的には、以下の通り。

  • 文字列を選択していないときはaタグ、しているときはblockquoteタグが
    作られるのだが、どちらもaタグで統一した
  • blockquote用スクリプトは別に準備

aタグ用、blockquoteタグ用それぞれのスクリプトを、
「アプリケーションバンドル」形式で保存(「初期画面」のチェックは外す)
すればアプリケーションっぽく使える。
butlerでSafariでのみ有効なホットキーを登録すれば、
あたかもSafari用プラグインみたい。超便利。

ということで載せておく。

aタグ作成スクリプト

変更点は以下の4点。

  • 文字化け除けのおまじないとして、theURLとtheTitleをUnicode textとして保存
  • タグに含まれるシングルクォート「'」をダブルクォートに。「'」 → 「\"」
  • 文字列が選択されていた場合も、blockquoteではなくaタグに
  • titleプロパティーを追加

1)スクリプトメニュー用

ファイルはこちら→MakeLink_for_Safari(a).app.zip
ダブルクリックで解凍できるはず。
ファイル名は適当に変えて使ってください。
ソースは以下。

tell application "Safari" -- Safari 4.0.2動作確認済み
set theURL to URL of document 1 as Unicode text
set theTitle to name of document 1 as Unicode text
set theSelection to do JavaScript "unescape(escape(getSelection()));" in document 1
end tell

if theSelection is "" then
set theText to "<a href=\"" & theURL & "\" title=\"" & theTitle & "\">" & theTitle & "</a>"
else
set theText to "<a href=\"" & theURL & "\" title=\"" & theTitle & "\">" & theSelection & "</a>"

-- 'ではなく"になるように変更

end if

set the clipboard to theText as Unicode text

2)ユニバーサルパレット用

ファイルはこちら→MakeLink_for_Safari(a).scpt
ユニバーサルパレットでは、アプリケーションバンドル形式に
しなくても動いたので、scptファイルのまま。
ソースは以下。

on convert_lines(theLines)

tell application "Safari" -- Safari 4.0.2動作確認済み
set theURL to URL of document 1 as Unicode text
set theTitle to name of document 1 as Unicode text
set theSelection to do JavaScript "unescape(escape(getSelection()));" in document 1
end tell

if theSelection is "" then
set theText to "<a href=\"" & theURL & "\" title=\"" & theTitle & "\">" & theTitle & "</a>"
else
set theText to "<a href=\"" & theURL & "\" title=\"" & theTitle & "\">" & theSelection & "</a>"

-- 'ではなく"になるように変更

end if

set the clipboard to theText as Unicode text
set the clipboard to theResult

end convert_lines

blockquoteタグ作成スクリプト

変更点は以下の通り。

  • titleタグ除去
  • シングルクォート→ダブルクォートに「'」→「"」
  • <p>→<div>

1)スクリプトメニュー用

ファイルはこちら→MakeLink_for_Safari(bq).app.zip
ダブルクリックで解凍できるはず。ファイル名は適当に変えて使ってください。
ソースは以下。

tell application "Safari"
set theURL to URL of document 1 as Unicode text
set theTitle to name of document 1 as Unicode text
set theSelection to do JavaScript "unescape(escape(getSelection()));" in document 1
end tell

-- titleタグ除去 、「'」→「"」、<p><div>
if theSelection is "" then
set theText to "<blockquote cite=\"" & theURL & "\">" & return & "<div>" & return & "<cite><a href=\"" & theURL & "\">" & theTitle & "</a></cite></div>" & return & "</blockquote>" & return

else

set theText to "<blockquote cite=\"" & theURL & "\">" & return & "<div>" & return & theSelection & "<cite><a href=\"" & theURL & "\">" & theTitle & "</a></cite></div>" & return & "</blockquote>" & return


end if

set the clipboard to theText as Unicode text

2)ユニバーサルパレット用

ファイルはこちら→MakeLink_for_Safari(bq).scpt
ユニバーサルパレットでは、アプリケーションバンドル形式に
しなくても動いたので、scptファイルのまま。
ソースは以下。

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
set theSelection to do JavaScript "unescape(escape(getSelection()));" in document 1
end tell

-- titleタグ除去 、「'」→「"」、<p><div>
if theSelection is "" then
set theText to "<blockquote cite=\"" & theURL & "\">" & return & "<div>" & return & "<cite><a href=\"" & theURL & "\">" & theTitle & "</a></cite></div>" & return & "</blockquote>" & return

else

set theText to "<blockquote cite=\"" & theURL & "\">" & return & "<div>" & return & theSelection & "<cite><a href=\"" & theURL & "\">" & theTitle & "</a></cite></div>" & return & "</blockquote>" & return


end if

set the clipboard to theText as Unicode text
set the clipboard to theResult

end convert_lines

これらを、Butlerでショートカットを登録するわけです。
こんな感じ。 safari_makelink1.png safari_makelink2.png

これで、あたかもSafariでだけ発動するプラグインみたい。Good!


まとめ:

  • MakeLinkっぽいAppleScriptを作った(aタグ、blockquoteタグ用)
  • 呼び出しはスクリプトメニューからかユニバーサルパレットから
  • ショートカットを登録するとプラグインっぽくなる

良い感じだ。

皆さんの拍手が私のモチベーションです。
励ましのコメントも送れるよ!→

ガッツゴリラ

この最も大事な位置にガッツポーズをするゴリラが表示されていることに何の意味があるのだろうか?答え:何もありません。こんなところまでお読みいただきありがとうございました。

Macオンラインウエア情報検索

Loading
Macオンラインウエア情報検索についてはこちらを参照ください。 →「Macオンラインウエア情報検索」をアップデートしました2012

このブログ記事について

このページは、2009年7月21日 21:30に書かれたブログ記事です。

ひとつ前のブログ記事は「AppleScriptの使い方(スクリプトメニューとユニバーサルパレット)」です。

次のブログ記事は「ゲーム音楽弾いてみた系」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

アーカイブ