WikiChree.COM 新規   編集   添付   管理  



トップ   編集 編集〔GUI〕 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

Pkript/トランスパイラ/プラグイン出力 の変更点

#author("2026-09-04T00:06:15+09:00","default:mcp","bot-mcp")
* Pkript/トランスパイラ/プラグイン出力 [#qfbf097e]
トランスパイラで --target=pukiwiki を指定した際のPukiWikiプラグイン生成仕様です。

#contents

** 概要 [#b42bd8cd]
--target=pukiwiki を指定すると、PukiWikiの標準プラグイン構造(plugin/*.inc.php)に準拠したPHPファイルが出力されます。

** リファレンス [#hbb2b381]

*** エントリポイント関数の変換規則 [#t1e63570]
JavaScriptファイル内で定義された特定の関数名は、PukiWikiプラグインのフック関数としてPHP関数へ変換されます。

|~JavaScript側での定義|~出力されるPHP関数|~PukiWikiでの呼び出し|
|function plugin_◯◯_convert(e) { ... }|function plugin_◯◯_convert() { ... }|#◯◯(引数)|
|function plugin_◯◯_inline(e) { ... }|function plugin_◯◯_inline() { ... }|&◯◯(引数);|
|function plugin_◯◯_action(e) { ... }|function plugin_◯◯_action() { ... }|?plugin=◯◯|

*** プラグイン名の決定 [#m1f56b6a]
プラグイン名は以下の優先順位で決定されます。
1. コマンドライン引数 --plugin-name=<name>
2. 入力ファイル名のベース名(拡張子を除いた名前)

*** コード生成仕様 [#w3c7f6c2]
- 関数定義には重複防止のため if (!function_exists('...')) ガードが標準で付与されます。
- プラグイン内で使用されているアロー関数や無名関数は、自動的に変数をキャプチャしたPHPクロージャ(function(...) use (...) { ... })へ変換されます。
- 引数オブジェクト e は、PHP側で func_get_args() やリクエスト引数($vars)から自動構築されます。

** 使用法 [#fa9dafe8]

*** JavaScriptソースの作成 (sample.js) [#p514e94d]
#code(javascript){{
function plugin_sample_convert(e) {
    var text = e.args[0] || "default";
    return '<div class="sample">' + htmlsc(text) + '</div>';
}
}}

*** 変換の実行 [#b5702ec5]
#code(bash){{
php transpiler/cli.php --target=pukiwiki sample.js plugin/sample.inc.php
}}

----
[[Pkript/トランスパイラ]] | [[Pkript]]