このblogはwordpressを使って書いていますが、メモ書きの集積という点ではwikiが好きです。Evernote等も使っていますが、ナンダカンダやはりwikiが好きみたいです。
昔はpukiwikiを使っていました。が、今は dokuwiki (日本語ページ) を備忘録として利用しています。Evernoteも便利なのですが、手軽になんでも放り込んでしまうのでゴミ屋敷と化していて手が付けられないのです 🙁
Pluginで機能拡張
dokuwiki を気に入ってる理由のひとつに pluginで機能を拡張できるという事があります。見た目や目次の自動生成からMarkdown形式での記述に対応させるまであるのです。
そんな中 tocselect という目次の自動表示プラグインを見つけてこれはいい物だと入れてみると素晴らしい。dokuwiki標準テンプレートは2ペイン画面なのですが、左のsidebarにこの「tocselect」はぴったりです。いい感じですよね!
日本語ページIDが正しく表示できない
しかーし、弱点があって、日本語名のページIDが正しく表示できないのです。
URLエンコードのまま表示されてますね。javascriptで書かれていたらお手上げなのですが、まさに探していた機能を提供してくれるpluginでしたから可能ならば修正したいなとソースをみると・・・
表示している部分はPHPで書かれていました!ラッキー
こんな感じで表示部分に urldecode() を通してあげると
1 2 3 4 5 6 |
$ diff -u0 dokuwiki/lib/plugins/tocselect/action.php{.orig,} --- dokuwiki/lib/plugins/tocselect/action.php.orig 2017-12-07 06:05:56.000000000 +0900 +++ dokuwiki/lib/plugins/tocselect/action.php 2023-12-26 23:14:06.852190047 +0900 @@ -179 +179 @@ - return "<li><span class='clickerfile' onclick=\"tocsel_updatetoc('$namespace:$file');\">$namespace:$file</span></li>"; + return "<li><span class='clickerfile' onclick=\"tocsel_updatetoc('$namespace:$file');\">$namespace:".urldecode($file)."</span></li>"; |
↓↓↓
とってもいい感じに表示されました!PHPで書かれていて良かったぁ。
namespaceに日本語が使えるのかわかりませんが、もし、そこにも日本語を使うようならば同様にurldecode()を通してあげればOKかと思われ。