説明


contents プラグインは実際のところプラグインではなく、本体組み込みの機能です。
拡張がしにくいのでプラグイン化しました。
アイデアの多くは自作プラグイン/ls2_1.inc.phpからきています。ということで名前はcontents2_1 です。

#contents をおいた位置より上の見出しが表示されても無駄だなと思っていた人が使うかもしれません。例えばこのページだと上の contents2_1.inc.php のリンクがいらない、と。

MenuBar

#contents2_1(fromhere=false,hierarchy=false)

としておくのも便利かもしれません。hierarchy はお好みで。

既知の問題点

問題1.include オプションを完全にはできないことが発覚しました。アンカー番号は convert_html が呼ばれた回数が振られるのですが、#contents2_1
が数えているのは結局のところ #include の数にしかすぎません。
つまり、convert_html を呼ぶ include 以外のプラグインが呼ばれるときっとずれます。

問題2.#include でとりこまれたページで表示される #contents2_1
のアンカーリンクの番号がまた1からはじまりうまくいきません。これは痛いです。

考察1.convert_html 中の static $contents_id を global にしたらどうかと考えてみましたが、だめです。

考察2.plugin_contents2_1_convert を convert_html が呼んだときに引数で $contents_id を渡す
ことができたらどうかと考えてみましたが、そのように convert_html を改造できたとしても、問題2は直せますが問題1は変わりません。

ちなみに本体組み込み #contents は convert_html が $contents_id を渡しているこのような形です。include オプションがないのでこれ以上は悩む必要がないのです。

問題2のためにやりたいところですが、はてさて・・・。

考察3.とりあえず固定アンカーで逃げる。現在の pukiwiki はデフォルトで $fixed_heading_anchor = 1; のようなので全然ありみたいですね。

現状解.固定アンカーで逃げています。とりあえず解決

書式

#contents2_1([オプション])
&contents2_1([オプション]);

インライン型プラグイン時は強制的に display=inline となります。

オプション

ダウンロード

拡張子の番号をはずして、plugin ディレクトリに放りこんでください。

リビジョン日付変更点
&ref(): File not found: "contents2_1.inc.php.13" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";03/05/2005include ページタイトルに対するアンカーが固定なアンカーになるように変更。自作プラグイン/include2.inc.phpの最新版が対応しているので include にはそちらを利用してください。これに伴い改造include.inc.phpは表面上消しました。
&ref(): File not found: "contents2_1.inc.php.12" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";03/04/2005自作プラグイン/include2.inc.phpの対応を受けて対応。#include, #include2 共に認識します。
&ref(): File not found: "contents2_1.inc.php.11" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/26/2005既知の問題点を固定アンカーで回避。display=inline 時の区切り文字等をオプションでも設定できるようにした。
&ref(): File not found: "contents2_1.inc.php.10" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/18/2005要望をうけてリストではなく横一列に表示する機能を追加。それをうけて hierarchy=true,false オプションは display=hierarchy,flat となり、今回の追加機能は display=inline と指定することになりました。depth オプション指定時のレベルを変更。include ページ名がレベル0、見出しはレベル1以降とたぶんわかりやすくなりました。インライン型プラグインとして実行可能に。ただし強制的に display=inline です。CSSで設定しやすいようにHTMLにクラス名を追加。ソースコードの整理。
&ref(): File not found: "contents2_1.inc.php.9" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/14/2005typo が原因で depth オプションが正しく動いていなかったので修正
&ref(): File not found: "contents2_1.inc.php.7" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/08/2005pageオプション使用時でもリンクにアンカーしか使用していなかったので修正
&ref(): File not found: "contents2_1.inc.php.6" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/08/2005v1.05の修正でv1.04時に修正したはずの症状がまたでていたので修正
&ref(): File not found: "contents2_1.inc.php.5" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/08/2005今度は再帰 include のときのアンカーの処理が間違っていたので修正
&ref(): File not found: "contents2_1.inc.php.4" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/08/2005別のところでまたアンカー付けの処理が間違っていたので修正
&ref(): File not found: "contents2_1.inc.php.3" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/08/2005アンカー付けの処理が間違っていたので修正
&ref(): File not found: "contents2_1.inc.php.2" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/06/2005page オプションを指定した場合 fromhere オプションが発動しないようにした。
&ref(): File not found: "contents2_1.inc.php.1" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-contents2_1.inc.php";02/06/2005初版

もっと便利に - include2.inc.php

include プラグインは現状ではページタイトルの見出しにアンカーをつけてくれないので、
ジャンプできません。

自作プラグイン/include2.inc.php は #contetns2_1 のアンカーリンクに対応しているのでそちらを利用するとページタイトルへジャンプできるようになります。

使用例

次のような「とあるページ」があったとします。

**AA
#contents2_1
*B
***BBB
**CC
#include(別のページ)
*D

「別のページ」の内容は次のとおりだったとします。

*1
#contents2_1
**11

「とあるページ」の #contetns2_1 が変更されると思ってください。


#contents2_1

#contents2_1(fromhere=false)

MenuBar に設定する場合は fromhere=false を用いることになるでしょう。


#contents2_1(page=別のページ)

#contents2_1(compact=false)
#contents2_1(compact=false,include=false)

#contents2_1(compact=false,depth=1-2)
#contents2_1(compact=true,depth=1-2)
#contents2_1(compact=false,depth=1-2,include=false)

#contents2_1(display=flat)

#contents2_1(display=inline,depth=1)

[ B | 1 | D ]


#contents2_1(number=5)

#contents2_1(except=B)

#contents2_1(include=false)

*1 \d+ は正規表現による表記です。例えば \d は数字のことです。
*2 \d*[-+]?\d* は正規表現による表記です。\d は数字のことです。

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-03 (金) 19:20:35 by pukiwiki 1.5.4