Move static content into /static

This commit is contained in:
Ian Gulliver
2014-07-04 16:27:57 -04:00
parent 110a0418a7
commit e5daba4d86
7 changed files with 8 additions and 8 deletions

View File

@@ -0,0 +1,330 @@
mediawiki = rr.Parser({
'list-blockquote1': rr.Node('blockquote1', rr.Sequence(
rr.StartOfLine(),
rr.Literal(': '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-blockquote2': rr.Node('blockquote2', rr.Sequence(
rr.StartOfLine(),
rr.Literal(':: '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-blockquote3': rr.Node('blockquote3', rr.Sequence(
rr.StartOfLine(),
rr.Literal('::: '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-blockquote4': rr.Node('blockquote4', rr.Sequence(
rr.StartOfLine(),
rr.Literal(':::: '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-blockquote5': rr.Node('blockquote5', rr.Sequence(
rr.StartOfLine(),
rr.Literal('::::: '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-def': rr.Node('def', rr.Sequence(
rr.StartOfLine(),
rr.Literal(';'),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-h2': rr.Node('h2', rr.Sequence(
rr.StartOfLine(),
rr.Literal('== '),
rr.Ref('singleline-wikichunk'),
rr.Literal(' =='),
rr.EndOfLine())),
'list-h3': rr.Node('h3', rr.Sequence(
rr.StartOfLine(),
rr.Literal('=== '),
rr.Ref('singleline-wikichunk'),
rr.Literal(' ==='),
rr.EndOfLine())),
'list-h4': rr.Node('h4', rr.Sequence(
rr.StartOfLine(),
rr.Literal('==== '),
rr.Ref('singleline-wikichunk'),
rr.Literal(' ===='),
rr.EndOfLine())),
'list-h5': rr.Node('h5', rr.Sequence(
rr.StartOfLine(),
rr.Literal('===== '),
rr.Ref('singleline-wikichunk'),
rr.Literal(' ====='),
rr.EndOfLine())),
'list-h6': rr.Node('h6', rr.Sequence(
rr.StartOfLine(),
rr.Literal('====== '),
rr.Ref('singleline-wikichunk'),
rr.Literal(' ======'),
rr.EndOfLine())),
'list-hr': rr.Node('hr', rr.Sequence(
rr.StartOfLine(),
rr.Literal('----'),
rr.EndOfLine())),
'list-olli1': rr.Node('olli1', rr.Sequence(
rr.StartOfLine(),
rr.Literal('# '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-olli2': rr.Node('olli2', rr.Sequence(
rr.StartOfLine(),
rr.Literal('## '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-olli3': rr.Node('olli3', rr.Sequence(
rr.StartOfLine(),
rr.Literal('### '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-pre': rr.Node('preline', rr.Sequence(
rr.StartOfLine(),
rr.Literal(' '),
rr.SingleLineText(),
rr.Insert('\n'),
rr.EndOfLine())),
'list-ulli1': rr.Node('ulli1', rr.Sequence(
rr.StartOfLine(),
rr.Literal('* '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-ulli2': rr.Node('ulli2', rr.Sequence(
rr.StartOfLine(),
rr.Literal('** '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'list-ulli3': rr.Node('ulli3', rr.Sequence(
rr.StartOfLine(),
rr.Literal('*** '),
rr.Ref('singleline-wikichunk'),
rr.EndOfLine())),
'multiline-a': rr.Node('a', rr.Sequence(
rr.Literal('[['),
rr.Node('href', rr.SingleLineText()),
rr.Literal('|'),
rr.Ref('multiline-wikichunk'),
rr.Literal(']]'))),
'multiline-b': rr.Node('b', rr.Sequence(
rr.Literal("'''"),
rr.Ref('multiline-wikichunk'),
rr.Literal("'''"))),
'multiline-bi': rr.Node('bi', rr.Sequence(
rr.Literal("'''''"),
rr.Ref('multiline-wikichunk'),
rr.Literal("'''''"))),
'multiline-blockquote': rr.Node('blockquote', rr.Sequence(
rr.Literal('<blockquote>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</blockquote>'))),
'multiline-code': rr.Node('code', rr.Sequence(
rr.Literal('<code>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</code>'))),
'multiline-comment': rr.Hidden(rr.Sequence(
rr.Literal('<!-- '),
rr.MultiLineText(),
rr.Literal(' -->'))),
'multiline-del1': rr.Node('del', rr.Sequence(
rr.Literal('<del>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</del>'))),
'multiline-del2': rr.Node('del', rr.Sequence(
rr.Literal('<strike>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</strike>'))),
'multiline-i': rr.Node('i', rr.Sequence(
rr.Literal("''"),
rr.Ref('multiline-wikichunk'),
rr.Literal("''"))),
'multiline-figure': rr.Node('figure', rr.Sequence(
rr.Literal('[[File:'),
rr.Node('src', rr.SingleLineText()),
rr.ZeroOrMore(rr.Sequence(
rr.Literal('|'),
rr.Node('option', rr.SingleLineText()))),
rr.Literal('|'),
rr.Node('figcaption', rr.Ref('multiline-wikichunk')),
rr.Literal(']]'))),
'multiline-nowiki': rr.Sequence(
rr.Literal('<nowiki>'),
rr.MultiLineText(),
rr.Literal('</nowiki>')),
'multiline-pre': rr.Node('pre', rr.Sequence(
rr.Literal('<pre>'),
rr.MultiLineText(),
rr.Literal('</pre>'))),
'multiline-tt': rr.Node('tt', rr.Sequence(
rr.Literal('<tt>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</tt>'))),
'multiline-u1': rr.Node('u', rr.Sequence(
rr.Literal('<u>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</u>'))),
'multiline-u2': rr.Node('u', rr.Sequence(
rr.Literal('<ins>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</ins>'))),
'singleline-a': rr.Node('a', rr.Sequence(
rr.Literal('[['),
rr.Node('href', rr.SingleLineText()),
rr.Literal('|'),
rr.Ref('singleline-wikichunk'),
rr.Literal(']]'))),
'singleline-b': rr.Node('b', rr.Sequence(
rr.Literal("'''"),
rr.Ref('singleline-wikichunk'),
rr.Literal("'''"))),
'singleline-bi': rr.Node('bi', rr.Sequence(
rr.Literal("'''''"),
rr.Ref('singleline-wikichunk'),
rr.Literal("'''''"))),
'singleline-code': rr.Node('code', rr.Sequence(
rr.Literal('<code>'),
rr.Ref('singleline-wikichunk'),
rr.Literal('</code>'))),
'singleline-comment': rr.Hidden(rr.Sequence(
rr.Literal('<!-- '),
rr.SingleLineText(),
rr.Literal(' -->'))),
'singleline-del1': rr.Node('del', rr.Sequence(
rr.Literal('<del>'),
rr.Ref('singleline-wikichunk'),
rr.Literal('</del>'))),
'singleline-del2': rr.Node('del', rr.Sequence(
rr.Literal('<strike>'),
rr.Ref('singleline-wikichunk'),
rr.Literal('</strike>'))),
'singleline-i': rr.Node('i', rr.Sequence(
rr.Literal("''"),
rr.Ref('singleline-wikichunk'),
rr.Literal("''"))),
'singleline-nowiki': rr.Sequence(
rr.Literal('<nowiki>'),
rr.MultiLineText(),
rr.Literal('</nowiki>')),
'singleline-pre': rr.Node('pre', rr.Sequence(
rr.Literal('<pre>'),
rr.SingleLineText(),
rr.Literal('</pre>'))),
'singleline-tt': rr.Node('tt', rr.Sequence(
rr.Literal('<tt>'),
rr.Ref('singleline-wikichunk'),
rr.Literal('</tt>'))),
'singleline-u1': rr.Node('u', rr.Sequence(
rr.Literal('<u>'),
rr.Ref('singleline-wikichunk'),
rr.Literal('</u>'))),
'singleline-u2': rr.Node('u', rr.Sequence(
rr.Literal('<ins>'),
rr.Ref('singleline-wikichunk'),
rr.Literal('</ins>'))),
'special-nowikisingle': rr.Literal('<nowiki/>'),
'multiline-wikichunk': rr.ZeroOrMore(rr.Or(
rr.Ref('list-blockquote1'),
rr.Ref('list-blockquote2'),
rr.Ref('list-blockquote3'),
rr.Ref('list-blockquote4'),
rr.Ref('list-blockquote5'),
rr.Ref('list-def'),
rr.Ref('list-h2'),
rr.Ref('list-h3'),
rr.Ref('list-h4'),
rr.Ref('list-h5'),
rr.Ref('list-h6'),
rr.Ref('list-hr'),
rr.Ref('list-olli1'),
rr.Ref('list-olli2'),
rr.Ref('list-olli3'),
rr.Ref('list-pre'),
rr.Ref('list-ulli1'),
rr.Ref('list-ulli2'),
rr.Ref('list-ulli3'),
rr.Ref('multiline-figure'),
rr.Ref('multiline-a'),
rr.Ref('multiline-bi'),
rr.Ref('multiline-b'),
rr.Ref('multiline-blockquote'),
rr.Ref('multiline-code'),
rr.Ref('multiline-comment'),
rr.Ref('multiline-del1'),
rr.Ref('multiline-del2'),
rr.Ref('multiline-i'),
rr.Ref('multiline-nowiki'),
rr.Ref('multiline-pre'),
rr.Ref('multiline-tt'),
rr.Ref('multiline-u1'),
rr.Ref('multiline-u2'),
rr.Ref('special-nowikisingle'),
rr.MultiLineText())),
'singleline-wikichunk': rr.ZeroOrMore(rr.Or(
rr.Ref('singleline-a'),
rr.Ref('singleline-bi'),
rr.Ref('singleline-b'),
rr.Ref('singleline-code'),
rr.Ref('singleline-comment'),
rr.Ref('singleline-del1'),
rr.Ref('singleline-del2'),
rr.Ref('singleline-i'),
rr.Ref('singleline-nowiki'),
rr.Ref('singleline-pre'),
rr.Ref('singleline-tt'),
rr.Ref('singleline-u1'),
rr.Ref('singleline-u2'),
rr.Ref('special-nowikisingle'),
rr.SingleLineText())),
'paragraph': rr.Node('p', rr.Sequence(
rr.Ref('multiline-wikichunk'),
rr.Or(
rr.Sequence(rr.EndOfLine(), rr.Literal('\n')),
rr.EndOfText()))),
'main': rr.Node('wikidoc', rr.Sequence(
rr.ZeroOrMore(rr.Ref('paragraph')),
rr.EndOfText()))
}, [
rr.SplitElementAndNest('bi', ['b', 'i']),
rr.GroupSiblings('ul', ['ulli1', 'ulli2', 'ulli3']),
rr.GroupSiblings('ul', ['ulli2', 'ulli3']),
rr.GroupSiblings('ul', ['ulli3']),
rr.RenameElement('ulli1', 'li'),
rr.RenameElement('ulli2', 'li'),
rr.RenameElement('ulli3', 'li'),
rr.GroupSiblings('ol', ['olli1', 'olli2', 'olli3']),
rr.GroupSiblings('ol', ['olli2', 'olli3']),
rr.GroupSiblings('ol', ['olli3']),
rr.RenameElement('olli1', 'li'),
rr.RenameElement('olli2', 'li'),
rr.RenameElement('olli3', 'li'),
rr.GroupSiblings('pre', ['preline']),
rr.ExtractElement('preline'),
rr.SplitElementAndNest('src', ['imgtemp', 'src']),
rr.ChildToAttribute('imgtemp', 'src'),
rr.RenameElement('imgtemp', 'img'),
rr.ChildToAttribute('a', 'href'),
rr.GroupSiblings('blockquote', [
'blockquote1', 'blockquote2', 'blockquote3', 'blockquote4',
'blockquote5']),
rr.GroupSiblings('blockquote', [
'blockquote2', 'blockquote3', 'blockquote4', 'blockquote5']),
rr.GroupSiblings('blockquote', ['blockquote3', 'blockquote4', 'blockquote5']),
rr.GroupSiblings('blockquote', ['blockquote4', 'blockquote5']),
rr.GroupSiblings('blockquote', ['blockquote5']),
rr.ExtractElement('blockquote1'),
rr.ExtractElement('blockquote2'),
rr.ExtractElement('blockquote3'),
rr.ExtractElement('blockquote4'),
rr.ExtractElement('blockquote5')
]);

1006
static/recentrunes.js Normal file

File diff suppressed because it is too large Load Diff

15
static/test.html Normal file
View File

@@ -0,0 +1,15 @@
<html>
<head>
<meta charset="utf-8">
<title>RecentRunes tests</title>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-git.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="https://code.jquery.com/qunit/qunit-git.js"></script>
<script src="/recentrunes/static/recentrunes.js" charset="UTF-8"></script>
<script src="/recentrunes/static/grammars/mediawiki.js" charset="UTF-8"></script>
<script src="test.js" charset="UTF-8"></script>
</body>
</html>

108
static/test.js Normal file
View File

@@ -0,0 +1,108 @@
QUnit.module('mediawiki');
QUnit.test('Base', function(assert) {
assert.expect(1);
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',
' This line is pre-formatted and <del>not interpolated</del>',
' This line is also pre-formatted'
].join('\n');
var expected = [
'<p>This is a paragraph with many text styles. This is <i>italic</i> and ',
'this \nis <b>bold</b>; this is <b><i>both</i></b>. This is <u>underline',
'</u> as is \n<u>this</u>. This is <u><b><i>underlined, bold and italic',
'</i></b></u>. \nThis is <del>strikethrough</del>, as is <del>this</del>. ',
'Source \ncode looks like <code>this</code>. Fixed width text looks like ',
'\n<tt>this</tt>. <pre>This sentence is inline pre-formatted, which stops',
" \n'''''this from being bold and italic.'''''</pre> We can also \nstop ",
'&lt;u&gt;this from being underlined&lt;/u&gt;, or just try \n',
'&lt;pre&gt;interrupting cow style.&lt;/pre&gt;<blockquote>This is a ',
'blockquote</blockquote></p><p><h2>Header 2</h2><h3>Header 3 <i>with ',
'italics</i></h3><h4>Header 4</h4><h5>Header 5</h5><h6>Header 6</h6><hr>',
'<ul><li>Item 1a</li><li>Item 1b</li><ul><li>Item 2</li><ul><li>Item 3',
'</li></ul></ul><li>Item 1c</li></ul><ol><li>Item 1a</li><li>Item 1b</li>',
'<ol><li>Item 2</li><ol><li>Item 3</li></ol></ol><li>Item 1c</li></ol>',
"<def>I don't really understand what a definition is</def><blockquote>",
'But blockquotes are easy<blockquote>Even larger ones<blockquote>',
'<blockquote><blockquote>And really huge ones</blockquote></blockquote>',
'</blockquote></blockquote></blockquote><pre>This line is pre-formatted ',
'and &lt;del&gt;not interpolated&lt;/del&gt;\nThis line is also ',
'pre-formatted\n</pre></p>'
].join('');
assert.equal(mediawiki.parseFromString(content).innerHTML, expected);
});
QUnit.test('singleline-wikichunk', function(assert) {
assert.expect(1);
var content = [
"Regular line ''with italics''",
"=== Header 3 ''with italics'' ==="
].join('\n');
var expected = [
'<p>Regular line <i>with italics</i>',
'<h3>Header 3 <i>with italics</i></h3></p>'
].join('');
assert.equal(mediawiki.parseFromString(content).innerHTML, expected);
});
QUnit.test('Link', function(assert) {
assert.expect(1);
var content = [
"[[http://www.example.com/foo|Test text ''with formatting'']]"
].join('\n');
var expected = [
'<p><a href="http://www.example.com/foo">Test text <i>with formatting</i>',
'</a></p>'
].join('');
assert.equal(mediawiki.parseFromString(content).innerHTML, expected);
});
QUnit.test('Figure', function(assert) {
assert.expect(1);
var content = [
"[[File:http://www.example.com/foo|Test image ''with formatting'']]"
].join('\n');
var expected = [
'<p><figure><img src="http://www.example.com/foo"><figcaption>Test image ',
'<i>with formatting</i></figcaption></figure></p>'
].join('');
assert.equal(mediawiki.parseFromString(content).innerHTML, expected);
});