Hatena::ブログ(Diary)

奇妙に、そしてささやかに。 このページをアンテナに追加 RSSフィード

2007-10-22

Firefox Add-on :: Make Link 機能追加版

下記の機能追加版は本家に統合されました。詳しくは

Make Link 8.06をお使いください。 - 奇妙に、そしてささやかに。
http://d.hatena.ne.jp/bizarre_sprout/20080609/makelink806

をご覧下さい。(6/10追記)

作者にメールしたら丁寧に「忙しいからフォーラムで質問してみて!」って言われた。フォーラムで質問するのが面倒なので、勉強して直してみた。


ちなみにこのアドオンの便利さについては

Make Linkが完全体に - 奇妙に、そしてささやかに。
http://d.hatena.ne.jp/bizarre_sprout/20070330/1175258531

に書いてます。


便利なんだけど、引用をHTMLでやる時に改行が全て半角スペースにされるのは困っていたので直してみた。

従来の%text%に加え、改行をそのまま反映する%text_n%と<br>として反映する%text_br%という変数を付け加えた形だ。

ブログでの引用などに便利だと思う。

ファイルは>ここを左クリックでファイルを開いてインストール


ちなみに今まで使ってた人は、リンク規則の情報はプロファイルフォルダのpref.jsに入っていて、前のアドオンを消して上のアドオンで上書きしても保持されます。心配ならば、perf.jsで"net.soylentred.makelink"で検索をかけてバックアップをとっておくと良い。


参考までに以下に拡張機能の直し方を書いておく。


プログラムソースへアクセス

プロファイルフォルダのextensionsのフォルダから探した。"{0B6B0D55-DFAC-4006-AEE6-25667F55A2A8}"って名前のフォルダだった。chromeの中のmakelink.jarは実体はzipファイルなのでLhaPlusかなんかで解凍。中身が見える。


JavaScriptを直す

JavaScriptの知識はあるので、ちゃっちゃか直す。

jarの中身のcontent/makelink/にあるmakelink.jsとlib.jsが対象。

lib.jsは

function getSelectedText( node )

function getSelectedText( node , what_n )

にし、

// collapse white space:
selection = selection.replace(/[ \n\r\t]+/g, " ");

// collapse white space:
selection = selection.replace(/[ \r\t]+/g, " ");
// replace \n to what_n:
selection = selection.replace(/(\n)/g, what_n);

に直すだけ。文字列を取ってきて整形する関数を引数から"\n"の整形に関して指定するようにしている。

makelink.jsは詳細は省くけど、

case "text":
copyText += info['text'];
inVar = false;
break;

をコピーして%text_n%,%text_br%の分を作り、その内容を下の方で定義している。

if ( ( selection = getSelectedText( target , " " ) ) != "" ) {
// some text is selected:
info['text'] = selection;
info['text_n'] = getSelectedText( target , "\n" );
info['text_br'] = getSelectedText( target , "<br>\n" );
info['url'] = window.content.document.location.href;
info['title'] = window.content.document.title;
}

みたいな感じで。もともとのgetSelectedTextの引数を2つに増やすのもお忘れなく。

これは選択文字列のあるケースだけど他のケースは%text%と同じになるようにした。


作ったものを確認

contentとlocaleをzip圧縮してmakelink.jarに名前を変えて置き換える。

挙動を確認。上手く動いたのでめでたしめでたし。


ついでにヘルプの追加と日本語localeの追加

helpはcontent/makelink/help/defininglinktypes.htmlなので適当に直した。

localeはlocaleフォルダの中のen-USをコピーしてja-JPに変更し、中のrdfファイルもs/en-US/ja-JP/する。

dtdファイルは適宜訳した。


それからchrome.manifestに

locale makelink ja-JP jar:chrome/makelink.jar!/locale/ja-JP/makelink/

を追加。(参考:Chrome Registration - MDC

install.rdfからem:locale="locale/en-US/makelink/"を削除。


完成

localeも変えたしjarを作り直して、xpiもフォルダの中のをzip圧縮→xpiに名前変更して完成。

著者情報とか何にも入れてないけどね。


僕はblosxomのブログでの引用に

<dl><dt>%TITLE%</dt>
<dd><a href="%URL%">%URL%</a>
<blockquote><p>%text_br%</p></blockquote>
</dd></dl>

を良く使ってます。

大きな引用はこれで、小さな引用はシンプルなAタグで。



本当は著者情報とかバージョンとか直すべきかも知んないけど良くわかんないからとりあえず。

夜が明けてしまった

24時間でパン一枚しか食べてなかった。

家帰って親子丼を作ってたらふく食べるのだ☆

体は疲れてるけど、精神はちょっと元気めです。


物凄くファイバーミニッツが懐かしい気分ですから、

食物繊維も足りてないのかも。

買っておいた薩摩芋も食べよう。


そういえば、薩摩では薩摩芋のことを唐芋というそうな。