Fixin tree walker

This commit is contained in:
Shan Carter
2017-02-06 10:01:03 -08:00
parent e8e1a353ef
commit 5dac7eed8b
3 changed files with 43 additions and 41 deletions
+21 -20
View File
@@ -2,30 +2,12 @@ export default function(dom, data) {
var textNodes = dom.createTreeWalker(
dom.body,
NodeFilter.ALL_ELEMENTS,
{
acceptNode: function(node) {
var isMath = (node.getAttribute && node.getAttribute("class")) ? node.getAttribute("class").includes("katex") || node.getAttribute("class").includes("MathJax") : false;
return node.nodeName !== "SCRIPT" &&
node.nodeName !== "STYLE" &&
node.nodeName !== "CODE" &&
node.nodeName !== "PRE" &&
node.nodeName !== "SPAN" &&
node.nodeName !== "DT-HEADER" &&
node.nodeName !== "DT-BYLINE" &&
node.nodeName !== "DT-MATH" &&
node.nodeName !== "DT-CODE" &&
node.nodeName !== "DT-BIBLIOGRAPHY" &&
node.nodeName !== "DT-FOOTER" &&
node.nodeType !== 8 && //comment nodes
!isMath;
}
}
dom.defaultView.NodeFilter.SHOW_TEXT
);
while (textNodes.nextNode()) {
var n = textNodes.currentNode,
text = n.nodeValue;
if (n.nodeType === 3 && text) {
if (text && acceptNode(n)) {
text = quotes(text);
text = punctuation(text);
text = ligatures(text);
@@ -34,6 +16,25 @@ export default function(dom, data) {
}
}
function acceptNode(node) {
var parent = node.parentElement;
var isMath = (parent && parent.getAttribute && parent.getAttribute("class")) ? parent.getAttribute("class").includes("katex") || parent.getAttribute("class").includes("MathJax") : false;
return parent &&
parent.nodeName !== "SCRIPT" &&
parent.nodeName !== "STYLE" &&
parent.nodeName !== "CODE" &&
parent.nodeName !== "PRE" &&
parent.nodeName !== "SPAN" &&
parent.nodeName !== "DT-HEADER" &&
parent.nodeName !== "DT-BYLINE" &&
parent.nodeName !== "DT-MATH" &&
parent.nodeName !== "DT-CODE" &&
parent.nodeName !== "DT-BIBLIOGRAPHY" &&
parent.nodeName !== "DT-FOOTER" &&
parent.nodeType !== 8 && //comment nodes
!isMath;
}
/*!
* typeset - Typesetting for the web
+21 -20
View File
@@ -8328,30 +8328,12 @@ var typeset = function(dom, data) {
var textNodes = dom.createTreeWalker(
dom.body,
NodeFilter.ALL_ELEMENTS,
{
acceptNode: function(node) {
var isMath = (node.getAttribute && node.getAttribute("class")) ? node.getAttribute("class").includes("katex") || node.getAttribute("class").includes("MathJax") : false;
return node.nodeName !== "SCRIPT" &&
node.nodeName !== "STYLE" &&
node.nodeName !== "CODE" &&
node.nodeName !== "PRE" &&
node.nodeName !== "SPAN" &&
node.nodeName !== "DT-HEADER" &&
node.nodeName !== "DT-BYLINE" &&
node.nodeName !== "DT-MATH" &&
node.nodeName !== "DT-CODE" &&
node.nodeName !== "DT-BIBLIOGRAPHY" &&
node.nodeName !== "DT-FOOTER" &&
node.nodeType !== 8 && //comment nodes
!isMath;
}
}
dom.defaultView.NodeFilter.SHOW_TEXT
);
while (textNodes.nextNode()) {
var n = textNodes.currentNode,
text = n.nodeValue;
if (n.nodeType === 3 && text) {
if (text && acceptNode(n)) {
text = quotes(text);
text = punctuation(text);
text = ligatures(text);
@@ -8360,6 +8342,25 @@ var typeset = function(dom, data) {
}
};
function acceptNode(node) {
var parent = node.parentElement;
var isMath = (parent && parent.getAttribute && parent.getAttribute("class")) ? parent.getAttribute("class").includes("katex") || parent.getAttribute("class").includes("MathJax") : false;
return parent &&
parent.nodeName !== "SCRIPT" &&
parent.nodeName !== "STYLE" &&
parent.nodeName !== "CODE" &&
parent.nodeName !== "PRE" &&
parent.nodeName !== "SPAN" &&
parent.nodeName !== "DT-HEADER" &&
parent.nodeName !== "DT-BYLINE" &&
parent.nodeName !== "DT-MATH" &&
parent.nodeName !== "DT-CODE" &&
parent.nodeName !== "DT-BIBLIOGRAPHY" &&
parent.nodeName !== "DT-FOOTER" &&
parent.nodeType !== 8 && //comment nodes
!isMath;
}
/*!
* typeset - Typesetting for the web
+1 -1
View File
File diff suppressed because one or more lines are too long