diff --git a/docs/ecmarkup.js b/docs/ecmarkup.js index 8dd065ed..e6b4a53a 100644 --- a/docs/ecmarkup.js +++ b/docs/ecmarkup.js @@ -450,20 +450,28 @@ function ClauseWalker(root) { NodeFilter.SHOW_ELEMENT, { acceptNode(node) { + // reject nodes under an already-accepted element if (previous === node.parentNode) { return NodeFilter.FILTER_REJECT; - } else { - previous = node; } + + // descend into to inspect immediate children + if (node.nodeName === 'EMU-IMPORT') { + return NodeFilter.FILTER_SKIP; + } + + // accept , , and if ( node.nodeName === 'EMU-CLAUSE' || node.nodeName === 'EMU-INTRO' || node.nodeName === 'EMU-ANNEX' ) { + previous = node; return NodeFilter.FILTER_ACCEPT; - } else { - return NodeFilter.FILTER_SKIP; } + + // reject everything else + return NodeFilter.FILTER_REJECT; }, }, false diff --git a/docs/index.html b/docs/index.html index 3d6b8362..e0d5b752 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,7 +2,7 @@ Ecmarkup -
+

Ecmarkup

diff --git a/js/menu.js b/js/menu.js index d241be7e..294d07c7 100644 --- a/js/menu.js +++ b/js/menu.js @@ -367,20 +367,28 @@ function ClauseWalker(root) { NodeFilter.SHOW_ELEMENT, { acceptNode(node) { + // reject nodes under an already-accepted element if (previous === node.parentNode) { return NodeFilter.FILTER_REJECT; - } else { - previous = node; } + + // descend into to inspect immediate children + if (node.nodeName === 'EMU-IMPORT') { + return NodeFilter.FILTER_SKIP; + } + + // accept , , and if ( node.nodeName === 'EMU-CLAUSE' || node.nodeName === 'EMU-INTRO' || node.nodeName === 'EMU-ANNEX' ) { + previous = node; return NodeFilter.FILTER_ACCEPT; - } else { - return NodeFilter.FILTER_SKIP; } + + // reject everything else + return NodeFilter.FILTER_REJECT; }, }, false