やりたいことは表題の通り
失敗:Extension:AlternateSyntaxParserをインストールする
ざっと検索すると、Extension:AlternateSyntaxParserというのがみつかる。が、どうもこれは最近のMediaWikiには対応していない様子。使うと、以下の様なエラーが出て怒られる。
seh. MediaWiki1.18でAlternateSyntaxParserが使えない
PHP Fatal error: Call to a member function addMessage() on a non-object in [インストール先]/AlternateSyntaxParser/AlternateSyntaxParser.php on line 95
成功:Extension:MarkdownSyntaxをインストールする
仕方ないので、もう少し探すと別のExtentionが見つかるので、これをインストールする。
seh. Extension:MarkdownSyntax
この際の注意点は以下
・Markdownのライブラリのバージョン
・タイトルがMarkdonwとして解釈されてしまう
Markdownのライブラリのバージョン
インストール時に、別途Markdownのライブラリをインストールする必要がある
seh. php Markdown
この際、最新版のPHP Markdown Lib 1.3をインストールしてしまうと動かない。
ここはおとなしく「CLASSIC VERSION: PLUGIN FOR WORDPRESS, SMARTY, ETC.」の方をインストールする。
ついでにExtension:MarkdownSyntaxではExtra の方が使えないらしいので注意。
タイトルがMarkdonwとして解釈されてしまう
Extension:MarkdownSyntaxをインストールするとタイトルにPタグがついてしまう。これはどうもタイトルもMarkdownとして解釈してしまう → 一行のテキストはPタグとして変換 → そのままtitleタグに使われてしまう。という流れらしい。
対応するには、Extension:MarkdownSyntaxで対応するか、別の場所で対応するかの2択。
今回はExtension:MarkdownSyntaxで対応する
Extension:MarkdownSyntaxで対応する場合###
改行を含まないテキストの場合はMarkdownに変換しなければ良い
ただし、この方法で漏れがないかってのはよくわからない。
function wfProcessMarkdownSyntax($parser, $text) {
// 改行を含まない場合はMarkdownとして変換せずに終了
if(! preg_match("/[\r\n]/", $text) ) {
return true;
}
別の場所で対応する場合###
どうもMediaWikiでタイトル関連を扱っているのは以下のファイル
includes/OutputPagh.php, line 847
なので、ここでタグを除去してしまえばMarkdown関係なくタグが消える
ただし、タグ的なものがタイトルに含まれる場合があるときは問題
public function getHTMLTitle() {
return strip_tags($this->mHTMLtitle);
}