レ点腫瘍学ノート

Toppukiwikiカスタマイズ箇所2025

Markdown記法とPukiwiki記法に両対応のPukiwiki改造 v0.2

pukiwiki

以前にPukiwikiを無理やりMarkdown記法とPukiwiki記法に両対応させたという記事を公開していました。しかし、いくつかの未対応機能がありました。なかなか時間が取れずそのまま放置していましたが、今回、ChatGPT(codex)の力を借りて修正版(v0.2)をリリースいたしました。

前回の記事

Pukiwiki 1.5.4も無理やりMarkdown記法とPukiwiki記法に両対応させた - レ点腫瘍学ノート
pukiwiki 以前にPukiwiki 1.5.3も無理やりMarkdown記法とPukiwiki記法に両対応させたという記事を公開していました。今回はそのPukiwiki 1.5.4版です。 Pukiwiki 1.5.3も無理やりMarkdown記法とPukiwiki記法に両対応させたpukiwiki markdown

Pukiwiki ではどうしても書き方が馴染めないと言う人が少なくない上にMarkdownエディターはいろいろな優れたアプリがどんどん増えていて自分に合った使いやすいものがかなり選べる状態になっています。その考えからPukiwiki 1.5.4を無理やりMarkdown記法とPukiwiki記法の両方に対応させたものが前回の記事のものになります。最低限の機能は実装していましたが、いくつかの部分で未対応の状態を残していました。

前回未対応だった主な機能

今回は上記の不具合のうち、複数行プラグインとプレビュー画面での問題を改善したバージョンv0.2を公開します。ベースとなったPukiwikiのバージョンは1.5.4です。

オリジナルのPukiwikiとの違い

使い方

Markdownパーサーの準備

Markdown記法を使うにはMarkdownパーサーが必要です。今回はerusev/parsedownを利用しました。plugin/vendorフォルダの中にこのパーサーを置いています。Markdownパーサーは他にも幾つかの種類があるので好みのものを使えば良いと思います。下記の記事も参考にしてください。

Home · erusev/parsedown Wiki
Better Markdown Parser in PHP. Contribute to erusev/parsedown development by creating an account on GitHub.
https://github.com/erusev/parsedown/wiki/
Pukiwiki 1.5.3も無理やりMarkdown化した - レ点腫瘍学ノート
pukiwiki markdown もともとpukiwiki 1.5.0を無理やりMarkdown対応したという記事がqiitaにありました。確かにタイトルにあるとおり無理やり腕力でMarkdownにしたものなのでやや強引な感じは否めませんが、非常に興味深いものです。Pukiwikiを無理やりMarkdown記法に変えてみた

pukiwiki.ini.phpの準備

今回の改良を有効にするためにpukiwiki.ini.phpに$markdown_safemodeと$use_simplemdeの設定項目が必要です。以下の設定項目をpukiwiki.ini.phpに書き加えてください。

/////////////////////////////////////////////////
// Pukiwiki Markdown
// https://github.com/m0370/pukiwiki153_md
// https://github.com/sparksuite/simplemde-markdown-editor/
$markdown_safemode = 1; // Safemode 1:On, 0:Off
$use_simplemde = 1; // simple Markdown editorを使用 1:Enable, 0:Disable

編集画面

チェックボックスでMarkdownにチェックを入れると、Markdown記法で書くことができるようになります。チェックボックスを外していると従来のPukiwiki記法になります。

いずれの記法を選んでいるかは内部的にはテキストファイルに#notemdという偽装プラグインを書くことで区別しています。ページ毎に使い分けが可能になっています。プレビューも可能になっています。

Markdown記法でもプラグインが使用可能

従来のPukiwiki記法ではブロックプラグインを使用する場合は行頭に#(シャープ)の記号を付けていました。しかし、Markdown記法では行頭の#は見出し記号になりますのでプラグインに使用できません。そこで、!を使っています。インラインプラグインは従来通り&plugin();で記載します。

また、v0.2から複数行プラグインでも動作するようになっているかと思います。細かいテストはできていないので、異常があればコメント欄などでお知らせいただければ幸いです。

Markdown記法が可能になる仕組み

既存のPukiwikiからの引っ越しも可能

この、ページ毎に従来のPukiwiki記法とMarkdown記法のいずれかを選んで使い分けることができるという方式で何が有利かというと、既存ページのwikiフォルダはそのままに設定ファイルなどを書き換えれば、今まで使っていたPukiwikiがそのままMarkdownも併用できるようになるという点です。全てのページがMarkdownしか使えないのは全ページの書き換えが必要だったので、新規に設置するPukiwikiにはよくても既存の稼働しているPukiwikiからの引っ越しには不向きでした。

今回の改造では、Pukiwiki記法で使用しているページの保存ファイルは手を加えず、一方でMarkdown記法を指定した保存ファイルには #notemd の偽装プラグインを書き込むようにしています。Pukiwiki記法で書いたページのファイルは手を加えていないと言うことは、wikiフォルダをそのまま移植すればこの新しいPukiwiki 1.5.3-mdでも続きを使い続けることができるということを意味します。

必ずバックアップを取ってから引っ越し作業をしてください。データの消失などには責任を負えませんので、ご使用は自己責任で。タイムスタンプを保持したままPukiwikiを丸ごとバックアップする方法についてはこちらのページもご覧ください。

本家のPukiwikiに比べてまだ残っている課題の機能

ダウンロード

ダウンロードはこちらからどうぞ。
pukiwiki.ini.phpに上記の設定項目を設置するのを忘れないようにしてください。
ライセンスはGPL2。

Release v0.2 · m0370/pukiwiki154_md
複数行の引数を用いるプラグインにも対応。 また、プレビュー画面でもMarkdown parserが反映されるように対応。
https://github.com/m0370/pukiwiki154_md/releases/tag/v0.2

動作しないときのチェックリスト

もしうまく動かない時は不具合修正のため、ぜひ問題点をコメント機能でお知らせください。

ChatGPT codexについて

実は、このv0.2を作るときはPHPのスクリプトは人間の手では一切打っていません。すべてChatGPT Plusで利用可能なCodexで作成しました。生成AIもここまでできるようになっているんですね。


この記事に対するコメント

このページには、まだコメントはありません。

お名前:

更新日:2025-07-19 閲覧数:814 views.