今回もAppleScript を使ったスニペットを幾つかご紹介します。
謝辞
今回ご紹介するスニペットは @takatomo さんがオリジナルを作られているものをスニペットにしただけなのです。以下のエントリ無しにはこの便利なスニペットはできませんでした。
MarsEdit を少しだけ便利に使うスクリプトをつくってみたよ♪ | TOTEKAN そこで今回はいままでに作っていた MarsEdit をさらに便利に使うための AppleScript を紹介します。 |
改めてお礼を申し上げます。便利なスクリプトを公開してくださってありがとうございます。
では、前回に引き続き、サンプルスニペットをご紹介します。
HTMLエンコードするスニペット
クリップボードの中身をHTMLエンコードして貼り付けます。ソースコードなどをHTMLエディタにペーストする時に、このスニペットを経由させるだけでHTMLエンコードして出力してくれます。一点、注意が必要なものがあります。スニペットのコードをクリップボードに入れた状態で、このスニペットを起動するとクリップボード内のスニペットコードも実行されてしまいます。これは TextExpander の構造上、回避できません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
replace_html_entity(the clipboard as string) on replace_string_action(target_text, before_string, after_string) set orig_delimiter to AppleScript's text item delimiters set AppleScript's text item delimiters to before_string set tmp_list to every text item of target_text set AppleScript's text item delimiters to after_string set target_text to tmp_list as string set AppleScript's text item delimiters to orig_delimiter return the target_text end replace_string_action on replace_html_entity(target_text) set target_text to replace_string_action(target_text, "&", "&") set target_text to replace_string_action(target_text, "<", "<") set target_text to replace_string_action(target_text, ">", ">") set target_text to replace_string_action(target_text, "\"", """) return target_text end replace_html_entity |
Safari で開いているページを ShareHTML 形式で出力
以前もご紹介したスニペットです。このスニペット自身はプレインテキストで書かれていて単純に整形しているだけです。本当の肝の部分は、このスニペットから呼び出している3つのスニペット。以下は見やすくするために整形しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<table style="border-top: 2px solid #CCC;border-bottom: 2px solid #CCC; padding: 0.5em 0em 0.5em 0em;"> <td valign="top" width="600"> %snippet:???getTitleFromSafari% <a href="http://tweetbuzz.jp/redirect?url=%snippet:???getURLFromSafari%"> <img src="http://tools.tweetbuzz.jp/imgcount?url=%snippet:???getURLFromSafari%" /> </a> <a href="http://b.hatena.ne.jp/entry/%snippet:???getURLFromSafari%"> <img src="http://b.hatena.ne.jp/entry/image/%snippet:???getURLFromSafari%" /> </a> <div style="font-size: 80%;"> <br> <span style="color: #808080;font-size: 80%;"> %snippet:???getSelectedStringFromSafari% </span> </div> </td> <td valign="top" width="90"> <img border="0" src="http://capture.heartrails.com/90x60/shadow?%snippet:???getURLFromSafari%" alt="" width="90" height="60" /> </td> </table> |
では、肝心の3つのスニペット
- ???getURLFromSafari
- ???getTitleFromSafari
- ???getSellectedStringFromSafari
まずは、???getURLFromSafari です。AppleScript で Safari で表示しているページの URL を取得します。
1 2 3 4 |
tell application "Safari" set myURL to URL of document 1 as Unicode text end tell return myURL |
次に、 ???getTitleFromSafari です。同様に Safari で表示しているページのタイトルを取得します。
1 2 3 4 |
tell application "Safari" set myTitle to name of document 1 as Unicode text end tell return myTitle |
最後が Safari で選択状態にあるテキストを JavaScript を経由して取得する ???getSelectedStringFromSafari です。
1 2 3 4 |
tell application "Safari" set mySelectedString to do JavaScript "unescape(escape(getSelection()));" in document 1 end tell return mySelectedString |
これは、以前のエントリで一部分だけを紹介した関連エントリの一覧を作成するスクリプト。
Safari に開いているタブを一覧にして書き出します。このスニペットは結構使っています(いま使っているのはもう少しコードを見直していますが)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
tell application "Safari" if (count of document) is greater than 0 then tell window 1 set related_entries to "<br /><br />" & return & "<span style=\"font-weight:bold\">関連するエントリ</span><br />" & return & "<ul>" & return repeat with handle_document in tabs set site_title to name of handle_document set site_title to replace_string_action(site_title, "最近, 気になったこと...: ", "") of me set site_title to replace_html_entity(site_title) of me set site_url to URL of handle_document set related_entries to related_entries & "<li><a href=\"" & site_url & "\" target=\"_blank\">" & site_title & "</a> " & make_tweetbuzz_url(site_url) of me & make_hateb_url(site_url) of me & "</li>" & return end repeat set related_entries to related_entries & "</ul>" & return end tell end if end tell return related_entries on make_tweetbuzz_url(target_url) set tweetBuzzURL to " <a href=\"http://tweetbuzz.jp/redirect?url=" & target_url & "\"><img src=\"http://tools.tweetbuzz.jp/imgcount?url=" & target_url & "\" /></a>" return tweetBuzzURL end make_tweetbuzz_url on make_hateb_url(target_url) set hatenaBURL to " <a href=\"http://b.hatena.ne.jp/entry/" & target_url & "\"><img src=\"http://b.hatena.ne.jp/entry/image/" & target_url & "\" /></a>" return hatenaBURL end make_hateb_url on replace_string_action(target_text, before_string, after_string) set orig_delimiter to AppleScript's text item delimiters set AppleScript's text item delimiters to before_string set tmp_list to every text item of target_text set AppleScript's text item delimiters to after_string set target_text to tmp_list as string set AppleScript's text item delimiters to orig_delimiter return the target_text end replace_string_action on replace_html_entity(target_text) set target_text to replace_string_action(target_text, "&", "&") set target_text to replace_string_action(target_text, "<", "<") set target_text to replace_string_action(target_text, ">", ">") set target_text to replace_string_action(target_text, "\"", """) return target_text end replace_html_entity |
この他にも色々と作れるはずです。一回しか使わないようなものは直接手打ちでも良いですが、同じようなパターンにできそうなものはスニペットにすると本当に楽になります。
少なくとも、現在のペースでブログを書くためには私には必需品です。
次回は、Key の使い方をご紹介したいと思います。
TextExpander for Mac 3.4.2 (¥3,000)
カテゴリ: 仕事効率化, ユーティリティ
販売元: SmileOnMyMac, LLC – SmileOnMyMac, LLC(サイズ: 5.2 MB)
TextExpander 1.2.5 (¥450)
カテゴリ: 仕事効率化
販売元: SmileOnMyMac, LLC – SmileOnMyMac, LLC(サイズ: 3.2 MB)
DashExpander 1.6.3 (無料)
カテゴリ: 仕事効率化, ビジネス
販売元: Kapeli – Bogdan Popescu(サイズ: 3.4 MB)
関連するエントリ
最後まで読んでいただきありがとうございます。
左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです
Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします
RSSリーダへの登録は こちら からどうぞ。
コメントを残す