Support multiple filters per node type.

This commit is contained in:
Ian Gulliver
2014-07-01 17:19:14 -07:00
parent 696e9642dd
commit 8b7b0670db
2 changed files with 6 additions and 4 deletions

View File

@@ -294,5 +294,7 @@ mediawiki = rr.Parser({
rr.ZeroOrMore(rr.Ref('paragraph')),
rr.EndOfText()))
}, {
'bi': rr.SplitTagAndNest('b', 'i')
'bi': [
rr.SplitTagAndNest('b', 'i')
]
});

View File

@@ -759,9 +759,9 @@ rr.SplitTagAndNest = function(var_args) {
* @param {Object.<string, rr.typeFilter>} filters
*/
rr.ApplyFilters = function(node, filters) {
var filter = filters[node.nodeName.toLowerCase()];
if (filter) {
filter(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);