ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

【AutoHotkey】Google Chrome に表示されているページの埋め込みリンクをはてなブログ編集フォームに差し込む

f:id:yasushiito:20190401185944p:plain

新年度も始まり新しい元号が発表されるメモリアルな一日になりましたね。
祭りの熱気にも乗れない人は平常運転で更新です。

割と雑なエントリばかりあげているこのブログですが、それでも参照リンクをできるだけ盛り込んで行こうと考えています。
はてなブログにリンクを差し込むには複数の方法があります。
一つは編集画面のリンクボタンをクリックして差し込みたいページのプレビューを確認してから 表示スタイルを選択して記事にリンクを挿入します。
もう一つは 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 が並んでいる部分は必要に応じて書き換えてくださいね 。