Skip to content

Commit

Permalink
Added examples copied from README, fixed README
Browse files Browse the repository at this point in the history
  • Loading branch information
damondouglas committed Feb 15, 2015
1 parent 8f12449 commit a08bb7d
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 12 deletions.
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ main() {
{{/ names }}
{{! I am a comment. }}
''';
var template = new Template(source, name: 'template-filename.html');
var output = template.renderString({'names': [
{'firstname': 'Greg', 'lastname': 'Lowe'},
{'firstname': 'Bob', 'lastname': 'Johnson'}
]});
print(output);
}
```
Expand Down Expand Up @@ -86,8 +86,8 @@ var output = t.renderString({'foo': 'bar'}); // bar

```dart
var t = new Template('{{# foo }}');
var lambda = (_) => 'bar'};
t.renderString({'foo': lambda); // bar
var lambda = (_) => 'bar';
t.renderString({'foo': lambda}); // bar
```

```dart
Expand All @@ -98,26 +98,26 @@ t.renderString({'foo': lambda); // shown

```dart
var t = new Template('{{# foo }}oi{{/ foo }}');
var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>'};
t.renderString({'foo': lambda); // <b>OI</b>
var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
t.renderString({'foo': lambda}); // <b>OI</b>
```

```dart
var t = new Template('{{# foo }}{{bar}}{{/ foo }}');
var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>'};
t.renderString({'foo': lambda, 'bar': 'pub'); // <b>PUB</b>
var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
```

```dart
var t = new Template('{{# foo }}{{bar}}{{/ foo }}');
var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>'};
t.renderString({'foo': lambda, 'bar': 'pub'); // <b>PUB</b>
var lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
```

In the following example `LambdaContext.renderSource(source)` re-parses the source string in the current context, this is the default behaviour in many mustache implementations. Since re-parsing the content is slow, and often not required, this library makes this step optional.

```dart
var t = new Template('{{# foo }}{{bar}}{{/ foo }}');
var lambda = (LambdaContext ctx) => ctx.renderSource(ctx.source + '{{cmd}}')};
t.renderString({'foo': lambda, 'bar': 'pub', 'cmd': 'build'); // pub build
t.renderString({'foo': lambda, 'bar': 'pub', 'cmd': 'build'}); // pub build
```
22 changes: 22 additions & 0 deletions example/basic.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
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 = new Template(source, name: 'template-filename.html');

var output = template.renderString({'names': [
{'firstname': 'Greg', 'lastname': 'Lowe'},
{'firstname': 'Bob', 'lastname': 'Johnson'}
]});

print(output);
}
33 changes: 33 additions & 0 deletions example/lambdas.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import 'package:mustache/mustache.dart';

main() {
var t = new Template('{{ foo }}');
var lambda = (_) => 'bar';
var output = t.renderString({'foo': lambda}); // bar
print(output);

t = new Template('{{# foo }}hidden{{/ foo }}');
lambda = (_) => 'shown';
output = t.renderString({'foo': lambda}); // shown
print(output);

t = new Template('{{# foo }}oi{{/ foo }}');
lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
output = t.renderString({'foo': lambda}); // <b>OI</b>
print(output);

t = new Template('{{# foo }}{{bar}}{{/ foo }}');
lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
output = t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
print(output);

t = new Template('{{# foo }}{{bar}}{{/ foo }}');
lambda = (LambdaContext ctx) => '<b>${ctx.renderString().toUpperCase()}</b>';
output = t.renderString({'foo': lambda, 'bar': 'pub'}); // <b>PUB</b>
print(output);

t = new Template('{{# foo }}{{bar}}{{/ foo }}');
lambda = (LambdaContext ctx) => ctx.renderSource(ctx.source + '{{cmd}}');
output = t.renderString({'foo': lambda, 'bar': 'pub', 'cmd': 'build'}); // pub build
print(output);
}
7 changes: 7 additions & 0 deletions example/nested_paths.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import 'package:mustache/mustache.dart';

main() {
var template = new Template('{{ author.name }}');
var output = template.renderString({'author': {'name': 'Greg Lowe'}});
print(output);
}
16 changes: 16 additions & 0 deletions example/partials.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:mustache/mustache.dart';

main() {
var partial = new Template('{{ foo }}', name: 'partial');

var resolver = (String name) {
if (name == 'partial-name') { // Name of partial tag.
return partial;
}
};

var t = new Template('{{> partial-name }}', partialResolver: resolver);

var output = t.renderString({'foo': 'bar'}); // bar
print(output);
}

0 comments on commit a08bb7d

Please sign in to comment.