PEAR::Text_Wikiの記法拡張について
について書こうと思ってAPIやらデフォルトの記法について詳しくまとめてあるサイトが、さっきから急に見えない
いや見れるんだけど記事が削除されてるぽい。URLは以下。いちおうgoogleのキャッシュで見れるけど。。。
http://wiki.ciaweb.net/yawiki/index.php?area=Text_Wiki
\(^o^)/
うーん、このサイトを管理してるPaul M. JonesさんはText_Wikiの開発者みたいなんだけど
PEARのメンテナーのところを見ると今はinactiveになっている。
とりあえず、データが残ってないようであれば後日、メールで問い合わせてみようと思う。
CakePHPのヘルパーからPEAR::Text_Wikiを使ってお手軽変換
前提としてwiki記法で書かれたテキストをDB等に保存してるとする。
んでviewで出力するときにこんな感じでwiki記法をhtmlに変換できたらお手軽で便利そう。
<h1>Wikiデータ</h1> <?php echo $wiki->transform( $wikiString ) ?>
こんなヘルパーを実装する方法を説明します。
1.PEAR::Text_WikiをCakephpにインストール
PEARライブラリをCakephpにインストールする方法については、方法も何種類かあるし、いろんなところに情報があると思うので省きます。
vendorsから呼び出してでText_Wikiを利用できる状態にしてください。
2.wikiヘルパーの作成
app/views/helpersにwiki.phpを作成
<?php class WikiHelper extends Helper { function transform($text){ //PEAR呼び出し部分、ここはCakePHPにどのようにPEARを導入してるかによって異なるので適宜書き換えてください vendor('pear_ini'); include_once('Text/Wiki.php'); $wiki =& new Text_Wiki(); //日本語文字化け対策 $wiki->setFormatConf('Xhtml', 'translate', HTML_SPECIALCHARS); //変換部分 $xhtml = $wiki->transform($text,'xhtml'); return $xhtml; } } ?>
2.使用例
view部分で$wikiStringにwiki記法で書かれたテキストが入っているとすると
<h1>Wikiデータ</h1> <?php echo $wiki->transform( $wikiString ) ?>
でxhtmlに整形されたデータが出力されます。
PEAR::Text_Wiki
このモジュール拡張性も優れてるし、使いやすいしなのになんでこんなに広まってないんだろう。
どんぐらい便利かというと、これ使えばwiki同士の相互変換アプリケーションとか簡単に組めそうな感じ。
が、PukiWiki記法やHatena記法の拡張が、まだ作られてない。。。
とりあえず、しばらく使ってみて、自分が使いやすいようにちょこちょこ拡張なんかも作っていくかも。
コードリーディングについて思うこと
prototype.jsをgihyo.jpの連載を参考に読んでいて感じてるのは
コードリーディングって教材として解説があるとぜんぜん効率が違うなぁということ。
(もちろんベストはコード書いた本人から解説を聞けることだろうけど)
大学の研究でNICドライバのコードを読んでるけど、一番時間かかるのが
今読んでいる部分が「何をするための処理」なのか、その部分のコードの目的、意図を理解すること。
それがわからないと、コードの内容を理解できない。
逆にわかると、一気にすらすら読める。
研究で読んでるNICドライバはコメントによる注釈が少めなので
「何をするための処理」なのかを理解するためにはソースコードを眺めないとわからない。
ドキュメントも、英語、日本語ともにほぼない。
一方prototype.jsではコードを解説してくれてるサイトがわりと多いので
処理ごとにそこが「何をするための処理」なのかをソースコードを読まなくても解説を読めば理解できる
つまり、読む部分が行っている処理の目的、意図がわかったあとでソースコードを読むことができる。
これは、手探りで読むのに比べてはるかに楽だ。
コードの解説を書いてくれてる先人達に感謝感謝。
ということで僕も、手探りの状態でコードリーディングしなきゃいけない状況になったときは
後の人たちのためにドキュメントを残していこうと思う。