diff --git a/static/grammars/badpenny.js b/static/grammars/badpenny.js
index 86865b9..3807439 100644
--- a/static/grammars/badpenny.js
+++ b/static/grammars/badpenny.js
@@ -7,7 +7,7 @@ badpenny = rr.Parser({
rr.Literal('}}')),
rr.Sequence(
rr.Literal('{{('),
- rr.SavedLiteral('tagname'),
+ rr.Node('name', rr.SingleLineText()),
rr.Literal('}}'),
rr.MultiLineText(),
rr.Literal('{{)'),
@@ -22,7 +22,7 @@ badpenny = rr.Parser({
rr.Literal('}}')),
rr.Sequence(
rr.Literal('{{['),
- rr.SavedLiteral('tagname'),
+ rr.Node('name', rr.SingleLineText()),
rr.Literal('}}'),
rr.MultiLineText(),
rr.Literal('{{]'),
@@ -31,7 +31,7 @@ badpenny = rr.Parser({
'value': rr.Node('value', rr.Sequence(
rr.Literal('{{'),
- rr.SingleLineText(),
+ rr.Node('name', rr.SingleLineText()),
rr.Literal('}}'))),
'chunk': rr.Or(
@@ -44,4 +44,7 @@ badpenny = rr.Parser({
rr.ZeroOrMore(rr.Ref('chunk')),
rr.EndOfText()))
}, [
+ rr.ChildToAttribute('container', 'name'),
+ rr.ChildToAttribute('repeated', 'name'),
+ rr.ChildToAttribute('value', 'name')
]);
diff --git a/static/test.js b/static/test.js
index d83f135..c520e6d 100644
--- a/static/test.js
+++ b/static/test.js
@@ -114,14 +114,16 @@ QUnit.test('Base', function(assert) {
assert.expect(1);
var content = [
'foo{{value1}}bar',
- 'foo{{(container}}contents{{)nottheend}}more contents{{)container}}bar',
- 'foo{{[repeated}}testing{{]notthis}}{{)repeated}}zig{{]repeated}}bar'
+ 'foo{{(container1}}contents{{)nottheend}}more contents{{)container1}}bar',
+ 'foo{{[repeated1}}testing{{]notthis}}{{)repeated1}}zig{{]repeated1}}bar'
].join('\n');
var expected = [
- 'foovalue1bar\n',
- 'foocontents{{)nottheend}}more contentsbar\n',
- 'footesting{{]notthis}}{{)repeated}}zigbar'
+ 'foobar\n',
+ 'foocontents{{)nottheend}}more contents',
+ 'bar\n',
+ 'footesting{{]notthis}}{{)repeated1}}zig',
+ 'bar'
].join('');
assert.equal(badpenny.parseFromString(content).innerHTML, expected);