動的コンテンツ生成
C#スクリプトを埋め込み Next Design の API を利用して動的にコンテンツを生成することで、モデル情報や集計結果などを自由自在に表現できます。
概要
- マークダウンエディタのビュー定義にC#スクリプトを埋め込むことで、同じビューを持つモデルを対象に、モデル情報をマークダウン形式で書式化したり、関連モデルの情報を収集して集計結果を表示したりできます。
- モデルごとにC#スクリプトを記述することで、プロファイルを変更することなくそのモデル固有の動的にコンテンツを生成できます。
ビュー定義のスクリプトを利用する
[マークダウンエディタ] のビュー定義にスクリプトを埋め込み、同じビューを持つモデルから動的コンテンツを生成して表示させるには、次の手順で行います。
操作手順
- 対象モデルの [マークダウンエディタ] ビューに切り替えます。
- インスペクタを表示し、[マークダウンエディタ] タブに切り替えます。
- [マークダウンエディタ] タブで以下のように設定します。
- 設定項目の [フィールド] にスクリプト を記述するフィールドを指定します。
- 設定項目の [実行モード] で [ビュー定義のスクリプトを実行] を選択します。
- [ビュー定義のスクリプト] ボタンを押下し、[スクリプトの編集] ダイアログでスクリプトを記述します。
- [スクリプトの編集] ダイアログで [OK] ボタンを押下してダイアログを閉じると、[マークダウンエディタ] ビューにスクリプトで生成されたマークダウンの内容が表示されます。
注記
- 設定項目の [実行モード] で [ビュー定義のスクリプトを実行] を選択すると、設定項目の [フィールド] を変更できなくなります。
- 設定項目の [フィールド] を変更する場合は、設定項目の [実行モード] で [ビュー定義のスクリプトを実行] 以外を選択してから行ってください。
ヒント
- コンテンツの形式に HTML 形式を指定してスクリプトで HTML 形式の動的コンテンツを生成すれば、よりリッチな表現も可能です。
モデルごとのスクリプトを利用する
モデルごとにスクリプトを記述し、そのモデル固有の動的コンテンツを生成して表示させるには、次の手順で行います。
操作手順
- 対象モデルの [マークダウンエディタ] ビューに切り替えます。
- インスペクタを表示し、[マークダウンエディタ] タブに切り替えます。
- [マークダウンエディタ] タブで以下のように設定します。
- 設定項目の [フィールド] にスクリプトを記述するフィールドを指定します。
- 設定項目の [実行モード] で [ビュー毎でスクリプトを定義可能] を選択します。
- [マークダウンエディタ] ビューの右上にある [編集] アイコンをクリックしてスクリプトの編集領域を開き、スクリプトを記述します。
- スクリプトの編集領域上部のツールバーから [スクリプト実行モード] トグルアイコンを押下して ON にすると、[マークダウンエディタ] ビューにスクリプトで生成されたマークダウンの内容が表示されます。
サンプルスクリプト
// Target Model
var targetModel = (IModel)Params["TargetModel"];
var sb = new StringBuilder();
// Child models
var models = targetModel.GetChildren();
foreach ( var model in models )
{
sb.AppendLine(@$"* [{model.Name}](modelId://{model.Id}) ");
}
sb.AppendLine(@$"
モデル数: {models.Count}");
// returns
var ret = $@"
## {targetModel.Name}
{sb}
";
return ret;