DokuWiki

It's better when it's simple

ユーザ用ツール

サイト用ツール


ja:namespaces

名前空間

名前空間はディレクトリやフォルダのようなもので、ページ名はファイルのようなものです。

DokuWiki では、ページをカテゴリに分けるため、いわゆる “名前空間” を使用します。名前空間の名前には、ページ名と同じ制約があります。

デフォルト状態でインストールした DokuWiki には、wikiplayground という名前の名前空間が組み込まれています。

名前空間の作成

名前空間を特別に作成する必要はありません。単に、ページ名にコロンを付けてページを作成するだけです。最後のコロンの後ろのトークンがページ自身の名前になります。その前のトークンがすべて名前空間です。あなたのまだ存在しないページ名に使われている名前空間は、すべてDokuWikiによって自動的に作成されます。

(DokuWikiでは、ページは、他のすべてのウィキと同じように作成されます。単に、まだ存在しないページへのリンクを作成し、そのリンクをたどり、「このページを作成」をクリックするだけです。) ページの作成.

例:
example
.example
.:example
現在の名前空間にある “example” ページを参照します。
:exampleルートの名前空間にある “example” ページを参照します。
..example
..:example
.:..:example
の名前空間にある “example” ページを参照します。
wiki:example名前空間 “wiki” にある “example” ページを参照します。名前空間 “wiki” は、ルートの名前空間直下にあります。
ns1:ns2:example
:ns1:ns2:example
名前空間 ns2 にある “example” ページを参照します。名前空間 ns2 は、名前空間 ns1 の直下にあり、名前空間 ns1 は、ルートの名前空間直下にあります。
.ns1:ns2:example
.:ns1:ns2:example
名前空間 ns2 にある “example” ページを参照します。名前空間 ns2 は、名前空間 ns1 の直下にあり、名前空間 ns1 は、現在の名前空間の直下にあります。
..ns1:ns2:example
..:ns1:ns2:example
名前空間 ns2 にある “example” ページを参照します。名前空間 ns2 は、名前空間 ns1 の直下にあり、名前空間 ns1 は、現在の名前空間の隣にあります(つまり、ns1 と現在の名前空間はどちらも同じ親名前空間の直下にあります)。
.ns1:ns2:名前空間 ns2 にある “start” ページを参照します。名前空間 ns2 は、名前空間 ns1 の直下にあり、名前空間 ns1 は現在の名前空間の直下にあります。

(デフォルトページは、startpage 構成設定を調整することで “start” 以外の名前をつけることができます。)

落とし穴: 相対リンクおよび絶対内部リンク用の構文は、ディレクトリやファイル名の規約と比較して全く一意ではなく、とても複雑です。ファイルパスであれば “/” で始まる場合に限り絶対パスとなりますが、DokuWiki のリンクは “:” で始まる場合に限らず、“:” では始まらないものの途中に “:” を含むもの、そして “:” で終わるものも絶対リンクとなってしまいます。相対リンクについても同様で、現在の名前空間は “.” または “.:” で始めることができてしまいます (親の名前空間については “..” または “..:”)。

名前空間の削除

名前空間内のすべてのページが削除されたとき、名前空間は論理的に存在しなくなります。DokuWikiは通常、もやは空となったディレクトリも削除します。

名前空間のリネームの仕方

手動による方法

手動で名前空間をリネームするには、次の作業をする必要があります:

  • 以下の場所にある名前空間を表すフォルダをリネームする:
    • data/pages
    • data/media (存在するなら)
  • data/meta にある名前空間用メタデータを削除する。
  • data/attic にある名前空間用屋根裏データを削除する(あるいは以前のバージョンを置いておきたければ、他の場所に移動させる)。

例えば、UNIXのホストでは次のようにすることができます:

  • mv /dokuwiki_base/data/pages/old_namespace /dokuwiki_base/data/pages/new_namespace
  • mv /dokuwiki_base/data/media/old_namespace /dokuwiki_base/data/media/new_namespace
  • rm -Rf /dokuwiki_base/data/meta/old_namespace
  • rm -Rf /dokuwiki_base/data/attic/old_namespace

old_namespacenew_namespace の語は、ラテン文字以外の文字(ギリシヤ語やロシア語)があればエンコードする必要がありうることに注意してください。

  • 移動した名前空間以下のページへのリンクを(編集により)修正する(このようなリンクは、名前空間の移動前に各ページの バックリンク を見ることで発見できます)。
  • 新しい名前空間以下のすべてのページをそれぞれ表示させる。これにより移動した名前空間以下にあるページのインデックス情報とメタデータが作成されます。

しかし、まだ、たくさんのゴミがあちこちに残ります。例えば、 data/changes.log や、キャシュ内の各種の(.idx ファイルなどを含む)ファイルです。もし可能であるなら、以下のようにして(これもUNIX用)、 ブランク状態 からやりなおすことができるかもしれませんが、これはあらゆる履歴情報(つまり 最近の変更)を失うことを意味すると警告しておきます:

  • cat /dev/null > /dokuwiki_base/data/changes.log
  • rm -Rf /dokuwiki_base/data/attic/*
  • rm -Rf /dokuwiki_base/data/cache/?
  • rm -Rf /dokuwiki_base/data/cache/*.idx
  • rm -Rf /dokuwiki_base/data/cache/purgefile
  • あなたのウィキのすべてのページをそれぞれ表示させる。

おことわり : これが非常に複雑であること(そしてもれがあるかもしれないこと)は理解しています。これらは全部が全部 PITA (やっかいごと)です。ウィキを完全にするために検索インデックスを(再)構築し、キャッシュ全体やウィキの以前のリビジョンを消去するためのプラグインを使うことで、これらを手動でやるのを回避することもできます。

プラグインによる方法

各ページを旧名前空間から新名前空間へ移動させるのに、サードパーティー製の PageMove プラグインを用いることができます。これがあなたの目的にかなうかどうかは、ドキュメントを調べてください。

名前空間のデフォルトリンク

リンクIDの末尾をコロンにすることで、名前空間のデフォルトファイルにリンクすることが可能です: [[foo:bar:]]。このリンクのリンク先ページは、特定の名前のファイルが存在するかどうかに依存します。[[foo:bar:]] については、次のページがチェックされます:

foo:bar:$conf['start']
foo:bar:bar
foo:bar

ページのチェックはこの順序で行われ、最初に見つかったページにリンクされます。このリンクには、自動複数形リンクは行われません。

:!: この機能は 2006-09-28 RC1 バージョン以降でのみ有効です。

ja/namespaces.txt · 最終更新: 2013-05-25 10:20 by 122.212.225.106

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki