表示ページのほかリンクや画像のリンクタグを表示する、Safari 機能拡張を作ってみました。コンテキストメニューからさまざまな検索サイトで選択テキストを検索する機能もあります。
コンテキストメニューからリンクタグを生成する機能拡張って、Safari には意外とないようです。そこで、自分がほしかったので作ってみました。本当はクリップボードに保存したかったんですが、ポップアップウィンドウに表示してコピーする方式になりました。Safari では JavaScript からクリップボードにアクセスできないようです。
リンクタグを表示するだけでなく、テンプレートによっては選択したテキストで検索したりもできます。
使い方は、Make Link や Create Link など同種の機能拡張と同じで、表示中のページやリンクを右クリックして、コンテキストメニューから「リンクタグを表示」を選択するだけです。
上スクリーンショットはリンクを右クリックしています。リンクや画像以外の場所で右クリックすると、表示ページの URL とタイトルからリンクタグを作ります。
コンテキストメニューから「リンクタグを表示する」を選択すると、リンクタグが書かれたウィンドウがポップアップします。
このウィンドウはテキストをコピーすると自動的に消えます。
環境設定の「セキュリティ」で「ポップアップウィンドウを開かない」が有効となっている場合は、下スクリーンショットのようなウィンドウになります。
「OK」「キャンセル」どちらをクリックしてもウィンドウが閉じます。
表示ページ中のテキストを選択して「リンクを引用付きのテキストで表示する」を選択すると、こんなかんじになります。
コピーしてそのままツイッターなどに投稿できそうですね。
同じ文章を「リンクタグを引用付きで表示する」と下スクリーンショットのようになります。
テンプレートにHTMLタグが含まれていると、選択テキストがエスケープされます。
画像の場合は、画像の URL からリンクタグが作られます。
画像の代替文字列(alt属性)がタイトルとして使われます。
リンクタグを生成するテンプレートはいくつでも登録できます。ただあまり多いとコンテキストメニューが長くなりすぎるので必要最小限にとどめた方がいいでしょう。下記はテンプレートで使える変数です。
※%title% が http:// で始まるとき、リンク先のタイトルを取得します。
※%url% が主要な短縮URLサービスのとき、リンク先の正しい URL を取得します。取得できないことも多いです。
バリエーション
※bit.ly では Access Token が発行されたユーザーのアカウントに作成した短縮 URL の一覧が蓄積されるため、ユーザーごとに bit.ly でアプリケーションを作成し Access Token を取得します。
特殊
例)%foreground%http://www.google.co.jp/search?q=%encoded_text%
リンクタグを表示するテンプレートだけでなく、「CustomSearch」など検索系機能拡張のように、コンテキストメニューから検索することも可能です。
あらかじめ、たくさんのテンプレートが設定されていますので、それらを参考に自由に書き換えてください。
「設定画面を開く」チェックボックスをクリックすると新しいタブが開いて、設定画面が表示されます。
新しいタブでくわしい設定を行います。設定を全て削除すると、デフォルトの設定が復元されます。
お役に立てましたら幸いです! 不具合やご要望などありましたら、この下のコメント欄またはフォーラムでぜひご指摘ください。
はじめまして。素晴らしい機能拡張をありがとうございます。Chrome の「Copy URL+」というのを愛用してまして、Safari でそれに匹敵するものを探してたどり着きました。
二点ほど質問と要望があります。
1)「%text% = %text% の改行を半角スペースに変換」
ですが、一番最初に紹介されている「%text%」と変数に変わりがありませんが、これで正しいのでしょうか。「%text_n%」などのように、なにか別に入るのではないかと思いまして。%title% も同様ですね。
これで正しいのでしたらご容赦ください。
2)URL ですが、自動でショート URL にできればなおありがたいです。先に上げた「Copy URL+」ではそういう機能があるものですから。
とにかく、ほかにも使い切れないほどの様々な機能があって素晴らしいです。ありがとうございました。
勝手ながらこんな感じで紹介させていただきました(^_^)vhttps://plus.google.com/101762488748118968706/posts/2CMW9iNoaT2
あと、いまウインドウが出て「コピーしてください」と出ますが、これを確認だけでその段階ですでにコピーされているようにはできないでしょうか。ほんの一手間なんですが、面倒で(^^ゞ
「リンク+検索」エクステンションを気に入っていただけてうれしいです。
「%text%」と「%title%」はご推察の通りバリエーション中のものと同じです。ただよく考えてみると、「%title_n%」と「%title_br%」はあり得ないですね。。。
短縮URLは短縮のためにアプリを登録しなければならないので、、、、追い追い考えてみますね(^^;。気長に待っていただければ、新バージョンが配布される、かもしれません(^^;。
自動でコピーできないのは Safari の仕様でして、止む無く「コピーしてください」という表示にしています。Safari では JavaScript からクリップボードにアクセスできない仕様となっており、Flash を利用するなどしない限りクリップボードにデータを格納できないようです。
エクステンションの紹介ありがとうございました。お役に立てましたら光栄です。
また何かお気づきの点などありましたらぜひご教示ください。お待ちしておりますm(_ _)m。
遅くなりましたが、早々と御対応いただき本当にありがとうございます!これでますます便利に使うことができます。
自動でコピーできないのはそんな理由だったんですね。
お言葉に甘えましてもうひとつ要望です。設定が30もできるのはいいのですが、正直、デフォルトの設定で使わないものも多く、それも含めてコンテキストメニューに常時全部表示されるのは邪魔なところもあります(すみません)。
新しいものを設定する際も、ブランクなのは一番下なのでそこに設定するのが普通なのでしょうが、僕はリストの一番上に自分が新しく設定したのが出てきてほしかったので、もともとあった4つほどをひとつひとつコピペして後ろに移しました。
たとえばリストにチェックマークを付けられて、付けたものだけ表示される、みたいなことができればとても便利だと思うのです。
「メニュー名」「テンプレート」が一行ずつ並ぶ設定入力も正直に言うとわかりやすいとは言えません。
使わせてもらっているのに申し訳ないのですが、ご検討いただければうれしいです。
自分でも設定しにくいとは思っていたのですが、環境設定パネルの中にある設定画面はあまり自由度がないため、(主に自分が使う分にはたまにめんどくさいだけなので)こんなもんだろうと諦めていました(^^;。
ご意見を入れて別画面で設定するようにしてみましたが、どうでしょうか。あまり慣れないことをしているので不具合があるかもしれませんが、また何かお気づきの点がありましたらぜひご教示くださいm(_ _)m。