使い方

Table of Contents

設定

全ての #include を #includex に置き換えてください。

書式

#includex(ページ名[,オプション])

必須

  • ページ名
    • とりこむページ名

オプション

option=bool なオプションは共通して、 option, option=true, option=on でそのオプションが有効になり、option=false, option=off で無効になります。

  • num=数字
    • 表示件数指定。正数は前からN件目、負数は後ろからN件目の意味。
      num=1:10 で先頭1件目から10件目までの意味。num=-10:-1 で後ろ10件目から後ろ1件目までの意味。num=2: で先頭2件目から最後までの意味。
      num=5+2 で先頭5件目から、そこから2件先まで(5,6,7)の意味。
  • filter=正規表現
    • 各行を正規表現で限定する。Wikiソースに対する grep 的なもの。全文検索。
      ヒント: ereg で判定を行います。
  • except=正規表現
    • 除外全文検索。Wikiソースに対する grep -v 的なもの。
      ヒント: ereg で判定を行います。 except=Test|sample → Test または sample を含む行を除く。
      ヒント:例えばページの1部だけを取り込んでいるのに #contents によるリストが表示されて邪魔だと思ったときに except=^#contents として消去したりします。
  • titlestr=name|off|basename|relname|title
    • ページタイトル(<h1>ページ名</h1>)の表示形式。デフォルトは title。
      name: include プラグインと同じくページ名を使用する。
      off: ページタイトルを表示しない。
      basename: ページ名の basename, つまり仮想階層を使用している場合のファイル名に相当する部分。
      relname: 現在ページからの相対的ページ名。例:現在ページ PukiWiki かつ include 先が Plugin/Hoge/includex.inc.php → Hoge/includex.inc.php
      title: TITLE: 行があればその文字を、なければ name を表示。
      備考:TITLE: の取得には contentsx.inc.php のコードを再利用します。インストールしておいてください(なければ常に name になります)。TITLE: とは Pukiwiki Plus! において HTML のタイトルを設定する書式です。本家の場合、default.ini.php の $line_rules で "^(TITLE):(.*)$" => "", と設定し、TITLE: 行を表示しないようにすればよいでしょう。おそらく。
  • titlelink=bool
    • ページタイトル(<h1>ページ名</h1>)でリンクを貼るか否か。
      ヒント: pukiwiki.ini.php で $fixed_heading_edited を 1 に設定しておくと、ページタイトルの脇に編集リンク用の編集アイコンも表示されます。$fixed_heading_edited は pukiwiki plus におけるパラグラフ編集機能を利用する際の、それぞれの見出しの脇に編集アイコンを表示するか否かの設定です。
  • permalink=リンク文字列
    • include した後にそのページへのリンク、 Permalink を表示する。ブログ的に。
  • section=(num=数字,depth=数字,filter=正規表現,except=正規表現,cache=on|off|reset)
    • 取り込むセクションを見出しに対する制限で限定。
      備考:内部で contentsx.inc.php を使用します。contentsx のキャッシュから見出し行番号を取得したりしています。 オプションの効用は上の同名オプションから察しが付くと思いますが、より詳しくは contentsx.inc.php を参照してください。
      ヒント:num=0 は先頭から第一見出しまでの部位を意味します。同じ意味になりそうな depth=0 は定義していません。

Obsolete

  • title=on|off|nolink|basename (titlestr, titlelink に移行してください)
    • ページタイトル(<h1>ページ名</h1>)の表示形式。デフォルトは on。on の場合はページタイトルを参照リンク付きで表示する。off の場合はページタイトルを表示しない。nolink の場合はページタイトルをリンクなしで表示する。basename の場合はページ名の basename, つまり仮想階層を使用している場合のファイル名に相当する部分を用いてページタイトルを表示する。
      ヒント: pukiwiki.ini.php で $fixed_heading_edited を 1 に設定しておくと、ページタイトルの脇に編集リンク用の編集アイコンも表示されます。$fixed_heading_edited は pukiwiki plus におけるパラグラフ編集機能を利用する際の、それぞれの見出しの脇に編集アイコンを表示するか否かの設定です。

アルファ機能

  • head=bool
    • head=off で取り込む文章の第一行が見出しの場合消去。head は最初(head) の headline の意。ページタイトル h1 のすぐ次に見出しが来る、かつそのときの見た目が気になるような時に使用する。

