PukiWiki の calendar_viewer でページ内のプラグインを無視してみる
4番目の引数を与えると # から始まる行を無視する。4番目の引数は false 以外ならあるだけで ok
action プラグインとして使うときは ignore_blockplugin という引数を与えるとブロックレベルプラグインを無視します。
68a69
> $ignore_blockplugin = false;
101a103,106
> if ($func_args[4]) {
> $ignore_blockplugin = true;
> }
>
179a185,187
> if ( $ignore_blockplugin ) {
> $body = convert_html(strip_blockplugin(get_source($page)));
> } else {
180a189
> }
254a264,266
> if ( $ignore_blockplugin ) {
> $link .= 'ignore_blockplugin&';
> }
288a301
> $ignore_blockplugin = isset( $vars['ignore_blockplugin'] );
296c309
< $args_array = array($vars['page'], $page_YM, $mode, $date_sep);
---
> $args_array = array($vars['page'], $page_YM, $mode, $date_sep, $ignore_blockplugin );
325a339,352
> /**
> * ブロックレベルプラグインを取り除く
> *
> * @param array $src Wiki ソース
> */
> function strip_blockplugin( $src ) {
> $result = array();
> foreach ( $src as $line ) {
> if ( !preg_match( '/^#/', $line ) ) {
> array_push( $result, $line );
> }
> }
> return $result;
> }
うん、見やすくなった。細かいことはまた今度考えよう。