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を使うよりは頻度が低いと思うので、よしとする。