WikiChree.COM 新規   編集   添付   管理  



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

Pkript の変更点

#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)|アクション(単独ページ・フォーム処理)|