From 0f86637a6c7f6d10ffc23b429a62b1bfa0bdac7b Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Tue, 1 Jul 2014 17:24:28 -0700 Subject: [PATCH] Revert "Change filtering model again to allow more complex filters." This reverts commit a49c9f6db8954df290560541a2f997798f401595. --- grammars/mediawiki.js | 8 +++++--- recentrunes.js | 18 ++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/grammars/mediawiki.js b/grammars/mediawiki.js index 25800db..bfacdba 100644 --- a/grammars/mediawiki.js +++ b/grammars/mediawiki.js @@ -293,6 +293,8 @@ mediawiki = rr.Parser({ 'main': rr.Node('wikidoc', rr.Sequence( rr.ZeroOrMore(rr.Ref('paragraph')), rr.EndOfText())) -}, [ - rr.SplitTagAndNest('bi', ['b', 'i']) -]); +}, { + 'bi': [ + rr.SplitTagAndNest('b', 'i') + ] +}); diff --git a/recentrunes.js b/recentrunes.js index 91fddae..1e18bd8 100644 --- a/recentrunes.js +++ b/recentrunes.js @@ -726,18 +726,15 @@ rr.SingleLineText = function() { /** - * @param {string} originalName - * @param {Array.} newNames + * @param {...string} var_args * @return {rr.typeFilter} */ -rr.SplitTagAndNest = function(originalName, newNames) { +rr.SplitTagAndNest = function(var_args) { + var hierarchy = Array.prototype.slice.call(arguments); return function(node) { - if (node.nodeName.toLowerCase() != originalName) { - return; - } var outerNode, innerNode; - for (var i = 0; i < newNames.length; i++) { - var newNode = document.createElement(newNames[i]); + for (var i = 0; i < hierarchy.length; i++) { + var newNode = document.createElement(hierarchy[i]); if (i == 0) { outerNode = innerNode = newNode; } else { @@ -762,8 +759,9 @@ rr.SplitTagAndNest = function(originalName, newNames) { * @param {Object.} filters */ rr.ApplyFilters = function(node, filters) { - for (var i = 0; i < filters.length; i++) { - filters[i](node); + var nodeFilters = filters[node.nodeName.toLowerCase()] || []; + for (var i = 0; i < nodeFilters.length; i++) { + nodeFilters[i](node); } for (var i = 0; i < node.childNodes.length; i++) { rr.ApplyFilters(node.childNodes[i], filters);