Pukiwiki 1.5.4のMarkdown記法対応を強化

個人的に改造して遊んでいるPukiWiki改造版「PukiWiki 1.5.4 + Markdown」をv0.4に更新しました。
以前の記事はこちら。
ページごとにPukiWiki記法とMarkdown記法を使い分けられるのが特徴で、今回のアップデートでMarkdownエディタの選択機能が入りました。ドキュメントも大幅に書き直しています。
SimpleMDEからEasyMDEへ
見た目に大きな変化はSimpleMDEからEasyMDE v2.20.0への移行でしょうか。SimpleMDEは2017年から開発が止まっていて、セキュリティアップデートも出ない状態でした。EasyMDEはその後継プロジェクトで、現在も活発に開発されています。ある程度の互換性があるので移行は楽でした。実用性は高いと思います。
ついでにlib/html.phpの構文エラーなど多数のバグも直しました。直したと言っても、自分では全くコードは打っておらず、Claude codeに書いてもらってchatGPTのCodex Cloudに確認をしてもらっただけなのですが。
複数行プラグインに対応
今回、前バージョンでは使用できなかった複数行プラグインに対応しているはずです。Pukiwiki内部的には複数行プラグインを利用した場合はその引数を1行ずつに分割して並べ直してプラグインに渡して処理を行い、そのレスポンスをまた複数行に分割するというような処理が行われています。前回までのMarkdown対応の場合は描画のかなり早い段階でMarkdownパーサーに文章を渡してしまうので、この1行ずつに分割という処理を挟む余地がなくて対応が難しかったのです。しかし、これもClaude Codeに相談したらすぐに解決してしまいました。
プラグイン互換性とその他
Markdown記法モードでも、PukiWikiのプラグインは全部使えます。ブロックプラグインは `#plugin` を `!plugin` に変えるだけで、インラインプラグインは `&plugin` のままです。既存のPukiWikiページをそのまま残しながら、新規ページだけMarkdownで書けるのが便利なんですよね。全ページを書き換えなくて済むので。
Markdownパーサーは相変わらずParsedown 1.7.4とParsedownExtra 0.8.1を使っています。テーブルや脚注、定義リストといった拡張記法も使えて、GitHub Flavored Markdownともだいたい互換性があります。セキュリティは、SafeModeで生HTML埋め込みを防いで、URLホワイトリストで危険なスキーム(javascript:とかdata:とか)をブロックしています。プラグイン実行も例外処理で保護しているので、一応安全な方だと思います。
個人的なWiki環境を改善するために始めたプロジェクトですが、同じような課題がある人には参考になるかもしれません。GitHubで公開しているので、フィードバックがあれば歓迎します。たくさんバグも残っているかもしれません。不具合を見つけた方は教えてください。

ドキュメントを書き直した
README.txtがいつの間にか古い情報だらけになっていたので、Markdown形式のREADME.mdに全部書き直しました。新しいREADME.mdには、セットアップからトラブルシューティング、拡張Markdown記法の説明まで一通り入れています。
この記事に対するコメント
最新の10件を表示しています。 コメントページを参照
更新日:2025-11-19 閲覧数:206 views.