見出し画像

DartとMustacheでテンプレートからファイルを生成する方法

こんにちは、株式会社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を読んでください。

この記事が気に入ったらサポートをしてみませんか?