はじめに
PukiWikiをGitHub Pages上で公開しようと思い、静的サイトとして生成するためのプラグインをつくったのでそれを使ってウィキを静的化する。
環境
- Windows 11 23H2
- XAMPP v3.1.1
- PHP 8.1
- PukiWiki 1.5.4
pukistatic.inc.php
ライセンス: MITライセンス
技術的な話
- すべてのページをPukiWiki内部の関数を呼んでHTML化するわけではなく、プラグインから無理やりページにアクセスして生成させる
- index.phpへ一時的にPKWK_READONLYの定数を設置し、閲覧専用として静的化させる → 編集ボタンなどの静的化した際、ややこしいので除去しておく
困った点
- スペースが含まれるページは生成されなかった
- なかなか無理やりだが、スペースを+に置き換えることで解決
- ページの検索ができない → ページ一覧のjsonを生成すればなんとか...?
静的化の方法
- ダウンロードしたファイル(pukistatic.inc.php)を
plugin/
に配置 - ブラウザなどから
/?cmd=pukistatic
へアクセスすると生成 -
pukistatic/
へ出力される
pukistatic/の中身をGitHub Pagesなどへコミット&プッシュすることで公開できる。
設定
// (公開する場合、)アップロード先のURL
define("PUKISTATIC_URL", ""); // 空の場合はそのまま
// ウィキページ以外で静的化する相対パス
define("PUKISTATIC_PATHES",
[
"cmd=list",
"cmd=filelist",
"cmd=search",
"cmd=rss",
]
);
最後に
GitHub Pagesは無料で利用できるのでサーバー費用を気にせずにPukiWikiを公開できる。ただし静的化したいるため、編集などといった操作はできず、ウィキとしての利用はできないので、使わなくなったウィキのアーカイブとして静的化して公開することや個人用のブログに利用するなどを想定しました。