【AutoHotkey】Google Chrome に表示されているページの埋め込みリンクをはてなブログ編集フォームに差し込む
新年度も始まり新しい元号が発表されるメモリアルな一日になりましたね。
祭りの熱気にも乗れない人は平常運転で更新です。
割と雑なエントリばかりあげているこのブログですが、それでも参照リンクをできるだけ盛り込んで行こうと考えています。
はてなブログにリンクを差し込むには複数の方法があります。
一つは編集画面のリンクボタンをクリックして差し込みたいページのプレビューを確認してから 表示スタイルを選択して記事にリンクを挿入します。
もう一つは URL をクリップボードから貼り付けます。
こちらも一つ目のやり方と同じように表示スタイルを選択して記事にリンクを挿入します。
help.hatenablog.com
私はもっぱらクリップボードから URL を貼り付けるスタイルです。
URL の取得はCopy URL+ という Chrome 拡張を使っています。
yasushiito.hatenablog.com
Google Chrome で表示中のページに対してキーボードの C を入力するだけで URL をクリップボードに振り込めるのでとても便利です。
これだけでも割と楽になるのですが。
それでも操作手順は3段階となります。
- クリップボードの貼り付け。
- 表示スタイルの選択。
- リンクの挿入。
挿入されるリンクの形式は次のようになっており難しいものではありません。
[http://ページの URL:embed:cite]
Autohotkey で自動化できるんじゃない?
- Control + L で URL を選択したらクリップボードにコピー。
- Control + tab でタブを切り替えてブログエントリ編集ページが表示されているタブを見つけ出してペーストします。
- 私は Google Chrome を2枚のウィンドウで使い分けていますから、間違って別のウィンドウで処理しないように判別します 。
これまでのスクリプトの蓄積で実現までのハードルはありません。
#=:: editor := 0 work := 0 WinGet, windows, list loop ,%windows% { idstr := "ahk_id " . windows%A_Index% WinGetTitle,title,%idstr% pos := RegExMatch(title,"- Google Chrome$") if pos > 0 { pos := RegExMatch(title,"音声入力用") if pos > 0 { WinGet,editor,ID,%idstr% } else { WinGet,work,ID,%idstr% } } } If (editor = 0) return If (work = 0) return WinActivate,ahk_id %work% Sleep 500 Send,^l Sleep 500 Send,^a Sleep 500 Send,^c WinGetActiveTitle, current Sleep 500 url := clipboard clipboard = [%url%:embed:cite] Loop { Send,^{Tab} Sleep 500 IfWinExist,ブログ記事編集 - はてなブログ { Send,^v break } WinGetActiveTitle, active if current = %active% { Send,^t Sleep 500 SendInput,http://blog.hatena.ne.jp/xxxxxxxx/xxxxxxxx.hatenablog.com/edit Send,{enter} Sleep 3000 Send,^v break } } return
以下の点に注意してご利用ください。
Windows += キーにショートカットが割り当てられます。
Google Chrome は二つのウィンドウが開かれている前提です。
一つは音声入力用。
もう一つは作業用。
作業用のウィンドウではてなブログ編集ページを開いていること 。
編集フォームで本文のテキストエリアにフォーカスがあること。
テキストエリアの挿入したい位置にカーソルがあること。
作業用のウィンドウでリンクを挿入したいページをカレントタブで開いていること。
クリップボードの内容は破壊される。
ブログエントリのページが見つからなかった時に新規タブを開いて強引に貼り付けているのはご愛嬌。
スクリプトの実行に失敗した時に大切なページに余計なものを挿入しないようにするためです 。
X が並んでいる部分は必要に応じて書き換えてくださいね 。