0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PukiWikiAdvent Calendar 2024

Day 16

PukiWikiをGitHub Pagesで運用するために静的サイト生成プラグインをつくった

Posted at

はじめに

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を生成すればなんとか...?

静的化の方法

  1. ダウンロードしたファイル(pukistatic.inc.php)をplugin/に配置
  2. ブラウザなどから/?cmd=pukistatic へアクセスすると生成
  3. pukistatic/ へ出力される

pukistatic/の中身をGitHub Pagesなどへコミット&プッシュすることで公開できる。

設定

// (公開する場合、)アップロード先のURL
define("PUKISTATIC_URL", ""); // 空の場合はそのまま

// ウィキページ以外で静的化する相対パス
define("PUKISTATIC_PATHES", 
	[
		"cmd=list",
		"cmd=filelist",
		"cmd=search",
		"cmd=rss",
	]
);

最後に

GitHub Pagesは無料で利用できるのでサーバー費用を気にせずにPukiWikiを公開できる。ただし静的化したいるため、編集などといった操作はできず、ウィキとしての利用はできないので、使わなくなったウィキのアーカイブとして静的化して公開することや個人用のブログに利用するなどを想定しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?