JavaScriptでWiki整形するライブラリ WikiRender
2006/05/05 Fri 17:59
先週から作っていたJavaScriptライブラリを公開します。Wikiライク、というよりもむしろはてなダイアリーライクな変換エンジンです。
wikirender.jsをロードし、wikiRender.render(String)にテキストデータを渡すと、ルールに従って整形した結果が返されます。整形ルール(記法)についてはデモページのフォームを参考にしてください。
document.getElementById('preview').innerHTML = wikiRender.render( document.getElementById('input').value );
返されるのはDOMオブジェクトではなくHTMLタグを含んだ文字列なので、innerHTMLに入れてやる必要があります。ZEROBASEのDOMコードジェネレータなどと組み合わせればDOMエレメントとしても処理できるかもしれません。
wikiRender.interWikiNameオブジェクトにプロパティを追加することで、InterWikiNameを追加設定することができます。
wikiRender.interWikiName.WikiName = [ URI prefix, URI suffix, UTF8_encode_flag (boolean), encodeURIComponent_flag (boolean) ];
3番目の真偽値で値をUTF-8にエンコードするかどうか、4番目の真偽値ではそのエンコードにencodeURIComponent()関数を使うかどうかを選択します。4番目がfalseの場合はencodeURI()関数でエンコードされます。
デモページでは以下ようなInterWikiNameを設定しています。デモページで使用しているwikidemo.jsも参考にしてください。
wikiRender.interWikiName.GoogleSrchJa = [ "http://google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q", "", true ]; wikiRender.interWikiName.AmazonJP = [ 'http://amazon.jp/exec/obidos/ASIN/', '/bdp-22/ref=nosim', false ];
また、wikiRender.headingBaseプロパティの数値を変更することにより、Hタグの開始値を変更することができます。見出しは2段階まで使えるようになっており、デフォルトでは*でH1、**でH2に変換されます。
wikiRender.headingBase = 4;
デモページでは上のように設定しているので、*がH4、**がH5に変換されます。こちらもwikidemo.jsを参考にしてください。
Download: wikirender.js 0.0.1 (2006-05-05)
Download: wikirender.js 0.0.2 (2006-05-06)
ライセンスは、いわゆるMIT License (X11 License)とします。
Windows XP上のIE 6.0、Firefox1.5.0.2、Opera 8.54、Netscape 7.1で動作することを確認しました。
追記(05/06):いくつかのバグを修正した0.0.2を公開しました。
そして、ゆうすけさんがJavaScriptライブラリ検索 - JSAN Searchを公開されていたのを発見し、検索してみたら案の定Wikiwygを大発見。まぁ、あっても自分で作るんですけどね。Wikiwygのスタンドアロン・デモを触ってみましたが、超カッコイイ。