Macで、コピーしたリンクから自動でaタグを作ってクリップボードに返すAppleScriptを作った
2021/06/08
ブログを書く時に、まず始めるとこは、情報集め。
自分が後から見返した時に、参照したサイトのリンクが貼ってあると、後でメンテナンスもしやすいので、最近はなるべくリンクを貼っておくようにしてあります。
しかし、結構面倒くさいのが、HTMLのaタグ作り。
Safariで、サイトを開いている時は、ブックマークレットなりを使ってタグを簡単に作れるのですが、URLだけをメモっておいた場合が、鬼門です。
いちいちURLを開いて、ブックマークレットを使ってコピペをしてくる必要があって、ちょいと面倒臭い。
そこで、その面倒臭さを取り払うべく、AppleScriptで自動化スクリプトを作ってみました。
目次
makeLinktag
『makeLinktag』という名前をつけました。
automatorにAppleScriptを登録し、キーボードのショートカットにそのautomatorを登録すれば、URLをコピーしてショートカットを打てば、HTMLのaタグになって返ってきます。
初めてのAppleScriptなので、割と時間を食った割に、なんか出来が微妙で少し悲しい。
- AppleScript : Safari で URL を開き、テキストをクリップボードに保存する : R for Radio
- AppleScript : Safari で今見ているサイトへのリンクを作成する - GameSprit
- ASH Planning: AppleScript でアプリケーションの起動と終了
- AppleScriptを使用して指定のURLにSafariなどを開かずにバッ... - Yahoo!知恵袋
- Clipboard – AppleScriptの穴
makeLinktagの設定方法
下記スクリプトをコピーして、automatorに登録します。
スクリプト本体
on run {input, parameters} set currApp to short name of (info for (path to frontmost application)) tell application "Safari" activate make new document open location (the clipboard) set theID to id of window 1 delay 3 try set theUrl to (URL of document 1) set theTitle to (name of document 1) on error beep 2 return end try tell the window id theID to close end tell set theInfo to "<a href=\"" & theUrl & "\" target=\"_blank\">" & theTitle & "</a>" set the clipboard to theInfo tell application currApp activate end tell return input end run
automatorへの登録
こんな感じ。
クイックアクションに登録します。
automatorのキーボードショートカットへの登録
あとは、こんな感じでキーボードショートカットへ登録し、ショートカットを割り当てれば、OKです。
makeLinktagの使い方
URLをコピーして、割り当てたショートカットを押すだけ。
一瞬Safariに遷移して、情報を取得後、すぐに元のアプリケーションに帰ってきます。
帰ってきた後は、ペーストをすれば、コピーしたURLがaタグに変換されています。
超絶便利!!!
まとめ
良い感じになりました。
MarsEditの過去記事欄で、URLリンクを取得すれば、今回のショートカットを実施するだけで、勝手にaタグになって返ってきます。毎回毎回結構面倒くさい作業だったので、改善できてよかったです。
今後の課題としては、複数リンクのリスト化と、バックグラウンドでの作業実施でしょうかね。
前者はまぁやればできるレベルなのですが、後者は今回実装しようとしても、なかなかできなかったです。バックグラウンドでwindowを取得しようとすると、変な値が出てきちゃったりする。困ったものです。
一瞬Safariに画面が遷移するのがストレスなので、いつか遷移なしで実装できるようになると良いです。
というか、iPhoneとかでのショートカットレベルで、簡単にプログラムを組めるようにならないですかね。M1に統合した理由は、Macでのショートカット利用解禁かと思っていたのですが、違ったんですかね。