From 72c0278b137fef5f05506b0e3a9a5c52fa545103 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 29 Jun 2014 23:02:12 -0700 Subject: [PATCH] Style cleanups. --- grammars/mediawiki.js | 32 +++++++++++------------ test.js | 60 +++++++++++++++++++++++++++---------------- 2 files changed, 54 insertions(+), 38 deletions(-) diff --git a/grammars/mediawiki.js b/grammars/mediawiki.js index 3bac935..d3e4140 100644 --- a/grammars/mediawiki.js +++ b/grammars/mediawiki.js @@ -108,17 +108,17 @@ var mediawiki = { rr.Ref('multiline-wikichunk'), rr.Literal("'''''"))), 'multiline-blockquote': rr.Node('blockquote', rr.Sequence( - rr.Literal("
"), + rr.Literal('
'), rr.Ref('multiline-wikichunk'), - rr.Literal("
"))), + rr.Literal('
'))), 'multiline-code': rr.Node('code', rr.Sequence( - rr.Literal(""), + rr.Literal(''), rr.Ref('multiline-wikichunk'), - rr.Literal(""))), + rr.Literal(''))), 'multiline-comment': rr.Node('comment', rr.Sequence( - rr.Literal(""))), + rr.Literal(' -->'))), 'multiline-del1': rr.Node('del', rr.Sequence( rr.Literal(''), rr.Ref('multiline-wikichunk'), @@ -136,9 +136,9 @@ var mediawiki = { rr.MultiLineText(), rr.Literal('')), 'multiline-pre': rr.Node('pre', rr.Sequence( - rr.Literal("
"),
+      rr.Literal('
'),
       rr.MultiLineText(),
-      rr.Literal("
"))), + rr.Literal('
'))), 'multiline-tt': rr.Node('tt', rr.Sequence( rr.Literal(''), rr.Ref('multiline-wikichunk'), @@ -161,13 +161,13 @@ var mediawiki = { rr.Ref('singleline-wikichunk'), rr.Literal("'''''"))), 'singleline-code': rr.Node('code', rr.Sequence( - rr.Literal(""), + rr.Literal(''), rr.Ref('singleline-wikichunk'), - rr.Literal(""))), + rr.Literal(''))), 'singleline-comment': rr.Node('comment', rr.Sequence( - rr.Literal(""))), + rr.Literal(' -->'))), 'singleline-del1': rr.Node('del', rr.Sequence( rr.Literal(''), rr.Ref('singleline-wikichunk'), @@ -185,9 +185,9 @@ var mediawiki = { rr.MultiLineText(), rr.Literal('')), 'singleline-pre': rr.Node('pre', rr.Sequence( - rr.Literal("
"),
+      rr.Literal('
'),
       rr.SingleLineText(),
-      rr.Literal("
"))), + rr.Literal('
'))), 'singleline-tt': rr.Node('tt', rr.Sequence( rr.Literal(''), rr.Ref('singleline-wikichunk'), @@ -224,8 +224,8 @@ var mediawiki = { rr.Ref('list-ulli2'), rr.Ref('list-ulli3'), - rr.Ref('multiline-b'), rr.Ref('multiline-bi'), + rr.Ref('multiline-b'), rr.Ref('multiline-blockquote'), rr.Ref('multiline-code'), rr.Ref('multiline-comment'), @@ -243,8 +243,8 @@ var mediawiki = { rr.MultiLineText()), 'singleline-wikichunk': rr.Or( - rr.Ref('singleline-b'), rr.Ref('singleline-bi'), + rr.Ref('singleline-b'), rr.Ref('singleline-code'), rr.Ref('singleline-comment'), rr.Ref('singleline-del1'), diff --git a/test.js b/test.js index 509e1d8..82f95c8 100644 --- a/test.js +++ b/test.js @@ -1,26 +1,42 @@ -QUnit.test('Simple', function(assert) { +QUnit.module('mediawiki'); + +QUnit.test('Base', function(assert) { assert.expect(1); - var context = new rr.Context(mediawiki, - '=== Heading ===\n' + - 'This is a wiki doc.\n' + - "How about some '''bold and ''bold italic'''''.\n" + - 'I would also love some nowiki foo'); + var content = [ + "This is a paragraph with many text styles. This is ''italic'' and this ", + "is '''bold'''; this is '''''both'''''. This is underline as is ", + "this. This is '''''underlined, bold and italic'''''. ", + 'This is strikethrough, as is this. Source ', + 'code looks like this. Fixed width text looks like', + 'this.
This sentence is inline pre-formatted, which stops ',
+    "'''''this from being bold and italic.'''''
We can also ", + 'stop this from being underlined, or just try ', + '<pre>interrupting cow style.
This is a blockquote
", + '', + '== Header 2 ==', + "=== Header 3 ''with italics'' ===", + '==== Header 4 ====', + '===== Header 5 =====', + '====== Header 6 ======', + '----', + '* Item 1a', + '* Item 1b', + '** Item 2', + '*** Item 3', + '* Item 1c', + '# Item 1a', + '# Item 1b', + '## Item 2', + '### Item 3', + '# Item 1c', + ";I don't really understand what a definition is", + ': But blockquotes are easy', + ':: Even larger ones', + '::::: And really huge ones' + ].join('\n'); + var context = new rr.Context(mediawiki, content); var iterable = context.rules['wikidoc'].match(context); assert.equal(iterable.next().value.nodes[0].innerHTML, - '

Heading

This is a wiki doc.\n' + - "How about some bold and ''bold italic''.\n" + - 'I would also love some nowiki <b>foo</b>'); -}); - - -QUnit.test('ZeroOrMore', function(assert) { - assert.expect(1); - var rules = { - 'test': rr.Node('test', - rr.Sequence(rr.ZeroOrMore(rr.MultiLineText()), rr.EndOfText())) - }; - var context = new rr.Context(rules, 'foobar'); - var iterable = context.rules['test'].match(context); - assert.equal(iterable.next().value.nodes[0].outerHTML, - 'foobar'); + ''); });