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のスタンドアロン・デモを触ってみましたが、超カッコイイ。
2006/04/08 Sat 01:37
今日はあまりにもやる気が出ないのでWiki記法プラグインを作ってました。
yukiwikixプラグイン(公式が消滅してるようなのでリンクなし)も選択肢としてはあったけど、記法を自分で定義したいことと、YukiWikiをインストールするのが冗長な気がしたこともあって自作することに。
とりあえず以下の機能を実装。
-
段落
-
強調(ボールド・イタリック)
-
いまのところYukiWiki互換(日本式)でbとiを使用。でもクォート2つでem、3つでstrongにするかもしれない。
-
リスト(数字あり・なし)
-
リンク
-
PRE(20060408)
ToDoとしては……
-
引用(blockquote)
-
テーブル(table)
-
定義リスト(dl, dt, dd)
-
改行(br)
-
消去線(text-decoration: line-through)
-
InterWikiName
くらいかな。HTMLタグの扱いなど考えるところも多そうだけど、少しずつ作っていこう。
追記(4/8):preやblockquoteのマークアップは、はてなダイアリー互換にする方向で。とりあえず普通のpre(スーパーpreじゃないほう)だけ実装。
相変わらずTBスパム食らってますな……少し設定を絞るか。まぁいくらチューンしてもイタチごっこなんだろうけど。
追記(4/20):とりあえずToDoにある項目は消去線以外すべて実装済み(4/14時点)。なかなかいいかんじ。あと考えられるのはPukiWikiにあるBR、TABLEのCOLSPAN/ROWSPANと、イメージ、InterWikiName、あとHnも一応つけるべきか……けっこうあるなぁ。
1980/01/01 Tue 00:00
テスト用エントリーです。内容は保証されません。î &

- 空中庭園 (文春文庫)
- 角田 光代
- 文藝春秋 / ¥ 500 (2005-07-08)
- 発送可能時間: 通常24時間以内に発送

- 空中庭園 (文春文庫)
- 角田 光代
- 文藝春秋 / ¥ 500 (2005-07-08)
- 発送可能時間: 通常24時間以内に発送
0000000000は、ItemIdの値として無効です。値を変更してから、再度リクエストを実行してください。
0000000000は、ItemIdの値として無効です。値を変更してから、再度リクエストを実行してください。

テスト用テキスト
以下Wiki-likeマークアップ
強調 (em) もっと強調 (strong) さらに強調 (em+strong)
''強調 (em)'' '''もっと強調 (strong)''' '''''さらに強調 (em+strong)'''''
h5
h4
-1段階
--2段階
---3段階
----4段階
-----5段階
------6段階
-1段階
---3段階
-
数字付き1段階
-
数字付き2段階
-
数字付き1段階
-
数字付き2段階
-
数字付き3段階
-
数字付き3段階
-
数字付き2段階
-
数字付き1段階
-
数字付き1段階
-
-
数字付き2段階
-
数字付き1段階
-
-
-
数字付き3段階
まままま
みみみみ
むむむむ
↓通常pre
>|
>||
>>
通常PRE
無整形
無整形
HTMLタグ
éntity
-あいう
--えおか
+きくけ
++こさし
↓スーパーpre
>||
>|
>>
スーパーPRE
''無整形''
無整形
<em>HTMLタグ</em>
éntity
-あいう
--えおか
+きくけ
++こさし
引用
引用はじめ(同行)
>|
>||
インライン
引用内引用
>|
>||
引用内の段落(p)
整形して
整形して
-あいう
--えおか
+きくけ
++こさし
>>引用はじめ('''同行''')
>|
>||
'''インライン'''
>>引用内引用
>|
>||
<p>引用内の段落(p)</p>
整形して
整形して
-あいう
--えおか
<<
+きくけ
++こさし
<<
| あいうえお | かきくけこ |
| さしすせそ | たちつてと |
| なにぬねの | |
| あいうえお | かきくけこ |
| さしすせそ | たちつてと |
| なにぬねの | |
| はひふへほ |
| まみむめも |
| 符号 | 記号 | 16進数 | 備考 |
| CR (Carriage Return) | \r | 0d | 本来は「先頭に戻る」というような意味。 |
| LF (Line Feed) | \n | 0a | 本来は「次の行(真下)へ移る」というような意味。\nはOSによって定義が異なる(Unix:0A Win:0D0A Mac:0D)。 |
| SUB | \$ | 1a |
| TAB | \t | 09 |
- CR
- Carriage Return
- LF
- Line Feed
| あいうえお | かきくけこ |
| あいうえお | かきくけこ |
| あいうえお |
| あいうえお |
| あいうえお | かきくけこ | かきくけこ |
| あいうえお | かきくけこ | かきくけこ |
| あいうえお | かきくけこ |
| あいうえお | |
| あいうえお | かきくけこ |
| あいうえお |
普通の段落
もういちどWiki記法開始
閉じないままやめる