【AutoHotkey】Google Chrome 表示中のページのリンクを選択範囲文字で差し込む
昨日に引き続いてリンクを差し込みます。
前回は埋め込みリンクでしたが、今日は選択範囲のリンクを差し込みます。上の行の「昨日に引き続いて」の部分のようにリンクされているやつですね 。
埋め込みリンクはノークリックでも概要がなんとなく分かるというメリットはありますが、邪魔で読みづらくなるデメリットもありますからね。
なんでもかんでも埋め込みリンクというわけにはいきません。
埋め込みリンクの次に使いやすいのは選択範囲のリンク挿入ではないでしょうか?
マニュアル操作での挿入方法は簡単です。
はてなブログの編集フォームのテキストエリアに本文を入力します。
必要な範囲をマウスドラッグで選択します。
リンクボタンをクリックして参照するページのURL を入力したらプレビューします。
リンクの形式の選択範囲を選べるようになります。
今回はこれを自動化します。
と言っても挿入されるリンクの文字列を次のようなスタイルになっていますから、 Auto HOT key のスクリプトでこれを生成するだけです。
[http://ページの URL:title=選択文字列]
参照するページの URL と選択文字列の二つを取得できれば OK ですね 。
動作条件として、ブログ編集ページの入力フォームでリンクを挿入したい場所のテキストを選択していることと、同じ Chrome のウィンドウに参照するページのタブをカレントタブで開いていることを要求します。
出来上がったスクリプトはこちら。
#+=:: 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 Sleep 500 WinActivate,ahk_id %work% Sleep 500 Send,^l Sleep 500 Send,^a Sleep 500 Send,^c WinGetActiveTitle, current Sleep 500 url := clipboard Loop { Send,^{Tab} Sleep 500 IfWinExist,ブログ記事編集 - はてなブログ { Send,^x Sleep 500 t := clipboard u := "[" . url . ":title=" . t . "]" clipboard = %u% Sleep 500 Send,^v break } WinGetActiveTitle, active if current = %active% { Send,^t Sleep 500 SendInput,http://blog.hatena.ne.jp/yasushiito/yasushiito.hatenablog.com/edit Send,{enter} Sleep 3000 Send,^v break } } return
選択文字列をショートカットで切り取りしてクリップボードの内容を変数に取り込んでしまえば、挿入したい場所を失うことなくリンクを挿入できます 。
注意点は前回のリンク差し込むスクリプトと同じです 。
それに加えて一つ問題を発見したので対処します。
はてなブログでページの上の方に表示されている[記事を書く]をクリックして開いた編集フォームでは期待通りに動作しません。
ページタイトルと URL を見ていただければわかりますが、新規エントリにページ遷移していないですね。
新規エントリータブの判定はタイトルの文字列が新規エントリー用のものであることを利用しているのですから当然動きません。
はてなが提供しているプログラムの仕様に漏れがあると言いたいところですが、文句を言っても始まらないので運用で回避します。
はてなブログで新規エントリーする場合は ダッシュボードのサイドメニューから開くか、プルダウンメニューから開きます。