レ点腫瘍学ノート

Top / pukiwikiカスタマイズ箇所 / 2022

Pukiwiki 1.5.4も無理やりMarkdown記法とPukiwiki記法に両対応させた

pukiwiki

以前にPukiwiki 1.5.3も無理やりMarkdown記法とPukiwiki記法に両対応させたという記事を公開していました。今回はそのPukiwiki 1.5.4版です。

pukiwiki markdown 先週Pukiwiki 1.5.3を無理やりMarkdownに対応させたという記事を公開していました。Pukiwiki ではどうしても書き方が馴染めないと言う人が少なくない上にMarkdownエディターはいろいろな優れたアプリがどんどん増えていて自分に合った使いやすいものがかなり選べる状態になっています

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

スクリーンショット

画面はPukiwiki 1.5.3のものですが、ほとんど見た目は変わりません。

Pukiwiki 1.5.4でMarkdownが使える

従来の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 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();で記載します。

ただし、Pukiwiki 1.5.3版と同様にMarkdown parserに本文を投入する関係で複数行プラグインには未対応です。lib/convert_html.phpの190行目付近や980行目付近にカギがありそうな気はしているのですが・・・。

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

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

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

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

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

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

ダウンロード

ダウンロードはこちらからどうぞ。従来のPukiwiki 1.5.4を解凍した後に、さらにこのpukiwiki154_mdで重複するファイルを上書きしてください。中に含まれていないファイルはオリジナルのPukiwiki 1.5.4と同様です。
ただし、pukiwiki.ini.phpに上記の設定項目を設置するのを忘れないようにしてください。
ライセンスはGPL2。

Release Pukiwiki 1.5.4 Markdown対応版(暫定版) · m0370/pukiwiki154_md
Pukiwiki 1.5.4のMarkdown対応版(暫定版)が完成しました。 依然として複数行プラグインが使えませんが、ひとまずPHP 7.4とPHP 8.0で動作しています。 既存のPukiwiki 1.5.4をダウンロードしてファイルを解凍し、その上からこのファイルを上書きしてください。
https://github.com/m0370/pukiwiki154_md/releases/tag/v0.1

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

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


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

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

お名前:

更新日:2022-04-25 閲覧数:1024 views.