サマリ | 一番シンプルなソースコード表示プラグイン |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.5.3 |
投稿者 | umorigu |
投稿日 | 2021-07-11 (日) 22:45:36 |
ライセンス | GPL v2 |
「ハイライトしない」ソースコードコード表示プラグインです。
シンプルな分、外部依存がなく、PHPバージョン依存が少ないため、PHPのバージョンやPukiWikiのバージョンが上がっても安定して動作することが期待できます。
他のソースコード表示プラグインの代替として機能します。 プラグインや依存している外部ライブラリのメンテナンスが停止していて最新環境に適応できない場合にこのプラグインに処理を委譲する使い方ができます。
plugin/code_x.inc.php:
<?php // code_x.inc.php v1.0 // // code_x plugin // Copyright 2021 umorigu function plugin_code_x_inline() { $args = func_get_args(); $escaped_src = trim(array_pop($args)); $class = ''; if ($add_class = array_shift($args)) { $class = $add_class; } return '<code class="' . htmlsc($class) . '">' . $escaped_src . '</code>'; } function plugin_code_x_convert() { $args = func_get_args(); $src = htmlsc(trim(array_pop($args))); $class = ''; if ($add_class = array_shift($args)) { $class = $add_class; } return '<pre class="' . htmlsc($class) . '">' . $src . '</pre>'; }
#code_x{{ #include <stdio.h> int main() { printf("Hello, World\n"); } }}
geshiプラグイン geshi.inc.php の代わりに code_x プラグインを使う例:
plugin/geshi.inc.php:
<?php require_once(PLUGIN_DIR . 'code_x.inc.php'); function plugin_geshi_convert() { $args = func_get_args(); if (func_num_args() >= 2) { return plugin_code_x_convert($args[0], $args[1]); } return plugin_code_x_convert($args[0]); }
このファイルを plugin/geshi.inc.php として保存します。
本文中でgeshiプラグインを使うとcode_xプラグインでシンプルな表示になります。
#geshi(C){{ #include <stdio.h> int main() { printf("Hello, World\n"); } }}
「複数行プラグイン」であり引数でソースコードを指定するプラグイン
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0)
複数行プラグインではないプラグイン