使用例

TEST/a というページが以下の内容で存在するとします。

TITLE:テストページa
Contents of TOP section
**AA
Contents of AA section
#contentsx
*B 
Contents of B section
***BBB 
Contents of BBB section
**BC 
Contents of BC section
*D
Contents of D section

このページを TEST ページから include するものとします。

下記の表示例はイメージです。リンクを PukiWiki のように [[]] 記法で表現し、h1 タイトルを <h1></h1> で表現し、見出しも PukiWiki のように * で表現することにします。

※TITLE: というのは PukiWiki Plus! で <title></title> を設定できるコマンド(?)です。本家では忘れてください。


#includex(TEST/a)
#includex(./a) // 相対階層指定。

PukiWiki の相対階層指定は UNIX とは異なることに注意。TEST + ./a = TEST/a

<h1>[[テストページa>TEST/a]]</h1>
Contents of TOP section
**AA
Contents of AA section
#contentsx
*B 
Contents of B section
***BBB 
Contents of BBB section
**BC 
Contents of BC section
*D
Contents of D section

#includex(TEST/a,num=1:2) // 1行目から2行目抜き出し
<h1>[[テストページa>TEST/a]]</h1>
Contents of TOP section
**AA

#includex(TEST/a,num=1:2,titlestr=name) // h1 タイトルにページ名を使用
<h1>[[Test/a>TEST/a]]</h1>
Contents of TOP section
**AA

#includex(TEST/a,num=1:2,titlestr=off) // h1 タイトルを表示しない
Contents of TOP section
**AA

#includex(TEST/a,num=1:2,titlestr=basename) 
// h1 タイトルにページ名の basename, つまり仮想階層を使用している場合のファイル名に相当する部分。
<h1>[[a>TEST/a]]</h1>
Contents of TOP section
**AA

#includex(TEST/a,num=1:2,titlestr=relname) // h1 タイトルに現在ぺージからの相対パス
<h1>[[a>TEST/a]]</h1>
Contents of TOP section
**AA

#includex(TEST/a,num=1:2,titlestr=title) 
// h1 タイトルに TITLE: があれば使用。なければページ名。デフォルト
<h1>[[テストページa>TEST/a]]</h1>
Contents of TOP section
**AA

#includex(TEST/a,num=1:2,titlestr=title,titlelink=off) // h1 タイトルにリンクを貼らない
<h1>テストページa</h1>
Contents of TOP section
**AA

#includex(TEST/a,num=1:2,permalink=パーマリンク) // ブログ的に permalink を表示 
<h1>[[テストページa>TEST/a]]</h1>
Contents of TOP section
**AA
[[パーマリンク>TEST/a]]

#includex(TEST/a,filter=B) // grep 的抜き出し
<h1>[[テストページa>TEST/a]]</h1>
*B 
Contents of B section
***BBB 
Contents of BBB section
**BC 
Contents of BC section

#includex(TEST/a,except=B) // grep -v 的抜き出し
<h1>[[テストページa>TEST/a]]</h1>
Contents of TOP section
**AA
Contents of AA section
#contentsx
*D
Contents of D section

#includex(TEST/a,section=(num=0:1)) // セクション抜き出し

0番セクションがページ先頭から第1見出しまで。1番セクションが第1見出しから第2見出しまで。

<h1>[[テストページa>TEST/a]]</h1>
Contents of TOP section
**AA
[[パーマリンク>TEST/a]]

#includex(TEST/a,section=(depth=1)) // 見出しの深さでセクション指定
<h1>[[テストページa>TEST/a]]</h1>
*B 
Contents of B section
*D
Contents of D section

FAQ

#include を一度に置き換えたい

プラグインの置き換え用プラグインとして replaceplugin.inc.php を作成してありますので利用してみてください。

複数ページの include は?

lsx.inc.php から include オプションを使用して行います。

ページタイトルアンカーについて

ページタイトル (<h1></h1>) に対するページ内アンカとして

'#z' . encode(ページ名)

のような文字列を採用しています。先頭の z は XHTML 文法的にアンカの先頭文字列は [A-Za-z] でなければならない(数字であってもならない)のでそのルールを保障するためにとりあえず z を付けています。

#contentsx の include オプションはこのアンカに対応しています。