diff --git a/grammars/mediawiki.js b/grammars/mediawiki.js
index b15aa7e..0cee575 100644
--- a/grammars/mediawiki.js
+++ b/grammars/mediawiki.js
@@ -81,7 +81,7 @@ var mediawiki = {
'list-pre': rr.Node('pre', rr.Sequence(
rr.StartOfLine(),
rr.Literal(' '),
- rr.Ref('singleline-wikichunk'),
+ rr.SingleLineText(),
rr.EndOfLine())),
'list-ulli1': rr.Node('ulli1', rr.Sequence(
rr.StartOfLine(),
@@ -203,7 +203,7 @@ var mediawiki = {
'special-nowikisingle': rr.Literal(''),
- 'multiline-wikichunk': rr.Or(
+ 'multiline-wikichunk': rr.ZeroOrMore(rr.Or(
rr.Ref('list-blockquote1'),
rr.Ref('list-blockquote2'),
rr.Ref('list-blockquote3'),
@@ -240,9 +240,9 @@ var mediawiki = {
rr.Ref('special-nowikisingle'),
- rr.MultiLineText()),
+ rr.MultiLineText())),
- 'singleline-wikichunk': rr.Or(
+ 'singleline-wikichunk': rr.ZeroOrMore(rr.Or(
rr.Ref('singleline-bi'),
rr.Ref('singleline-b'),
rr.Ref('singleline-code'),
@@ -258,10 +258,10 @@ var mediawiki = {
rr.Ref('special-nowikisingle'),
- rr.SingleLineText()),
+ rr.SingleLineText())),
'paragraph': rr.Node('p', rr.Sequence(
- rr.ZeroOrMore(rr.Ref('multiline-wikichunk')),
+ rr.Ref('multiline-wikichunk'),
rr.Or(
rr.Sequence(rr.EndOfLine(), rr.Literal('\n')),
rr.EndOfText()))),
diff --git a/test.js b/test.js
index 45e6833..fbfd9d2 100644
--- a/test.js
+++ b/test.js
@@ -48,8 +48,8 @@ QUnit.test('Base', function(assert) {
'<u>this from being underlined</u>, or just try \n',
'<pre>interrupting cow style.</pre>This is a ',
"comment and \nshouldn't be visible
This is a ",
- "blockquote
Header 2
Header 3 ''with ",
- "italics''
Header 4
Header 5
Header 6
",
+ 'blockquoteHeader 2
Header 3 with ',
+ 'italics
Header 4
Header 5
Header 6
',
'Item 1aItem 1bItem 2',
'Item 3Item 1cItem 1aItem 1b',
'Item 2Item 3Item 1c',
@@ -63,5 +63,21 @@ QUnit.test('Base', function(assert) {
var context = new rr.Context(mediawiki, content);
var iterable = context.rules['wikidoc'].match(context);
assert.equal(iterable.next().value.nodes[0].innerHTML, expected);
- console.log(expected);
+});
+
+QUnit.test('singleline-wikichunk', function(assert) {
+ assert.expect(1);
+ var content = [
+ "Regular line ''with italics''",
+ "=== Header 3 ''with italics'' ==="
+ ].join('\n');
+
+ var expected = [
+ 'Regular line with italics',
+ '
Header 3 with italics
'
+ ].join('');
+
+ var context = new rr.Context(mediawiki, content);
+ var iterable = context.rules['wikidoc'].match(context);
+ assert.equal(iterable.next().value.nodes[0].innerHTML, expected);
});