PHP_Blog記法のdtにurlを入れられるようにした

PHP Blogではテキスト整形プラグインを使用すると、記号を使ってマークアップすることが出来るようになる。

定義リストは

:定義語1:定義内容1
:定義語2:定義内容2

と書くことで

<dl>
<dt>定義語1</dt><dd>定義内容1</dd>
<dt>定義語2</dt><dd>定義内容2</dd>
</dl>

とマークアップされる。

だけど、「:」で区切ると、dtの内容に「http://~」のような「:」を含む単語が使えない。どうしても使いたい場合は記法を使わずに、htmlタグを入力することになる。
けど、面倒なので、プラグインを修正してみた。

今回は「:定義語1|定義内容1」のように、「|」でdtとddの内容を区切るようにした。
modifier.text_format.phpの93行目あたりに

} elseif (preg_match("/^\:([^\:]+)\:(.+)$/", $line, $matches)) {
$text .= "<dl><dt>" . $matches[1] . "</dt><dd>" . $matches[2] . "</dd></dl>";

とある。正規表現を用いて、dtとddでマークアップする単語を変数に格納しているところ。これを

} elseif (preg_match("/^\:([^\|]+)\|(.+)$/", $line, $matches)) {
$text .= "<dl><dt>" . $matches[1] . "</dt><dd>" . $matches[2] . "</dd></dl>";

とする。
ちなみにこれだと今度はdt内に「|」を含めることが出来なくなる。けどurlを使うよりは頻度が低いと思うので、よしとする。

追記(2009/7/14)

現在このページはPHP Blogを使っていません。PHP BlogはPHP Laboにて配布されているCMSです。