add webfix: FIXER_BN

This commit is contained in:
Gabe Yuan
2023-10-16 15:48:53 +08:00
parent 6e952a9530
commit fb2b517a67

View File

@@ -6,6 +6,7 @@ import { apiFetch } from "../apis";
* 修复程序类型 * 修复程序类型
*/ */
const FIXER_BR = "br"; const FIXER_BR = "br";
const FIXER_BN = "bn";
const FIXER_FONTSIZE = "fontSize"; const FIXER_FONTSIZE = "fontSize";
/** /**
@@ -34,6 +35,12 @@ const DEFAULT_SITES = [
rootSelector: "", rootSelector: "",
fixer: FIXER_FONTSIZE, fixer: FIXER_FONTSIZE,
}, },
{
pattern: "chat.openai.com",
selector: "div[data-testid^=conversation-turn] .items-start > div",
rootSelector: "",
fixer: FIXER_BN,
},
]; ];
/** /**
@@ -94,6 +101,26 @@ function brFixer(node) {
node.innerHTML = html; node.innerHTML = html;
} }
/**
* 目标是将 `\n` 替换成 `p`
* @param {*} node
* @returns
*/
function bnFixer(node) {
if (node.hasAttribute(fixedSign)) {
return;
}
node.setAttribute(fixedSign, "true");
const childs = node.childNodes;
if (childs.length === 1 && childs[0].nodeName === "#text") {
node.innerHTML = node.innerHTML
.split("\n")
.map((item) => `<p>${item || "&nbsp;"}</p>`)
.join("");
}
}
/** /**
* 修复字体大小问题,如 baidu.com * 修复字体大小问题,如 baidu.com
* @param {*} node * @param {*} node
@@ -107,6 +134,7 @@ function fontSizeFixer(node) {
*/ */
const fixerMap = { const fixerMap = {
[FIXER_BR]: brFixer, [FIXER_BR]: brFixer,
[FIXER_BN]: bnFixer,
[FIXER_FONTSIZE]: fontSizeFixer, [FIXER_FONTSIZE]: fontSizeFixer,
}; };
@@ -134,6 +162,7 @@ function run(selector, fixer, rootSelector) {
rootNode.querySelectorAll(selector).forEach(fixer); rootNode.querySelectorAll(selector).forEach(fixer);
mutaObserver.observe(rootNode, { mutaObserver.observe(rootNode, {
childList: true, childList: true,
subtree: true,
}); });
}); });
} }