Hide comments.

This commit is contained in:
Ian Gulliver
2014-06-30 22:27:39 -07:00
parent f326683aaa
commit 7d7345b9ec
3 changed files with 51 additions and 6 deletions

View File

@@ -121,7 +121,7 @@ var mediawiki = {
rr.Literal('<code>'),
rr.Ref('multiline-wikichunk'),
rr.Literal('</code>'))),
'multiline-comment': rr.Node('comment', rr.Sequence(
'multiline-comment': rr.Hidden(rr.Sequence(
rr.Literal('<!-- '),
rr.MultiLineText(),
rr.Literal(' -->'))),
@@ -185,7 +185,7 @@ var mediawiki = {
rr.Literal('<code>'),
rr.Ref('singleline-wikichunk'),
rr.Literal('</code>'))),
'singleline-comment': rr.Node('comment', rr.Sequence(
'singleline-comment': rr.Hidden(rr.Sequence(
rr.Literal('<!-- '),
rr.SingleLineText(),
rr.Literal(' -->'))),
@@ -287,8 +287,8 @@ var mediawiki = {
'paragraph': rr.Node('p', rr.Sequence(
rr.Ref('multiline-wikichunk'),
rr.Or(
rr.Sequence(rr.EndOfLine(), rr.Literal('\n')),
rr.EndOfText()))),
rr.Sequence(rr.EndOfLine(), rr.Literal('\n')),
rr.EndOfText()))),
'wikidoc': rr.Node('wikidoc', rr.Sequence(
rr.ZeroOrMore(rr.Ref('paragraph')),

View File

@@ -180,6 +180,7 @@ rr.EndOfText = function() {
/**
* @type {rr.EndOfText_}
* @const
* @private
*/
rr.EndOfText.cache_ = new rr.EndOfText_();
}
@@ -188,6 +189,51 @@ rr.EndOfText = function() {
/**
* @constructor
*
* @param {rr.typeMatcher} child
* @private
*/
rr.Hidden_ = function(child) {
this.child_ = child;
};
/**
* @param {rr.Context} context
* @return {rr.typeIterator}
*/
rr.Hidden_.prototype.match = function(context) {
var iterator = this.child_.match(context);
return {
'next': function() {
var next = iterator.next();
if (next['done']) {
return { 'done': true };
}
return {
'done': false,
'value': {
'context': next['value']['context'],
'nodes': []
}
};
}.bind(this)
};
};
/**
* @param {rr.typeMatcher} child
* @return {rr.Hidden_}
*/
rr.Hidden = function(child) {
return new rr.Hidden_(child);
};
/**
* @constructor
*

View File

@@ -46,8 +46,7 @@ QUnit.test('Base', function(assert) {
'<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;<comment>This is a ',
"comment and \nshouldn't be visible</comment><blockquote>This is a ",
'&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>',
'<ulli1>Item 1a</ulli1><ulli1>Item 1b</ulli1><ulli2>Item 2</ulli2><ulli3>',