Support multiple filters per node type.
This commit is contained in:
@@ -294,5 +294,7 @@ mediawiki = rr.Parser({
|
|||||||
rr.ZeroOrMore(rr.Ref('paragraph')),
|
rr.ZeroOrMore(rr.Ref('paragraph')),
|
||||||
rr.EndOfText()))
|
rr.EndOfText()))
|
||||||
}, {
|
}, {
|
||||||
'bi': rr.SplitTagAndNest('b', 'i')
|
'bi': [
|
||||||
|
rr.SplitTagAndNest('b', 'i')
|
||||||
|
]
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -759,9 +759,9 @@ rr.SplitTagAndNest = function(var_args) {
|
|||||||
* @param {Object.<string, rr.typeFilter>} filters
|
* @param {Object.<string, rr.typeFilter>} filters
|
||||||
*/
|
*/
|
||||||
rr.ApplyFilters = function(node, filters) {
|
rr.ApplyFilters = function(node, filters) {
|
||||||
var filter = filters[node.nodeName.toLowerCase()];
|
var nodeFilters = filters[node.nodeName.toLowerCase()] || [];
|
||||||
if (filter) {
|
for (var i = 0; i < nodeFilters.length; i++) {
|
||||||
filter(node);
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user