mediawiki image grammar.
This commit is contained in:
@@ -137,6 +137,15 @@ var mediawiki = {
|
|||||||
rr.Literal("''"),
|
rr.Literal("''"),
|
||||||
rr.Ref('multiline-wikichunk'),
|
rr.Ref('multiline-wikichunk'),
|
||||||
rr.Literal("''"))),
|
rr.Literal("''"))),
|
||||||
|
'multiline-img': rr.Node('imgtemp', 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('caption', rr.Ref('multiline-wikichunk')),
|
||||||
|
rr.Literal(']]'))),
|
||||||
'multiline-nowiki': rr.Sequence(
|
'multiline-nowiki': rr.Sequence(
|
||||||
rr.Literal('<nowiki>'),
|
rr.Literal('<nowiki>'),
|
||||||
rr.MultiLineText(),
|
rr.MultiLineText(),
|
||||||
@@ -236,6 +245,7 @@ var mediawiki = {
|
|||||||
rr.Ref('list-ulli2'),
|
rr.Ref('list-ulli2'),
|
||||||
rr.Ref('list-ulli3'),
|
rr.Ref('list-ulli3'),
|
||||||
|
|
||||||
|
rr.Ref('multiline-img'), // before a
|
||||||
rr.Ref('multiline-a'),
|
rr.Ref('multiline-a'),
|
||||||
rr.Ref('multiline-bi'), // before b and i
|
rr.Ref('multiline-bi'), // before b and i
|
||||||
rr.Ref('multiline-b'),
|
rr.Ref('multiline-b'),
|
||||||
|
|||||||
16
test.js
16
test.js
@@ -97,3 +97,19 @@ QUnit.test('Link', function(assert) {
|
|||||||
var iterable = context.rules['wikidoc'].match(context);
|
var iterable = context.rules['wikidoc'].match(context);
|
||||||
assert.equal(iterable.next().value.nodes[0].innerHTML, expected);
|
assert.equal(iterable.next().value.nodes[0].innerHTML, expected);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
QUnit.test('Image', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
var content = [
|
||||||
|
"[[File:http://www.example.com/foo|Test image ''with formatting'']]"
|
||||||
|
].join('\n');
|
||||||
|
|
||||||
|
var expected = [
|
||||||
|
'<p><imgtemp><src>http://www.example.com/foo</src>',
|
||||||
|
'<caption>Test image <i>with formatting</i></caption></imgtemp></p>'
|
||||||
|
].join('');
|
||||||
|
|
||||||
|
var context = new rr.Context(mediawiki, content);
|
||||||
|
var iterable = context.rules['wikidoc'].match(context);
|
||||||
|
assert.equal(iterable.next().value.nodes[0].innerHTML, expected);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user