名前
    PukiWiki - 自由にページを追加・削除・編集できるWebページ構築スクリプト

    Version 1.5.1
    Copyright
      2001-2016 PukiWiki Development Team
      2001-2002 yu-ji (Based on PukiWiki 1.3 by yu-ji)
    License: GPL version 2 or (at your option) any later version

    URL:
      http://pukiwiki.osdn.jp/
      http://pukiwiki.osdn.jp/dev/
      https://osdn.jp/projects/pukiwiki/

書式
    index.php
    index.php?PAGE_NAME_ENCODED
    index.php?plugin=PLUGIN_NAME

概要
    PukiWiki(ぷきうぃき)は、ハイパーテキストを素早く自由に追加・削除・編集で
    きるWebアプリケーション(Wiki, WikiWikiWeb)の一つです。テキストデータから
    XHTML 1.1 を生成することができ、そのテキストはWebブラウザから何度でも修
    正することができます。それぞれのページは自然にハイパーリンクで結びつける
    ことができます。

    PukiWikiはグループ間の知識の共有に用いることができますが、個人が自分のた
    めのアイデア帖や日記ツールとして活用することも可能です。また、管理者に
    だけ「簡単に編集できる」利点を残したまま、閲覧者に対して「編集のできない
    Webサイト」として情報を提供する構成も可能です。(この場合、Wiki風のデザイ
    ンである必要すらありません)

    PukiWikiはPHP言語で書かれたプログラムなので、PHP(PHP4.1～PHP7)が動作す
    るWebサーバーであれば容易に設置でき、軽快に動作します。

    PukiWikiは、yu-jiさんを含む PukiWiki Develpers Team やその貢献者が、各自の
    著作物にGPLバージョン2(または _あなたの選択で_ それ以降のGPL)を適用してい
    る「フリーソフトウェア(自由なソフトウェア)」です。最新版はPukiWiki公式サイ
    トから入手できます。

ページの作成、編集、削除、復旧
    1. 「新規」のリンクからページ名(まだそのWikiに存在していないもの)を入力し
      たり、既存のページを表示した状態で「編集」のリンクをたどったり、そのペー
      ジが置かれるはずのURLに直接アクセスすると、テキストの入力ができる状態に
      なります。

      ※「凍結」されていたり、「編集が禁止」されている場合は、リンクが存在し
        なかったり、そのようなメッセージが表示されるでしょう

    2. テキストを入力(ないし修正)し「保存」すると、そのテキストはサーバーに保
      存され、すぐに「そのテキストを元にしたWebページ」が表示されます。
      「編集」は何度でも繰り返す事ができます。

    3. テキストの中に、「大文字始まりの英単語が二つ以上連結された単語」(例え
      ば"NewPage")や、二重のブラケットで囲まれた語句(例えば[[新しいページ]])
      があった場合、その語句は背景が変化し、末尾に '?' という小さなリンクが挿
      入されます(未解決のリンク)。 この装飾は「(表示した時点では)その名前のペ
      ージが存在していなかった」ことを示しています。もしもその名前のページが
      存在しているならば、その語句の部分は「その名前のページ」を指し示すハイ
      パーリンクになります。

    4. テキストを全て削除してから「保存」することで、そのページを削除すること
       ができます。いたずらを検知するため、削除された事実は専用のページ 
       [[RecentDeleted]] に記録されます。
       
       ※削除した理由が明確でない場合、他の参加者はそのページを復旧させること
         ができます。

    5. テキストの編集履歴は自動的に記録(バックアップ)されます。設定によります
       が、バックアップは既定の時間が経過するか、毎回編集するたびに行われま
       す。バックアップされたデータがあるならば、それを使いコンテンツを当時の
       状態に復旧することができます。バックアップデータを完全に削除することは
       管理者にしかできません。

