GarretCafe

こんなご時世こそ、自分の考えを書いてみよう

Macで、コピーしたリンクから自動でaタグを作ってクリップボードに返すAppleScriptを作った

      2021/06/08

Chain link 690503 1280

ブログを書く時に、まず始めるとこは、情報集め。
自分が後から見返した時に、参照したサイトのリンクが貼ってあると、後でメンテナンスもしやすいので、最近はなるべくリンクを貼っておくようにしてあります。

しかし、結構面倒くさいのが、HTMLのaタグ作り。
Safariで、サイトを開いている時は、ブックマークレットなりを使ってタグを簡単に作れるのですが、URLだけをメモっておいた場合が、鬼門です。

いちいちURLを開いて、ブックマークレットを使ってコピペをしてくる必要があって、ちょいと面倒臭い。

そこで、その面倒臭さを取り払うべく、AppleScriptで自動化スクリプトを作ってみました。

makeLinktag

『makeLinktag』という名前をつけました。
automatorにAppleScriptを登録し、キーボードのショートカットにそのautomatorを登録すれば、URLをコピーしてショートカットを打てば、HTMLのaタグになって返ってきます。

初めての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への登録

スクリーンショット 2021 05 23 15 32 24

こんな感じ。

クイックアクションに登録します。

automatorのキーボードショートカットへの登録

スクリーンショット 2021 05 23 15 41 06

あとは、こんな感じでキーボードショートカットへ登録し、ショートカットを割り当てれば、OKです。

makeLinktagの使い方

URLをコピーして、割り当てたショートカットを押すだけ。

一瞬Safariに遷移して、情報を取得後、すぐに元のアプリケーションに帰ってきます。

帰ってきた後は、ペーストをすれば、コピーしたURLがaタグに変換されています。

超絶便利!!!

まとめ

良い感じになりました。

MarsEditの過去記事欄で、URLリンクを取得すれば、今回のショートカットを実施するだけで、勝手にaタグになって返ってきます。毎回毎回結構面倒くさい作業だったので、改善できてよかったです。

今後の課題としては、複数リンクのリスト化と、バックグラウンドでの作業実施でしょうかね。

前者はまぁやればできるレベルなのですが、後者は今回実装しようとしても、なかなかできなかったです。バックグラウンドでwindowを取得しようとすると、変な値が出てきちゃったりする。困ったものです。

一瞬Safariに画面が遷移するのがストレスなので、いつか遷移なしで実装できるようになると良いです。

というか、iPhoneとかでのショートカットレベルで、簡単にプログラムを組めるようにならないですかね。M1に統合した理由は、Macでのショートカット利用解禁かと思っていたのですが、違ったんですかね。