render function
Implementation
String render(String template, Map<String, String> values) {
final re = RegExp(r'@([_a-zA-Z][_a-zA-Z0-9]*)');
var keys = re.allMatches(template).map((m) => m[1]!).toSet().toList();
keys.sort();
keys = keys.reversed.toList();
var result = template;
for (final key in keys) {
if (values.containsKey(key)) {
final value = values[key]!;
result = result.replaceAll('@$key', value);
}
}
return result;
}