スタッフブログ
haltです。今日は、はてな記法を解釈するライブラリ、HatenaSyntax ( http://openpear.org/package/HatenaSyntax )を紹介します。
HatenaSyntaxは、はてなダイアリーで使われている、はてな記法 ( http://hatenadiary.g.hatena.ne.jp/keyword/%e3%81%af%e3%81%a6%e3%81%aa%e8%a8%98%e6%b3%95%e4%b8%80%e8%a6%a7 ) を解釈します。
はてな記法を利用する事で、ユーザは、簡単な記号を書くだけで、HTMLの知識がなくても複雑な表現する事ができ、
サービス提供者側は、HTMLタグを直接使わなくても多様な表現ができる分、脆弱性発生のリスクを抑える事ができます。
(もちろんはてな記法の解釈に問題があって脆弱性が発生する可能性は受け入れる必要がありますが)
HatenaSyntaxの特徴は、「少ない行数で使える事」です。最低限の変換ができるだけでよければ、以下のコードで動きます。
HatenaSyntax.phpをrequireした後にHatenaSyntax::render()を実行するだけです。
ただし、HatenaSyntaxはPEGライブラリに依存しているので、こちらも同時にインストールしておく必要があります。
私は過去にPukiWiki記法をパースするライブラリを書いた事があるのですが、すべての構文をカバーする気力がなく、途中で力尽きました。
有名な記法ならなんでもよかったので、その時にHatenaSyntaxがあれば大幅に工数を減らせたのになーと昔の事を思いだしました。
HatenaSyntaxは、はてなダイアリーで使われている、はてな記法 ( http://hatenadiary.g.hatena.ne.jp/keyword/%e3%81%af%e3%81%a6%e3%81%aa%e8%a8%98%e6%b3%95%e4%b8%80%e8%a6%a7 ) を解釈します。
はてな記法を利用する事で、ユーザは、簡単な記号を書くだけで、HTMLの知識がなくても複雑な表現する事ができ、
サービス提供者側は、HTMLタグを直接使わなくても多様な表現ができる分、脆弱性発生のリスクを抑える事ができます。
(もちろんはてな記法の解釈に問題があって脆弱性が発生する可能性は受け入れる必要がありますが)
HatenaSyntaxの特徴は、「少ない行数で使える事」です。最低限の変換ができるだけでよければ、以下のコードで動きます。
require_once 'HatenaSyntax.php';
$str = '
* header
';
echo HatenaSyntax::render($str);
HatenaSyntax.phpをrequireした後にHatenaSyntax::render()を実行するだけです。
ただし、HatenaSyntaxはPEGライブラリに依存しているので、こちらも同時にインストールしておく必要があります。
私は過去にPukiWiki記法をパースするライブラリを書いた事があるのですが、すべての構文をカバーする気力がなく、途中で力尽きました。
有名な記法ならなんでもよかったので、その時にHatenaSyntaxがあれば大幅に工数を減らせたのになーと昔の事を思いだしました。