#author("2021-07-12T01:00:10+09:00","","")
#author("2021-07-12T02:11:23+09:00","","")
** code_x.inc.php [#g8224ff6]
|RIGHT:100|LEFT:360|c
|~サマリ|一番シンプルなソースコード表示プラグイン|
|~リビジョン|1.0|
|~対応バージョン|1.5.3|
|~投稿者|[[umorigu]]|
|~投稿日|&new{2021-07-11 (日) 22:45:36};|
|~ライセンス|PukiWikiと同じ|
|~ライセンス|GPL v2|

#contents

* 概要 [#kc8c5a8e]

「ハイライトしない」ソースコードコード表示プラグインです。


シンプルな分、外部依存がなく、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プラグインを直接使う例 [#simple_usage]

 #code_x{{
 #include <stdio.h>
 
 int main() {
   printf("Hello, World\n");
 }
 }}

** 他のプラグインの代わりにcode_xプラグインを使う例 [#code_alternatives]


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

** code_xを代替にできるソースコードハイライトプラグイン [#q8e29ef6]

「複数行プラグイン」であり引数でソースコードを指定するプラグイン

 define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0)

- [[../geshi.inc.php]]
- [[../highlighter.inc.php]]
- [[../sh.inc.php]]
- [[../codeprettify.inc.php]]
- [[../codehighlight.inc.php]]
- [[../code.inc.php]]

** code_xを代替にできないソースコードハイライトプラグイン [#s3ac3e06]

複数行プラグインではないプラグイン

- [[../highlightjs.inc.php]]

----

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.036 sec.

OSDN