nDiki
2005年9月13日 (火)
■ [ WiKicker ] hell mode - HTMLタグ付けブロックの導入

WiKicker では、直接 WikiPage にHTMLタグを記述して表示に反映させる機能を提供していない。
@ HTMLタグ付けを許すのは嫌だ
HTMLタグ付けを許すと
が起きやすくなるし、ページのソースの単純さが大きく失われてしまう。 レンダリングしてHTMLにした時に、正しいHTMLを出力されることを保証することが困難になるとともに、HTML以外へのレンダリング/コンバートもかなり難しくなる。
この機能を導入すると、Wiki の良さの半分(あるいはもうちょっと沢山か、もうちょっと少なめ)が失われてしまう。
@ でも
とはいえ欲しいという声があることも事実。 オープンな WikiForum では全くお勧めできないが、閉じたユーザグループの中ではまぁ必要悪なのかもしれぬ。
また正直ちょっとした表現を追加したい時に、WiKicker 用のプラグインを書くのも面倒だというのは確かにある。
WiKicker では開始・終了マーカによる複数行にまたがるブロックを表すための文法は(閉じ忘れを避けるため)意図的に排除してある。 このため、複数行にわけて書きたいような長いデータを扱うような拡張も導入しにくい。
ちょっと手抜きして「生HTML書けちゃえば」という誘惑はなくはない。
@ 大人の事情
ということでまあ自分に言い訳をしつつ、標準ではオフというかたちで HTMLタグ付けブロックを導入することにした。 スイッチは hell mode とかにしたい (今回は syntax.html というプロパティ名にしたけれど)。
記法は単純に、
normal wiki syntax text... <html> html tagged text... ... </html> normal wiki syntax text...
のように行頭が <html> である行から、行頭が </html>である行までをHTMLタグ付けブロックとすることに。 このため、<html>ではじまる段落が書けなくなるという小さな非互換が発生するが、いたしかたない。
@ サニタイズ
HTMLタグを直接使えるようにするとはいえ、全てを許してしまうのはあまりに危険で非人道的すぎる。 有効なHTMLタグや属性は限定的であるべきだ。
このあたりの処理は面倒だが、幸いにしてCPANにモジュールがある。 今回は HTML::Scrubber を使うことにした。 HTML::Parserを使って parse し、指定したルールに従ってサニタイズしてくれる。
ちょっと使ってみた範囲では日本語(UTF-8、UTF8 フラグなし)でも問題ないようだし、文法的に正しくなくてもきちんとサニタイズできているようだ。
ということで、これを採用することに。
どの要素・属性を許すかはまだきちんと決めかねる。 当面は様子をみながら、調整していく予定。 サニタイザは設置者が置き換えられるようにプラガブルにしておかねばならないな。
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- [ WiKicker ] form/list の paragraph から... (2003-05-03)
- Wikiの文法の標準化 (2004-02-10)
- 無制限 HTML タグ付けブロックを使って nDiki に Google ... (2007-08-23)
■よく検索されるキーワード
torrent(84) windows(45) 書き方(43) 提案書(41) perl(39) linux(35) x31(27) 動画(25) 画像(25) usb(25) アジェンダ(25) thinkpad(22) 設定(22) cvs(20) 使い方(20) debian(19) ドラマ(18) 壁紙(18) 影舞(16) svn(15) subversion(15) アジェンダとは(15) tc-1(15) ganttproject(15) ダイソー(14) mp980(13) cwrsync(13) 写真(13) java(13) rcs(12) サンプル(12) ノート(11) インストール(11) 手帳(11) ヨドバシカメラ(11) make(11) gtd(11) ボールペン(10) 方眼(10) ssh(10) thinkingrock(10) ヨドバシ(10) 修理(10) firefox(9) バックアップ(9) 秋葉原(9) apache(9) リフィル(9) wiki(9) tortoisesvn(9) フォーマット(9) emacs(8) 無印良品(8) ubuntu(8) log4perl(8) 無料動画(8) ヒカル小町(8) minolta(8) ガントチャート(7) 変換(7) naney org wiki(7) ecj-jk10(7) 日本語(7) a6(7) flex(7) truecrypt(7) フィルムスキャン(7) システム手帳(7) djunit(6) skype(6) ibm(6) c#(6) 作成(6) gmail(6) ダウンロード(6) イグアナの娘(6) 差分(6) 提案書の書き方(6) 生年月日(6) 2009(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.20584s / load averages: 0.34, 0.34, 0.27
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク