(ヽ´ω`) < 助けてほしいマン

わからないことを助けてほしいマンが書くブログ

(ヽ'ω`) < Moinmoinのマクロについて-ナビゲーション系

(ヽ'ω`) < ナビゲーションって?

案内板みたいなものをイメージするとわかりやすいかも。

例えば次のような使い方ができるマクロが用意されている。

  • ページ内のコンテンツにアクセスしやすくするために、ページ内リンク付き見出しを生成
  • サブページ機能で階層化されたページ間の移動リンクを生成

また、主に特定の条件に合致するページヘのリンクを作成したり、ページに情報を表示する。

検索系マクロも特定の条件に合致したページヘのリンクを作成するが、大きな違いが、条件の対象が"ページの中身"か"ページのメタ情報"となるか。

(ヽ'ω`) < メタ情報?

ページ中身ではなく、ページそのものに付随する情報。具体的に挙げると

  • ページの更新日
  • ページへのリンク(被リンク数)
  • ページとページのつながり(ページとサブページ)
  • ページに関連付けられたアップロードファイル

これらの情報を元に、以下のような機能のマクロが用意されている。

  • 最近更新されたページ一覧を生成
  • 全く更新されていないページ一覧を生成
  • サブページへのリンク一覧を生成
  • サブページの兄弟要素へのリンクを生成

(ヽ'ω`) < 他にも雑多にあるけど

ページに添付されたアップロードファイルの情報を表示したり、スライドショー機能のためのマクロ等色々あるが、使いそうなマクロだけをピックアップして解説していく。

大きく種別を分けると以下の通り

  1. ページ内コンテンツへのリンク生成系
  2. 他ページヘのリンク生成系(サブページ)
  3. 他ページヘのリンク生成系(メタ情報)
  4. その他

(ヽ'ω`) < ページ内コンテンツへのリンク生成系

ユーザが多く使うことになるマクロはここで紹介する2つ。

逆に言うと、他のマクロはどちらかというと管理者寄りのマクロ。

TableOfContents ☆☆☆☆☆

多分ナビゲーション系のマクロの中では、これが一番使うと思う。

ページ内のH*要素に対するリンクを生成して、ページの見出しを作成する。

これはもう例を見てもらったほうが早い。

<<TableOfContents>>

= Linuxでのネットワーク設定 =
Linuxでのネットワーク設定について説明する
== 設定方法 ==
Redhat系列とDebian系列では設定方法が違う
=== Redhat系列 ===
/etc/sysconfig/ifcfg-*** を編集してネットワークの設定を行う
==== ifcfg-***ファイルの記述方法 ====
(省略)
==== ゲートウェイの設定 ====
(省略)

=== Debian系列 ===
/etc/network/interface を編集してネットワークの設定を行う
==== interfaceファイルの記述方法 ====
(省略)
==== ホスト名の設定 ====
(省略)

== NetworkManagerを使用した設定 ==
NetworkManagerを使用することで、ディストリビューション間の差異をある程度吸収して設定を行うことも可能
=== NetworkManagerの起動 ===
(省略)
=== NetworkManagerの操作 ===

== 動作確認 ==
ネットワークの設定を行った後は、実際に以下のコマンドで動作を確認する。
=== ip addr show ===
(省略)
=== ip route show ===
(省略)
=== ping ===
(省略)

f:id:tsugi-hagi:20141023171521p:plain

マクロへの引数として、リンク作成の深度を渡すことができる。

<<TableOfContents(2)>>

= Linuxでのネットワーク設定 =
(以下省略)

f:id:tsugi-hagi:20141023171539p:plain

<<TableOfContents(3)>>

= Linuxでのネットワーク設定 =
(以下省略)

f:id:tsugi-hagi:20141023171552p:plain

短いページであれば必要ないが、ある程度の長さのページであれば、とりあえずページの先頭にでも入れておくと便利。

Anchor ☆☆☆☆

ページ内のアンカーを生成。HTMLのアンカーと同じものと考えてOK。

``[[#PS141010|一部のコマンドが使用不可となりました(2014/10/10)]]``
== ネットワーク関連のコマンドについて ==
ネットワークの動作を確認するためのコマンドとしては以下のものがある
(省略)
<<Anchor(PS141010)>>
追記: 上記のコマンドは使用不可となりました。(2014/10/10)

f:id:tsugi-hagi:20141023171603p:plain

主に見出しより更に小さい要素に対してのアンカー作成に用いる

(ヽ'ω`) < 他ページヘのリンク生成系(サブページ)

サブページ機能による階層構造を元に、子要素と兄弟要素へのリンクを生成する。

参考: (ヽ'ω`) < Moinmoinのサブページの概念を理解する - (ヽ´ω`) < *****

説明に上記のサブページの解説で作成したサンプルを用いる。

Navigation(children)

子ページへのリンク一覧を生成する。

<<Navigation(children)>>

f:id:tsugi-hagi:20141023171618p:plain

上記の通り、マクロの第2引数に何も指定しないと、全ての子要素の子孫まで表示してしまうので、非常に見づらくなる。

第2引数に深度を指定することで、辿る子孫のレベルを指定することができる。

<<Navigation(children, 2)>>

f:id:tsugi-hagi:20141023171631p:plain

Navigation(siblings)

兄弟ページヘのリンク一覧を生成する。

<<Navigation(siblings)>>

f:id:tsugi-hagi:20141023171644p:plain

このマクロも第2引数に数字を渡すことで、表示する深度に制限をかけることができる。

(ヽ'ω`) < 他ページヘのリンク生成系(メタ情報)

ページの中身ではなく、ページそのものに付与する情報に基づいたリンク一覧を生成する。

多分ユーザレベルで使用する頻度は少ないんじゃないかなーと思う。

サンプルについては、Moinmoinの公式Wikiへのリンクを参照。

(ヽ'ω`) < 公開できるWikiがないので…

RecentChagnes

最近更新されたページの一覧を表示する。生成されるリンクには以下の情報も一覧されている。

  • 行った操作 ページの更新 ページの削除 ** ページのリネーム
  • ページのタイトル
  • 更新日時
  • 更新者
  • メモ
<<RecentChanges>>

http://moinmo.in/RecentChanges

TitleIndex

ページのタイトルに基づくインデックスページ。索引つきページ一覧を生成する。

<<TitleIndex>>

http://moinmo.in/TitleIndex

WordIndex

ページタイトルに含まれる単語に基づいたインデックスページを生成する。

TitleIndexとの違いだが、Moinmoinでは、2つ以上の英単語をCamelCaseで記述すると自動的にリンクとなる。この時の各単語で索引が生成される。

というわけで、日本語で使う限りは、あまり使えないかもしれない。

<<WordIndex>>

WantedPages

他ページからのリンクは存在するが、まだ作られていないページの一覧を生成する。

Wantedの名の通り、作られるのを待っている状態というべきか。

OrphanedPages

上記のWantedPagesとは逆で、ページは存在するが、どこからもリンクされていないページの一覧を生成する。

AbandonedPages

RecentChangesとは逆に、長期間更新されていないページの一覧を生成する。

WantedPagesOrphanedPagesAbandonedPagesの3つのマクロについては、Moinmoinの公式Wikiのリンクページに閲覧権限が開放されていないため、実際に設置・運用して確認すること。

(ヽ'ω`) < その他

上記のマクロの他には、ランダムでリンクを生成するRandomPage…は説明不要として、ページヘの添付ファイルの情報を表示するマクロがあるのだが、それに関しては添付ファイルに関する説明を行う際に併せて説明する。

(ヽ'ω`) < oi, おい☆つけるの忘れてんぞ

(ヽ'ω`) < TableOfContentsに全部持ってかれてるわけですよ