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;
> }

うん、見やすくなった。細かいことはまた今度考えよう。

More