fix: Make keepSelector effective even if richText is disabled

This commit is contained in:
Gabe
2025-10-23 19:32:59 +08:00
parent 4fac7fdfe1
commit 7c5232c1a1

View File

@@ -1242,10 +1242,7 @@ export class Translator {
} }
// 文本节点 // 文本节点
if ( if (node.nodeType === Node.TEXT_NODE) {
this.#rule.hasRichText === "false" ||
node.nodeType === Node.TEXT_NODE
) {
let text = node.textContent; let text = node.textContent;
// 专业术语替换 // 专业术语替换
@@ -1271,7 +1268,8 @@ export class Translator {
// 元素节点 // 元素节点
if (node.nodeType === Node.ELEMENT_NODE) { if (node.nodeType === Node.ELEMENT_NODE) {
if ( if (
Translator.TAGS.REPLACE.has(node.tagName) || (this.#rule.hasRichText === "true" &&
Translator.TAGS.REPLACE.has(node.tagName)) ||
node.matches(this.#rule.keepSelector) || node.matches(this.#rule.keepSelector) ||
node.matches(this.#ignoreSelector) || node.matches(this.#ignoreSelector) ||
!node.textContent.trim() !node.textContent.trim()
@@ -1288,7 +1286,10 @@ export class Translator {
innerContent += traverse(child); innerContent += traverse(child);
}); });
if (Translator.TAGS.WARP.has(node.tagName)) { if (
this.#rule.hasRichText === "true" &&
Translator.TAGS.WARP.has(node.tagName)
) {
wrapCounter++; wrapCounter++;
const startPlaceholder = `<${this.#placeholder.tagName}${wrapCounter}>`; const startPlaceholder = `<${this.#placeholder.tagName}${wrapCounter}>`;
const endPlaceholder = `</${this.#placeholder.tagName}${wrapCounter}>`; const endPlaceholder = `</${this.#placeholder.tagName}${wrapCounter}>`;