Style cleanups.

This commit is contained in:
Ian Gulliver
2014-06-29 23:02:12 -07:00
parent d3a039fa12
commit 72c0278b13
2 changed files with 54 additions and 38 deletions

View File

@@ -108,17 +108,17 @@ var mediawiki = {
rr.Ref('multiline-wikichunk'),
rr.Literal("'''''"))),
'multiline-blockquote': rr.Node('blockquote', rr.Sequence(
rr.Literal("<blockquote>"),
rr.Literal('<blockquote>'),
rr.Ref('multiline-wikichunk'),
rr.Literal("</blockquote>"))),
rr.Literal('</blockquote>'))),
'multiline-code': rr.Node('code', rr.Sequence(
rr.Literal("<code>"),
rr.Literal('<code>'),
rr.Ref('multiline-wikichunk'),
rr.Literal("</code>"))),
rr.Literal('</code>'))),
'multiline-comment': rr.Node('comment', rr.Sequence(
rr.Literal("<!-- "),
rr.Literal('<!-- '),
rr.MultiLineText(),
rr.Literal(" -->"))),
rr.Literal(' -->'))),
'multiline-del1': rr.Node('del', rr.Sequence(
rr.Literal('<del>'),
rr.Ref('multiline-wikichunk'),
@@ -136,9 +136,9 @@ var mediawiki = {
rr.MultiLineText(),
rr.Literal('</nowiki>')),
'multiline-pre': rr.Node('pre', rr.Sequence(
rr.Literal("<pre>"),
rr.Literal('<pre>'),
rr.MultiLineText(),
rr.Literal("</pre>"))),
rr.Literal('</pre>'))),
'multiline-tt': rr.Node('tt', rr.Sequence(
rr.Literal('<tt>'),
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("<code>"),
rr.Literal('<code>'),
rr.Ref('singleline-wikichunk'),
rr.Literal("</code>"))),
rr.Literal('</code>'))),
'singleline-comment': rr.Node('comment', rr.Sequence(
rr.Literal("<!-- "),
rr.Literal('<!-- '),
rr.SingleLineText(),
rr.Literal(" -->"))),
rr.Literal(' -->'))),
'singleline-del1': rr.Node('del', rr.Sequence(
rr.Literal('<del>'),
rr.Ref('singleline-wikichunk'),
@@ -185,9 +185,9 @@ var mediawiki = {
rr.MultiLineText(),
rr.Literal('</nowiki>')),
'singleline-pre': rr.Node('pre', rr.Sequence(
rr.Literal("<pre>"),
rr.Literal('<pre>'),
rr.SingleLineText(),
rr.Literal("</pre>"))),
rr.Literal('</pre>'))),
'singleline-tt': rr.Node('tt', rr.Sequence(
rr.Literal('<tt>'),
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'),

60
test.js
View File

@@ -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>nowiki <b>foo</b></nowiki>');
var content = [
"This is a paragraph with many text styles. This is ''italic'' and this ",
"is '''bold'''; this is '''''both'''''. This is <u>underline</u> as is ",
"<ins>this</ins>. This is <u>'''''underlined, bold and italic'''''</u>. ",
'This is <del>strikethrough</del>, as is <strike>this</strike>. Source ',
'code looks like <code>this</code>. Fixed width text looks like',
'<tt>this</tt>. <pre>This sentence is inline pre-formatted, which stops ',
"'''''this from being bold and italic.'''''</pre> <nowiki>We can also ",
'stop <u>this from being underlined</u></nowiki>, or just try ',
'<<nowiki/>pre>interrupting cow style.</pre><!-- This is a comment and ',
"shouldn't be visible --><blockquote>This is a blockquote</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,
'<h3>Heading</h3>This is a wiki doc.\n' +
"How about some <b>bold and ''bold italic</b>''.\n" +
'I would also love some nowiki &lt;b&gt;foo&lt;/b&gt;');
});
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,
'<test>foobar</test>');
'');
});