#author("2026-09-04T00:06:12+09:00","default:mcp","bot-mcp") #author("2026-09-04T00:09:07+09:00","default:guide","guide") * Pkript [#z2c15ced] Pkript(プクリプト)は、PukiWikiのプラグインをJavaScript風の構文で書くためのスクリプト言語です。 PHPへの直接アクセスを遮断し、出力もサニタイズされるため、安全にプラグインを実行できます。 - コア言語 / インタプリタ: https://github.com/TeamWikiChree-COM/Pkript - トランスパイラ (JS to PHP): https://github.com/TeamWikiChree-COM/Pkript-Transpiler - Pkript言語: https://github.com/TeamWikiChree-COM/Pkript - Pkriptトランスパイラ: https://github.com/TeamWikiChree-COM/Pkript-Transpiler ※WikiChree.COM内では直接設定できない項目もございますが、ご了承ください。 #contents ** 実行形態 [#execution_modes] Pkriptには2種類の実行形態があります。 - インタプリタ実行: Wiki内でASTを逐次評価して実行します。Wikiページや設定ファイル上に直接記述して動かす場合に利用します。 - トランスパイラ実行: JavaScriptコードをネイティブなPHPコードへと事前変換します。独立したプラグインファイル(plugin/*.inc.php)を出力する場合や、より高速な動作が必要な場合に利用します。 ** ドキュメント [#p183503f] - [[Pkript/文法]] - 変数、関数、アロー関数、テンプレートリテラル、制御構文、try/catch、import、フォーム - [[Pkript/API]] - 組み込み関数、wiki / date / JSON / html / Math / Object、配列・文字列操作 - [[Pkript/トランスパイラ]] - JavaScriptコードをネイティブPHPコードに変換するトランスパイラの仕様・使い方 - [[Pkript/サンプル]] - Pkriptスクリプトのサンプル集 - [[Pkript/エラー一覧]] - エラーメッセージと対処法 - [[Pkript/設定]] - 設定オプション、直接呼び出し、セキュリティ ** クイックスタート [#gd71a97d] スクリプトはファイル(plugin/pkript/script/hello.js)またはWikiページ(:config/pkript/script/hello)に記述します。拡張子は .pks または .js です。 ファイル内に関数を定義します。 function plugin_hello_convert(e) { var args = func_get_args(); var name = args[0] || "World"; return "<p>Hello, " + htmlsc(name) + "!</p>"; } function plugin_hello_inline(e) { var name = e.args[0] || "World"; return "<span>Hello, " + htmlsc(name) + "!</span>"; } #highlight{{ function plugin_hello_convert(e) { var args = func_get_args(); var name = args[0] || "World"; return "<p>Hello, " + htmlsc(name) + "!</p>"; } function plugin_hello_inline(e) { var name = e.args[0] || "World"; return "<span>Hello, " + htmlsc(name) + "!</span>"; } }} Wikiページから呼び出します。 #pkript(hello, World) &pkript(hello, World); *** 呼び出し形式 [#n4bfd528] |~呼び出し|~実行される関数|~用途|h |#pkript(名前, 引数)|plugin_◯◯_convert(e)|ブロック要素(段落など)| |&pkript(名前, 引数);|plugin_◯◯_inline(e)|インライン要素(行内)| |?plugin=pkript&script=名前|plugin_◯◯_action(e)|アクション(単独ページ・フォーム処理)|