2 PukiWiki - 自由にページを追加・削除・編集できるWebページ構築スクリプト
6 2001-2021 PukiWiki Development Team
7 2001-2002 yu-ji (Based on PukiWiki 1.3 by yu-ji)
8 License: GPL version 2 or (at your option) any later version
11 https://pukiwiki.osdn.jp/
12 https://pukiwiki.osdn.jp/dev/
13 https://osdn.jp/projects/pukiwiki/
17 index.php?PAGE_NAME_ENCODED
18 index.php?plugin=PLUGIN_NAME
21 PukiWiki(ぷきうぃき)は、ハイパーテキストを素早く自由に追加・削除・編集で
22 きるWebアプリケーション(Wiki, WikiWikiWeb)の一つです。テキストデータから
23 HTML を生成することができ、そのテキストはWebブラウザから何度でも修
24 正することができます。それぞれのページは自然にハイパーリンクで結びつける
27 PukiWikiはグループ間の知識の共有に用いることができますが、個人が自分のた
28 めのアイデア帖や日記ツールとして活用することも可能です。また、管理者に
29 だけ「簡単に編集できる」利点を残したまま、閲覧者に対して「編集のできない
30 Webサイト」として情報を提供する構成も可能です。(この場合、Wiki風のデザイ
33 PukiWikiはPHP言語で書かれたプログラムなので、PHP(PHP4.1 - PHP8.1)が動作す
34 るWebサーバーであれば容易に設置でき、軽快に動作します。
36 PukiWikiは、yu-jiさんを含む PukiWiki Develpers Team やその貢献者が、各自の
37 著作物にGPLバージョン2(または _あなたの選択で_ それ以降のGPL)を適用してい
38 る「フリーソフトウェア(自由なソフトウェア)」です。最新版はPukiWiki公式サイ
42 1. 「新規」のリンクからページ名(まだそのWikiに存在していないもの)を入力し
43 たり、既存のページを表示した状態で「編集」のリンクをたどったり、そのペー
44 ジが置かれるはずのURLに直接アクセスすると、テキストの入力ができる状態に
47 ※「凍結」されていたり、「編集が禁止」されている場合は、リンクが存在し
48 なかったり、そのようなメッセージが表示されるでしょう
50 2. テキストを入力(ないし修正)し「保存」すると、そのテキストはサーバーに保
51 存され、すぐに「そのテキストを元にしたWebページ」が表示されます。
54 3. テキストの中に、「大文字始まりの英単語が二つ以上連結された単語」(例え
55 ば"NewPage")や、二重のブラケットで囲まれた語句(例えば[[新しいページ]])
56 があった場合、その語句は背景が変化し、末尾に '?' という小さなリンクが挿
57 入されます(未解決のリンク)。 この装飾は「(表示した時点では)その名前のペ
58 ージが存在していなかった」ことを示しています。もしもその名前のページが
59 存在しているならば、その語句の部分は「その名前のページ」を指し示すハイ
62 4. テキストを全て削除してから「保存」することで、そのページを削除すること
63 ができます。いたずらを検知するため、削除された事実は専用のページ
64 [[RecentDeleted]] に記録されます。
66 ※削除した理由が明確でない場合、他の参加者はそのページを復旧させること
69 5. テキストの編集履歴は自動的に記録されます。設定によりますが、編集履歴の
70 保存は既定の時間が経過するか、毎回編集するたびに行われます。保存された
71 データがあるならば、それを使いコンテンツを当時の状態に復旧することがで
72 きます。編集履歴データを完全に削除することは管理者にしかできません。
75 テキストをWebページ(HTML/XHTML)としてうまく出力させるため、「どのようなテ
76 キストを書くと、どのようなHTML/XHTMLになるのか」、という部分に一定のルール
77 (書式)が決められています。こちらについては [[help]] [[FormattingRules]] の
80 テキストに書き込んだ「HTMLエンティティ(HTMLにおいて、特殊な文字を表示させ
81 るためのエスケープ文字列のようなもの)」はほぼそのまま表示されます。一部の
82 文字は、HTMLエンティティで記述する必要があるかもしれません。
85 テキストデータでの改行を、XHTMLの出力でもそのまま改行(<br />)として反映さ
87 1. 設定 $line_break の内容を切り替えることで全体の動作が変わります
88 2. #setlinebreak プラグインで行単位に操作する事が可能です
89 3. 行末に "~" を追加すると、その行の改行が無視されなくなります
90 4. brプラグイン(&br;) を文中に追加すると、そこで改行します
91 5. brプラグイン(#br) で、一行分の空間を空けることができます
93 WikiName (大文字始まりの英単語が二つ以上続いた単語) に対する自動リンク機
94 能を無効にするには、設定 $nowikiname の内容を切り替えて下さい。
96 AutoLink (既存のページに対するリンクを自動的に作成する機能)を無効にした
97 り、有効とみなすページ名のバイト数を修正する場合、設定 $autolink の値を
103 1. 定数 PKWK_READONLY により、PukiWiki全体を書き込み禁止にする
104 これは閲覧専用のPukiWikiを用意するためのオプションです。
105 既存のPukiWikiのミラーサイトを構築したり、情報提供用のサイトを構築するた
106 めに活用することができます。有効/無効にするためには管理者による設定変更
107 が必要です。 (詳しくは: BugTrack/744)
109 2. 編集認証($edit_auth)により、指定したパターンに合致するページの編集を禁
111 指定したパターン(例えば "Aで始まるページ名")に合致するページに対し、特定
112 のアカウントにだけ編集を許可するためのオプションです。
113 ユーザーの設定などは管理者による設定変更が必要です。
114 編集認証は「ページの中身」「ページ名」いずれかに対してかける事ができま
117 3. 「凍結」機能により、ページ単位に編集を禁じる/許可する
118 凍結/凍結解除には管理者パスワードが必要です。
119 ページを書き換えるプラグイン(例: #comment プラグイン)は凍結されたページ
120 の中でも動作しますので、それらをページに含めた場合、管理者が定期的にそ
121 のページをクリンナップする必要があるかもしれません。
123 4. 指定したページの編集を禁じる($cantedit)
124 ページ名を事前に指定しておく事により、通常の操作によるそのページの編集
125 を禁じる事ができます。RecentChangesなどはこの機能を利用しています。
126 設定を追加/削除するためには管理者による設定変更が必要です。
128 ページを秘密にする、パスワードを秘密にする
129 PukiWiki全体を秘密の場所に置くことは簡単です。認証や暗号化をかける場合、
130 そのWebサーバーに関する知識が必要です。
132 1. Webサーバーの機能によって、PukiWikiを設置しているフォルダにベーシック
133 認証や、ダイジェスト認証などをかけることができるでしょう。
135 2. Webサーバーの機能によって、SSL(TLS)で通信経路を暗号化することができる
136 でしょう。これによってベーシック認証のパスワードやコンテンツを盗聴され
137 たり、何らかのきっかけでそれらが漏洩する可能性を低下させることができま
140 PukiWikiのコンテンツを「部分的に」秘密にするためには、PukiWikiの複数の設
141 定やプラグインに関する知識が必要です。以下にいくつかの注意点をまとめます。
143 1. 公開用の入り口(index.php)とは別に編集用の入り口(例えばsecret.php)を用
144 意し、それぞれの設定を調整/改造することができます。
147 * 公開するPukiWikiの編集を PKWK_READONLY で禁止する
148 * 編集用の入り口では、編集認証と閲覧認証を全てのページ名に適用する
151 2. 編集認証($edit_auth) と 閲覧認証($read_auth) を利用する場合、それぞれ
152 の対象が一致するように設定する必要があります。例えば閲覧認証だけをかけ
153 ている場合、編集行為によってコンテンツが漏洩する可能性があります。
155 3. MenuBarやヘッダ/フッタは、編集認証/閲覧認証の影響を受けません。
158 4. 他のページを雛型としてロードする機能($load_template_func)は、閲覧認証
159 の影響を受けません。現状の回避策は、この機能を無効にすることです。
162 5. あまり利用されていない一部のプラグインは、編集認証/閲覧認証に対応して
163 いません。そのためにページのコンテンツやページ名が漏洩する可能性があり
164 ます。編集認証/閲覧認証に頼る場合はこれらを事前に削除する必要がありま
168 プラグインを組み込むことで、PukiWikiに様々な機能を追加/拡張することができ
169 ます。PukiWikiには70を越える標準添付のプラグインの他に、多数の自作プラグ
172 プラグインのスタイルは大きく分けて三種類あります。多くはWebコンテンツ(静
173 的なもの/動的なもの)を出力しますが、それ以外の動作をするものも存在します。
175 ブロック型プラグイン(block/convert)
176 行単位に特殊なWebコンテンツを挿入するものです。
177 ※コメント欄(#comment)、目次(#contents)、配下のページを一覧(#ls2)、最
178 新のN件(#recent)、ページのインクルード(#include)、投票ボックス
182 HTMLエンティティを拡張した文字列をテキストの途中に挿入することで、
183 文章の途中にWebコンテンツを挿入するものです。
184 ※文章の色と背景色の操作(&color(red,yellow){文字列};)など
187 プラグインごとに独自の効果を発揮するものです。
188 ※Wikiページの表示(read)、RSSの出力(rss)、ページ名の変更(rename)など
191 いくつかの機能は、プラグインではなく文字列の置換か、それとの組み合わせに
194 テキストを表示する際にWebコンテンツと置き換えるタイプ
195 ※ハートマーク(&heart;)の描画、顔文字を画像に置き換える機構など
197 テキストを保存する瞬間に置き換え、結果を保存するタイプ
198 ※&now; を、「その時の現在時刻」に置き換える機構など
201 InterWiki とは、WikiとWikiをつなげる機能です。例えば
203 このように記述することで、そのWikiの特定のページに対するリンクを簡単に出力
205 ※Wiki以外のサイト、例えば検索エンジンへのURIを生成することも可能です
207 InterWikiを活用したテキストフォームは #lookup プラグインによって作成するこ
210 この機能は Tiki からほぼ完全に移植されています。
211 詳細は [[InterWiki]] のページを参照してください。
214 Wikiの更新状況(更新された順に並べた一覧)は RecentChanges という特殊なペー
217 #recentプラグインはこの内容をコンパクトなリストとして表示します。
218 ※デフォルトでMenuBarに追加されています
220 rssプラグインはこの内容をRSSのフォーマットで提供することができます。
222 RSS 0.91 index.php?plugin=rss
223 RSS 1.0 index.php?plugin=rss&ver=1.0
224 RSS 2.0 index.php?plugin=rss&ver=2.0
227 INSTALL.txt (インストールとアップグレード)
229 標準添付されているプラグインの簡潔な説明は、[[PukiWiki/1.4/Manual/Plugin]]
232 その他、リリース版の基本的な使い方に関する情報はPukiWiki公式サイト
233 をご覧下さい。以下のようなコンテンツが特に有用です。
235 FAQ https://pukiwiki.osdn.jp/?FAQ
236 質問箱 https://pukiwiki.osdn.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B1
239 PukiWikiのセキュリティに関する情報は以下でまとめられています。
240 https://pukiwiki.osdn.jp/?PukiWiki/Errata
242 バグ報告は devサイトまでお願いします。
243 (我々はPukiWikiでPukiWikiのバグトラッキングを行っています)
244 https://pukiwiki.osdn.jp/dev/?BugTrack
247 PukiWikiは、結城浩さんが作られたYukiWikiの仕様を参考に独自に開発されまし
248 た。PukiWiki バージョン1.3まではyu-jiさんが個人で製作していました。
250 バージョン1.2.1 から、RecentChangesのRDF/RSSを出力できるようになりました。
252 バージョン1.3.1b 以降はPukiWiki Development Team によって開発が続けられて
255 バージョン1.4.5 から、RSS 2.0 を出力できるようになりました。
258 PukiWiki Development Teamの皆さん、PukiWikiユーザの皆さんに感謝します。
259 PukiWiki を開発した、yu-ji(旧sng)さんに感謝します。
260 YukiWiki のクローン化を許可していただいた結城浩さんに感謝します。
261 本家のWikiWikiを作ったCunningham & Cunningham, Inc.に 感謝します。
263 * yu-jiさんのホームページ https://factage.com/yu-ji/
264 * 結城浩さんのホームページ https://www.hyuki.com/
265 * YukiWikiホームページ https://www.hyuki.com/yukiwiki/
266 * Tiki https://tiki.org/
267 * 本家WikiWikiWeb https://wiki.c2.com/?WikiWikiWeb
268 * WikiWikiWebの作者(Cunningham & Cunningham, Inc.) https://c2.com/