render method
Render the view with mustache
Implementation
String render() {
// Read the main template
final templateContent = _readTemplate(templatePath);
final template = Template(templateContent, name: templatePath);
// Prepare data with i18n helpers
final viewData = Map<String, dynamic>.from(data);
// Add i18n helpers to template data
viewData['__'] = (String key, [Map<String, dynamic>? params]) {
return i18n.trans(key, params: params);
};
// Render the main template
final rendered = template.renderString(viewData);
// If layout is specified, wrap the rendered content
if (layout != null) {
final layoutContent = _readTemplate(layout!);
final layoutTemplate = Template(layoutContent, name: layout!);
final layoutData = Map<String, dynamic>.from(data);
layoutData['content'] = rendered;
layoutData['__'] = viewData['__'];
return layoutTemplate.renderString(layoutData);
}
return rendered;
}