nDiki : HTML::Parser
スポンサード リンク
Related term
2004年8月19日 (木)
■ ActivePerl 5.6.1 Build 638 にバンドルされているモジュールとライセンス

ExtUtils::Installed でリストアップしてチェック。
| a | ActivePerl::DocTools |
| ActiveState::RelocateTree | |
| a | ActiveState::Rx |
| * | Archive::Tar |
| o | Archive::Zip |
| * | Compress::Zlib |
| o | Data::Dump |
| * | Digest |
| * | Digest::HMAC |
| * | Digest::MD2 |
| * | Digest::MD4 |
| * | Digest::MD5 |
| * | Digest::SHA1 |
| * | File::CounterFile |
| * | Font::AFM |
| * | HTML-Tree |
| * | HTML::Parser |
| * | HTML::Tagset |
| o | IO::Zlib |
| * | MD5 |
| * | MIME::Base64 |
| * | Net (libnet) |
| * | PPM |
| PPM-Agent-Perl | |
| PPM::Shell | |
| * | Perl |
| * | SOAP::Lite |
| * | Storable |
| o | Test::Simple |
| o | Text::Autoformat |
| * | Tk |
| * | URI |
| o | Unicode::String |
| * | Win32 (libwin32) |
| a | Win32::AuthenticateUser |
| * | XML::Parser |
| * | XML::Simple |
| * | libwww-perl |
'*' は Copyright.html で オリジナルがオープンソースのものとして列挙されているもの。 'o' は列挙されていないが、オリジナルが Perl と同じライセンスか The Artistic License のもの。 'a' は ActiveState の Copyright があるもの (ActiveState Community License)。 それ以外は明記がないもの。
PAR でパッケージ化するには、Perl と同じライセンスの(あるいは再配布の問題のないもの)もののみストールしてある状態にしておき、PAR 化した中身に
- ActivePerl/*
- ActiveState/*
- PPM/* (一部)
- ppm-conf/*
- Win32/AuthenticateUser.pm
が含まれていないかをチェック。
- 自前 PPM リポジトリの管理 (2006-07-03)
- PAR + ActivePerl で実行形式ファイルを作った時のライセンスは? (2004-07-21)
- PAR に関する ActivePerl のライセンス (2006-06-16)
- RPC::XML のかわりに XMLRPC::Lite (2004-08-31)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
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 フラグなし)でも問題ないようだし、文法的に正しくなくてもきちんとサニタイズできているようだ。
ということで、これを採用することに。
どの要素・属性を許すかはまだきちんと決めかねる。 当面は様子をみながら、調整していく予定。 サニタイザは設置者が置き換えられるようにプラガブルにしておかねばならないな。
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- Wikiの文法の標準化 (2004-02-10)
- [ WiKicker ] WiKicker へ脚注機能追加 (2004-02-10)
- [ WiKicker ] form/list の paragraph から... (2003-05-03)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.019626s / load averages: 0.27, 0.16, 0.10
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




■ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
■ Google Buzz はよろしければ Naney の Google プロフィールからどうぞ。