拡張子のネーミング
マイクロアップの概念・用語、流儀・作法・掟 - 檜山正幸のキマイラ飼育記 メモ編 の拡張子ネーミング規則を変更する。
- JSON(で表現した)データを .json とする。
- クリーンHTMLフラグメント(で表現した)データを .htm, または .hfrag とする。
- 完全なHTML文書は、.html とする。
- 同じベース名の .json と .hfrag, .html は等価でなくてはならない。
- コード実行を提供するプロセッサ・リソースは .cgi とする。
- プロセッサ実行結果がキャッシュ可能なら、.json, .hfrag, .html として提供する。
- コレクショリソースに対するPUT, POST, GETはディレクトリURLを使う。
- 動詞は _verbパラメータ。主にPOSTの細分に使う。
- JSONP, HTMLPのコールバック名は _cbパラメータ。
- クエリ文字列の長さは _qsl パラメータ。壊れていると、BadRequestになるだろう。
- メッセージダイジェストを入れたい場合は、_mdパラメータ。
- APIキーを入れたい場合は、_apikパラメータ。これはPOSTでも使う。
- JSONPを提供するURLは、foo.json.js?_cb=mycb
- HTMLPを提供するURLは、foo.html.js?_cb=mycb, foo.hfrag.js?_cb=mycb
- foo.html.jsの_cbパラメータが省略された場合は、HTML body内での展開をするようにする。document.write(...)
- JSONデータ、またはHTMLデータを受け取ってビューの初期化をするJavaScriptメソッドの命名は、initViewとする。
- foo.json.js, foo.hfrag.js の結果、foo.json.js?_cb=hoge.initView, foo.hfrag.js?_cb=hoge.initView の結果はそれぞれ等価とする。
- ただし、foo.hfrag.js がinitViewを呼び出すわけではない。foo.json.js はデフォルトでグローバル関数 initViewを呼び出す。
- 同一ページ内で複数のマイクロアップを共存させるために、名前空間の規則を守らなくてはならない。
- foo.hfrag はHTMLフラグメント
- foo.json はJSONデータ
- foo.hfrag.js は document.write() で foo.hfrag を書き出す。
- foo.json.js は initView()にfoo.jsonが渡される。
- foo.hfrag.js?_cb=bar.initView は bar.initViewにfoo.hfragのテキストが渡される。
- foo.json.js?_cb=bar.initView は bar.initView()にfoo.jsonが渡される。
予定では次のように書けるはず。JSONデータさえ置いておけばよい。
// ファイルフルパスを分解、加工する
doset {
ecoh %0 | fname:ext >: "ext",
echo %0 | fname:subext >: "subext",
echo %0 | fname:replace-ext .json >: "jsonData",
};
// テンプレートファイル名を作る
doset {
["tpl", echo %%subext, echo %%ext] | text:join >: "templateFile"
};
// 実行
expand --resolve %%jsonData | print --place=include %%templateFile