Page 1 / 1 1

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のスタンドアロン・デモを触ってみましたが、超カッコイイ。

Permanent Link | Writebacks (0) | Diary | edit
Tagged as: , ,

Wiki記法プラグイン

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も一応つけるべきか……けっこうあるなぁ。

Permanent Link | Writebacks (0) | Diary | edit
Tagged as: , ,

テスト用エントリー

1980/01/01 Tue 00:00

テスト用エントリーです。内容は保証されません。î &

空中庭園 (文春文庫)

空中庭園 (文春文庫)

空中庭園 (文春文庫)

空中庭園 (文春文庫)

0000000000は、ItemIdの値として無効です。値を変更してから、再度リクエストを実行してください。

0000000000は、ItemIdの値として無効です。値を変更してから、再度リクエストを実行してください。

【送料区分A】【仕入先在庫(2日程度)】PANASONIC CF-T7DW6NJR CF-T7DW6NJR - ECカレント

【送料区分A】【仕入先在庫(2日程度)】PANASONIC CF-T7DW6NJR CF-T7DW6NJR - ECカレントテスト用テキスト

以下Wiki-likeマークアップ

空中庭園 (文春文庫) 空中庭園 (文春文庫)

強調 (em) もっと強調 (strong) さらに強調 (em+strong)

''強調 (em)'' '''もっと強調 (strong)''' '''''さらに強調 (em+strong)'''''
h5

h4

  • 1段階
    • 2段階
      • 3段階
        • 4段階
          • 5段階
          • -6段階
  • 1段階
      • 3段階

-1段階
--2段階
---3段階
----4段階
-----5段階
------6段階
-1段階
---3段階
  1. 数字付き1段階
    1. 数字付き2段階
  2. 数字付き1段階
    1. 数字付き2段階
      1. 数字付き3段階
      2. 数字付き3段階
    2. 数字付き2段階
  3. 数字付き1段階
  • 1段階
  1. 数字付き1段階
    • 2段階
    1. 数字付き2段階
  1. 数字付き1段階
      • 3段階
      1. 数字付き3段階

まままま みみみみ むむむむ

↓通常pre

>|
>||
>>
通常PRE
無整形

無整形
HTMLタグ
éntity
-あいう
--えおか
+きくけ
++こさし

↓スーパーpre

>||
>|
>>
スーパーPRE
''無整形''

無整形
<em>HTMLタグ</em>
&eacute;ntity
-あいう
--えおか
+きくけ
++こさし

引用

引用はじめ(同行) >| >|| インライン
引用内引用 >| >||

引用内の段落(p)

整形して 整形して -あいう --えおか
+きくけ ++こさし

>>引用はじめ('''同行''')
>|
>||
'''インライン'''
>>引用内引用
>|
>||
<p>引用内の段落(p)</p>
整形して

整形して

-あいう
--えおか
<<
+きくけ
++こさし
<<
あいうえおかきくけこ
さしすせそたちつてと
なにぬねの
あいうえおかきくけこ
さしすせそたちつてと
なにぬねの
はひふへほ
まみむめも
符号記号16進数備考
CR (Carriage Return)\r0d本来は「先頭に戻る」というような意味。
LF (Line Feed)\n0a本来は「次の行(真下)へ移る」というような意味。\nはOSによって定義が異なる(Unix:0A Win:0D0A Mac:0D)。
SUB\$1a
TAB\t09
CR
Carriage Return
LF
Line Feed
あいうえおかきくけこ
あいうえおかきくけこ
あいうえお
あいうえお
あいうえおかきくけこかきくけこ
あいうえおかきくけこかきくけこ
あいうえおかきくけこ
あいうえお
あいうえおかきくけこ
あいうえお

普通の段落

もういちどWiki記法開始

閉じないままやめる

Permanent Link | Writebacks (13) | Diary | edit
Tagged as: , , ,

Page 1 / 1 1