こんにちは、株式会社Pentagon代表の山本です。
https://pentagon.tokyo
当社では「アプリを駆使した事業を立ち上げたい」方のために、アプリの設計・デザイン・開発までまるっとサポートしています。
今回は、テンプレートからファイルを生成するために、Mustacheを使ってみたので、まとめておきます。
Mustacheとは、ひげ括弧で記述されたテンプレートに値を埋め込んで、ファイルを出力するためのライブラリになります。
使い方は簡単😌
import 'package:mustache/mustache.dart';
main() {
var source = '''
{{# names }}
<div>{{ lastname }}, {{ firstname }}</div>
{{/ names }}
{{^ names }}
<div>No names.</div>
{{/ names }}
{{! I am a comment. }}
''';
var template = Template(source, name: 'template-filename.html');
var output = template.renderString({'names': [
{'firstname': 'Greg', 'lastname': 'Lowe'},
{'firstname': 'Bob', 'lastname': 'Johnson'}
]});
print(output);
}
TemplateクラスにテンプレートのString(source)とファイル名を渡してTemplateインスタンスを初期化します。
その後、renderStringによりJSONを渡せば、JSONが埋め込まれたファイルが出力されます。
{{# names }}
もしnamesが存在すれば、次の{{/ names }} までが実行されます。
{{^ names }}
逆に、namesが存在しなければ、次の{{/ names }} までが実行されます。
その他にもLambdasやPartialを使えたりします。
詳しくは、MUSTACHE MANUALを読んでください。