Revert "Change filtering model again to allow more complex filters."

This reverts commit a49c9f6db8.
This commit is contained in:
Ian Gulliver
2014-07-01 17:24:28 -07:00
parent a49c9f6db8
commit 0f86637a6c
2 changed files with 13 additions and 13 deletions

View File

@@ -293,6 +293,8 @@ mediawiki = rr.Parser({
'main': rr.Node('wikidoc', rr.Sequence( 'main': rr.Node('wikidoc', rr.Sequence(
rr.ZeroOrMore(rr.Ref('paragraph')), rr.ZeroOrMore(rr.Ref('paragraph')),
rr.EndOfText())) rr.EndOfText()))
}, [ }, {
rr.SplitTagAndNest('bi', ['b', 'i']) 'bi': [
]); rr.SplitTagAndNest('b', 'i')
]
});

View File

@@ -726,18 +726,15 @@ rr.SingleLineText = function() {
/** /**
* @param {string} originalName * @param {...string} var_args
* @param {Array.<string>} newNames
* @return {rr.typeFilter} * @return {rr.typeFilter}
*/ */
rr.SplitTagAndNest = function(originalName, newNames) { rr.SplitTagAndNest = function(var_args) {
var hierarchy = Array.prototype.slice.call(arguments);
return function(node) { return function(node) {
if (node.nodeName.toLowerCase() != originalName) {
return;
}
var outerNode, innerNode; var outerNode, innerNode;
for (var i = 0; i < newNames.length; i++) { for (var i = 0; i < hierarchy.length; i++) {
var newNode = document.createElement(newNames[i]); var newNode = document.createElement(hierarchy[i]);
if (i == 0) { if (i == 0) {
outerNode = innerNode = newNode; outerNode = innerNode = newNode;
} else { } else {
@@ -762,8 +759,9 @@ rr.SplitTagAndNest = function(originalName, newNames) {
* @param {Object.<string, rr.typeFilter>} filters * @param {Object.<string, rr.typeFilter>} filters
*/ */
rr.ApplyFilters = function(node, filters) { rr.ApplyFilters = function(node, filters) {
for (var i = 0; i < filters.length; i++) { var nodeFilters = filters[node.nodeName.toLowerCase()] || [];
filters[i](node); for (var i = 0; i < nodeFilters.length; i++) {
nodeFilters[i](node);
} }
for (var i = 0; i < node.childNodes.length; i++) { for (var i = 0; i < node.childNodes.length; i++) {
rr.ApplyFilters(node.childNodes[i], filters); rr.ApplyFilters(node.childNodes[i], filters);