#author("2026-02-12T04:58:36+09:00","default:kanateko","kanateko")
&tag(プラグイン,自作,追加);

#contentsx

*ページの有無でリンクを制御するプラグイン [#summary]

#infobox(plugin){{
name = npnl
ver = 0.2.0
pukiwiki = 1.5.4
update = 2026-02-12
}}

渡したページ名のページが存在すればリンクに変換し、なければ平文のまま出力するプラグイン。名前は ''N''o ''P''age ''N''o ''L''ink で npnl 。

テンプレートや他のページの記述を利用して要素を作成する以下のようなプラグインと組み合わせて使うことで、細かい表示の調整ができるようになる。

- [[infobox>../infobox]]
- [[inctmp>../inctmp]]
- [[inc_section>../inc_section]]
- [[inc_infobox>../inc_infobox]]
- [[plist>../plist]]

*プラグインの特徴 [#features]
- ページの有無でリンクか平文かを出し分ける。

*動作環境 [#requirements]
- PukiWiki 1.5.4 以降
- PHP 8.x

#clear

*ダウンロード [#download]
最新: [[https://github.com/kanateko/pukiwiki-plugin]]

|~日付|~バージョン|~備考|h
|CENTER:120|CENTER:60|590|c
|2026-02-12|0.2.0|#ul(相対パスに対応,ベースネームで表示するオプションを追加)|
|2026-01-31|0.1.0|#ul(初版作成)|

*セットアップ [#setup]
+ GitHub から「`npnl.inc.php`」をダウンロードする。
+ ダウンロードした「`npnl.inc.php`」を `plugin/` ディレクトリに配置する。

* 使用方法 [#usage]
 &npnl([オプション]){<文字列>};

渡した文字列がページ名ならリンクになり、そうでなければそのまま出力される。

引数で `base` を指定した場合、リンクの表示が &nop([[ベースネーム>ページ名]]); になる。

* 使用例 [#example]
例えば[[infobox>../infobox]]プラグインでテンプレートを作る際に

 |プラグイン|&npnl{{{{plugin}}}};|
 
このように作っておく。すると記事の方で

 #infobox(tekitou){{
 plugin = color
 }}
 
と書いた際に、 `color` というページがあれば、

 |プラグイン|[[color]]|

と置き換えられる。 `color` というページがなければ

 |プラグイン|color|
 
となる。

`base` オプションを使用した場合の動作は以下参照。

-&amp;npnl(base){../infobox}; → &npnl(base){../infobox};

* 備考 [#notes]
- テンプレート系のプラグインと組み合わせ前提で急いで作ったので、普通に記事を書く分にはあまり使い道は無いと思われる。

* コメント [#comment]
#mcomment