dokuwikiを最新バージョンにアップグレードしたら、エラーが表示されてシステムにログインできなくなってしまいました。今回は、ニッチな話ですが、dokuwikiのアップグレードについて書いてみます。
表示されたエラー:Fatal error: Class ‘Doku_Handler_Quote’ not found
Fatal error: Class ‘Doku_Handler_Quote’ not found in …/wiki/lib/plugins/markdowku/syntax/blockquotes.php on line 95

記事がなにも表示されなくなってしまいました。
こんなときは、とりあえずバックアップに復元です。
dokuwikiは、mixhostのsoftaculousで管理しているので、softaculousのバックアップ復元を利用します。ちなみに、ちゃんとアップデートの直前にバックアップしていたので、ばっちりです。


mixhostがレンタルサーバーで、softaculousはサーバーのソフトウェア管理システムです。softaculousは、スマホでいうApp StoreやPlayストアのようなもので、プログラム(「インスタレーション」といいます)をインストールしたり、アップデートしたりできます。
落ち着いてエラーを読んでみる
Fatal error: Class ‘Doku_Handler_Quote’ not found in …/wiki/lib/plugins/markdowku/syntax/blockquotes.php on line 95
もう一度スクリーンショットしてあるエラーを読んでみると、markdowkuというプラグインで呼び出している「Doku_Handler_Quote」というクラスの参照が見つからないようです。
Markdowkuプラグインとは?
Markdowkuプラグインは、MarkdownをDokuWiki構文に追加します。
構文変更ではなく追加なので、markdowkuでは、Markdown構文に加えて、Dokuwikiの構文でも表や内部リンクを利用することができます。つまり、いいとこ取りができるんです。

markdown構文は見出しを#で指定できるのが便利で、Dokuwikiはリンクを[[]]で指定できるのが便利だと思います
Dokuwikiのバージョン「2020-07-29 Hogfather」
そもそも、今回はDokuwikiのバージョンを「2018-04-22c Greebo」 から「2020-07-29 Hogfather」にアップグレードしました。

新しいバージョンでは「Doku_Handler_Quote」クラスは参照できなくなっているようです。
Markdowkuプラグインは?
バックアップから復元したDokuwikiの設定から、プラグインを見てみることにしました。
すると、配布URLが変更されていることもわかりました。

- 新)https://github.com/Medieninformatik-Regensburg/dokuwiki-plugin-markdowku/archive/Greebo.zip
- 旧)https://komkon2.de/markdowku/markdowku.tgz
githubのレジストリからplugin.info.txtを表示してみると、pluginURLがありました。

こちらを確認すると、現時点(2020-08-21)でHogfatherには対応していないことがはっきりしました。

バグ修正の見込み
Githubのフォーラムを見てみると、さしあたりの解決方法と、バグ修正には2週間ほどかかることがわかりました。

- lib/plugins/markdowku/syntax/blockquotes.php
- lib/plugins/markdowku/syntax/olists.php
- lib/plugins/markdowku/syntax/ulists.php
の3つのシンタックスファイルを削除することで、不完全ながらエラーは消せるようです。
他にもhttps://www.dokuwiki.org/plugin:markdowkuには以下のような、暫定版が公開されています。


ちょっとややこしいですね💦
一応プロジェクトは進行中なのでバグ修正を待ってからDokuwikiのアップグレードをしようと思います。