テキストの整形ルール
    テキストをWebページ(HTML/XHTML)としてうまく出力させるため、「どのようなテ
    キストを書くと、どのようなHTML/XHTMLになるのか」、という部分に一定のルール
    (書式)が決められています。こちらについては [[help]] [[FormattingRules]] の
    ページを参照してください。

    テキストに書き込んだ「HTMLエンティティ(HTMLにおいて、特殊な文字を表示させ
    るためのエスケープ文字列のようなもの)」はほぼそのまま表示されます。一部の
    文字は、HTMLエンティティで記述する必要があるかもしれません。
    (例: "&" => "&amp;")

    テキストデータでの改行を、XHTMLの出力でもそのまま改行(<br />)として反映さ
    せたい場合、あるいは行間を空けたい場合:
      1. 設定 $line_break の内容を切り替えることで全体の動作が変わります
      2. #setlinebreak プラグインで行単位に操作する事が可能です
      3. 行末に "~" を追加すると、その行の改行が無視されなくなります
      4. brプラグイン(&br;) を文中に追加すると、そこで改行します
      5. brプラグイン(#br) で、一行分の空間を空けることができます

    WikiName (大文字始まりの英単語が二つ以上続いた単語) に対する自動リンク機
    能を無効にするには、設定 $nowikiname の内容を切り替えて下さい。

    AutoLink (既存のページに対するリンクを自動的に作成する機能)を無効にした
    り、有効とみなすページ名のバイト数を修正する場合、設定 $autolink の値を
    修正して下さい。

ページの編集を禁止するには
    以下のような方法があります。

    1. 定数 PKWK_READONLY により、PukiWiki全体を書き込み禁止にする
      これは閲覧専用のPukiWikiを用意するためのオプションです。
      既存のPukiWikiのミラーサイトを構築したり、情報提供用のサイトを構築するた
      めに活用することができます。有効/無効にするためには管理者による設定変更
      が必要です。 (詳しくは: BugTrack/744)

    2. 編集認証($edit_auth)により、指定したパターンに合致するページの編集を禁
     じる
      指定したパターン(例えば "Aで始まるページ名")に合致するページに対し、特定
      のアカウントにだけ編集を許可するためのオプションです。
      ユーザーの設定などは管理者による設定変更が必要です。
      編集認証は「ページの中身」「ページ名」いずれかに対してかける事ができま
      す。パターンの指定は正規表現で行います。

    3. 「凍結」機能により、ページ単位に編集を禁じる/許可する
      凍結/凍結解除には管理者パスワードが必要です。
      ページを書き換えるプラグイン(例: #comment プラグイン)は凍結されたページ
      の中でも動作しますので、それらをページに含めた場合、管理者が定期的にそ
      のページをクリンナップする必要があるかもしれません。

    4. 指定したページの編集を禁じる($cantedit)
      ページ名を事前に指定しておく事により、通常の操作によるそのページの編集
      を禁じる事ができます。RecentChangesなどはこの機能を利用しています。
      設定を追加/削除するためには管理者による設定変更が必要です。

ページを秘密にする、パスワードを秘密にする
    PukiWiki全体を秘密の場所に置くことは簡単です。認証や暗号化をかける場合、
    そのWebサーバーに関する知識が必要です。

    1. Webサーバーの機能によって、PukiWikiを設置しているフォルダにベーシック
       認証や、ダイジェスト認証などをかけることができるでしょう。

    2. Webサーバーの機能によって、SSL(TLS)で通信経路を暗号化することができる
      でしょう。これによってベーシック認証のパスワードやコンテンツを盗聴され
      たり、何らかのきっかけでそれらが漏洩する可能性を低下させることができま
      す。

    PukiWikiのコンテンツを「部分的に」秘密にするためには、PukiWikiの複数の設
    定やプラグインに関する知識が必要です。以下にいくつかの注意点をまとめます。

    1. 公開用の入り口(index.php)とは別に編集用の入り口(例えばsecret.php)を用
      意し、それぞれの設定を調整/改造することができます。

     例:
      * 公開するPukiWikiの編集を PKWK_READONLY で禁止する
      * 編集用の入り口では、編集認証と閲覧認証を全てのページ名に適用する
        (正規表現では '')

    2. 編集認証($edit_auth) と 閲覧認証($read_auth) を利用する場合、それぞれ
       の対象が一致するように設定する必要があります。例えば閲覧認証だけをかけ
       ている場合、編集行為によってコンテンツが漏洩する可能性があります。

    3. MenuBarやヘッダ/フッタは、編集認証/閲覧認証の影響を受けません。
       (詳しくは:続・質問箱/11)

    4. 他のページを雛型としてロードする機能($load_template_func)は、閲覧認証
       の影響を受けません。現状の回避策は、この機能を無効にすることです。
       (詳しくは:BugTrack/598)

    5. あまり利用されていない一部のプラグインは、編集認証/閲覧認証に対応して
       いません。そのためにページのコンテンツやページ名が漏洩する可能性があり
       ます。編集認証/閲覧認証に頼る場合はこれらを事前に削除する必要がありま
       す。(例:BugTrack/511)

プラグインについて
    プラグインを組み込むことで、PukiWikiに様々な機能を追加/拡張することができ
    ます。PukiWikiには70を越える標準添付のプラグインの他に、多数の自作プラグ
    インが存在しています。

    プラグインのスタイルは大きく分けて三種類あります。多くはWebコンテンツ(静
    的なもの/動的なもの)を出力しますが、それ以外の動作をするものも存在します。

    ブロック型プラグイン(block/convert)
       行単位に特殊なWebコンテンツを挿入するものです。
       ※コメント欄(#comment)、目次(#contents)、配下のページを一覧(#ls2)、最
         新のN件(#recent)、ページのインクルード(#include)、投票ボックス
         (#vote)など

    インライン型プラグイン(inline)
       HTMLエンティティを拡張した文字列をテキストの途中に挿入することで、
       文章の途中にWebコンテンツを挿入するものです。
       ※文章の色と背景色の操作(&color(red,yellow){文字列};)など

    アクション型プラグイン(action)
       プラグインごとに独自の効果を発揮するものです。
       ※Wikiページの表示(read)、RSSの出力(rss)、ページ名の変更(rename)など

文字列置換ルール
    いくつかの機能は、プラグインではなく文字列の置換か、それとの組み合わせに
    よって実現されています。

    テキストを表示する際にWebコンテンツと置き換えるタイプ
       ※ハートマーク(&heart;)の描画、顔文字を画像に置き換える機構など

    テキストを保存する瞬間に置き換え、結果を保存するタイプ
       ※&now; を、「その時の現在時刻」に置き換える機構など

InterWikiについて
    InterWiki とは、WikiとWikiをつなげる機能です。例えば
    [[Wikiサイト名:ページ名]]
    このように記述することで、そのWikiの特定のページに対するリンクを簡単に出力
    させる事ができます。
    ※Wiki以外のサイト、例えば検索エンジンへのURIを生成することも可能です

    InterWikiを活用したテキストフォームは #lookup プラグインによって作成するこ
    とができます。

    この機能は Tiki からほぼ完全に移植されています。
    詳細は [[InterWiki]] のページを参照してください。

Wikiの様子を見る
    Wikiの更新状況(更新された順に並べた一覧)は RecentChanges という特殊なペー
    ジからチェックすることができます。

    #recentプラグインはこの内容をコンパクトなリストとして表示します。
      ※デフォルトでMenuBarに追加されています

    rssプラグインはこの内容をRSSのフォーマットで提供することができます。
      出力方法の例:
        RSS 0.91 index.php?plugin=rss
        RSS 1.0  index.php?plugin=rss&ver=1.0
        RSS 2.0  index.php?plugin=rss&ver=2.0

関連項目
    INSTALL.txt (インストールとアップグレード)

    標準添付されているプラグインの簡潔な説明は、[[PukiWiki/1.4/Manual/Plugin]]
    のページを参照して下さい。

    その他、リリース版の基本的な使い方に関する情報はPukiWiki公式サイト
    をご覧下さい。以下のようなコンテンツが特に有用です。

    FAQ        http://pukiwiki.osdn.jp/?FAQ
    質問箱     http://pukiwiki.osdn.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B1
    続・質問箱 http://pukiwiki.osdn.jp/?%E7%B6%9A%E3%83%BB%E8%B3%AA%E5%95%8F%E7%AE%B1

バグ
    PukiWikiのセキュリティに関する情報は以下でまとめられています。
    http://pukiwiki.osdn.jp/?PukiWiki/Errata

    バグ報告は devサイトまでお願いします。
    (我々はPukiWikiでPukiWikiのバグトラッキングを行っています)
    http://pukiwiki.osdn.jp/dev/?BugTrack2

歴史
    PukiWikiは、結城浩さんが作られたYukiWikiの仕様を参考に独自に開発されまし
    た。PukiWiki バージョン1.3まではyu-jiさんが個人で製作していました。

    バージョン1.2.1 から、RecentChangesのRDF/RSSを出力できるようになりました。

    バージョン1.3.1b 以降はPukiWiki Development Team によって開発が続けられて
    います。

 　 バージョン1.4.5 から、RSS 2.0 を出力できるようになりました。

謝辞
    PukiWiki Development Teamの皆さん、PukiWikiユーザの皆さんに感謝します。
    PukiWiki を開発した、yu-ji(旧sng)さんに感謝します。
    YukiWiki のクローン化を許可していただいた結城浩さんに感謝します。
    本家のWikiWikiを作ったCunningham & Cunningham, Inc.に 感謝します。

    * yu-jiさんのホームページ   http://factage.com/yu-ji/
    * 結城浩さんのホームページ  http://www.hyuki.com/
    * YukiWikiホームページ      http://www.hyuki.com/yukiwiki/
    * Tiki          http://todo.org/cgi-bin/tiki/tiki.cgi
    * 本家WikiWikiWeb       http://c2.com/cgi/wiki?WikiWikiWeb
    * WikiWikiWebの作者(Cunningham & Cunningham, Inc.) http://c2.com/
