722b18326f
含 MindSpace 三列布局与统计修复、聊天加载态与连接降级、平台页脚标记与 og:site_name 微信卡片、勾选资料删除 Agent 接口及内部话术过滤。 Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1.4 KiB
JavaScript
36 lines
1.4 KiB
JavaScript
export const MINDSPACE_PAGE_TAG_ATTR = 'data-mindspace-page-tag';
|
|
export const MINDSPACE_PAGE_TAG_PLATFORM_BRAND = 'platform-brand';
|
|
export const PLATFORM_CONTACT_EMAIL = 'contact@tkmind.cn';
|
|
|
|
const PLATFORM_BRAND_INNER_RE = /(?:contact@tkmind\.(?:ai|cn)|📧[^<]*tkmind)/i;
|
|
const SIMPLE_BRAND_ELEMENT_RE =
|
|
/<(p|div|span|small|footer|a)(\s[^>]*)?>([^<]*(?:contact@tkmind\.(?:ai|cn)|📧[^<]*tkmind)[^<]*)<\/\1>/gi;
|
|
|
|
export function normalizePlatformDomainText(text) {
|
|
return String(text ?? '').replace(/tkmind\.ai/gi, 'tkmind.cn');
|
|
}
|
|
|
|
export function normalizePlatformBrandHtml(html) {
|
|
let next = normalizePlatformDomainText(html);
|
|
next = next.replace(/mailto:([^"'>\s]+@tkmind)\.ai/gi, 'mailto:$1.cn');
|
|
next = next.replace(/https?:\/\/([a-z0-9.-]*\.)?tkmind\.ai/gi, (match) =>
|
|
match.replace(/tkmind\.ai/gi, 'tkmind.cn'),
|
|
);
|
|
return next;
|
|
}
|
|
|
|
export function ensurePlatformBrandPageTags(html) {
|
|
const normalized = normalizePlatformBrandHtml(html);
|
|
return normalized.replace(SIMPLE_BRAND_ELEMENT_RE, (match, tag, attrs, inner) => {
|
|
const attrStr = attrs ?? '';
|
|
if (attrStr.includes(MINDSPACE_PAGE_TAG_ATTR)) return match;
|
|
if (!PLATFORM_BRAND_INNER_RE.test(inner)) return match;
|
|
const spacer = attrStr ? '' : ' ';
|
|
return `<${tag}${attrStr}${spacer}${MINDSPACE_PAGE_TAG_ATTR}="${MINDSPACE_PAGE_TAG_PLATFORM_BRAND}">${inner}</${tag}>`;
|
|
});
|
|
}
|
|
|
|
export function prepareHtmlPageBrandMarkers(html) {
|
|
return ensurePlatformBrandPageTags(html);
|
|
}
|