From a7614e5485edad19c10238e0b6fcf06852614fa9 Mon Sep 17 00:00:00 2001 From: bigcode Date: Mon, 2 Nov 2026 11:20:29 +0800 Subject: [PATCH] =?UTF-8?q?v0.10.19:=20G2=20=E9=A1=B5=E8=84=9A=20Footer=20?= =?UTF-8?q?=E4=B8=80=E6=AF=94=E4=B8=80=E5=A4=8D=E5=88=BB=EF=BC=88=E5=8E=9F?= =?UTF-8?q?=E7=AB=99=20elementor=5Flibrary=20post=2058=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 导入脚本 scripts/import-footer-template.ts:从 legacy dump 提取 post 58 的 _elementor_data 写入 contents(type=template, slug=footer),并按线上 post-58.css/DOM 补齐快照后改动 (f95e22e Google Preferred Source、405d251 width:auto、2481635 桌面外距) - Layout/getLayoutData 下发 footerDoc,Footer 改用 ElementorRenderer 直出原模板, 短代码按 widget id 注入:menu-2 移动端折叠菜单、gtranslate 语言下拉(原生 select.gt_selector) - Renderer 增强:section html_tag/边框/content_position、column 响应式宽度与 populated padding/margin(tablet/mobile)、widget 响应式盒模型、icon widget(fixed 返回顶部)、 icon-list 图标/间距/文字排版与 CSS 变量悬停、image 宽度、divider Elementor DOM、 text-editor 对齐与 current-date-time 动态年份、shortcode 预渲染上下文 - slim 白名单补齐响应式/图标/动态标签字段;app.css 新增 FA Solid/Regular 字体、 页脚 scoped 规则、elementor-hidden-* 响应式可见性 - 实测 1436:页脚总高 590.4 与原站全等(列宽/内层列/logo/社交/下拉逐项一致); 390:56/15/347/337/97/46.4/61 逐项全等;语言切换写 ui_lang cookie;返回顶部回滚 0 - bun test 11 pass;版本 0.10.19 --- docs/sections-inventory.md | 14 +- package.json | 2 +- public/fonts/fa-regular-400.woff2 | Bin 0 -> 13276 bytes public/fonts/fa-solid-900.woff2 | Bin 0 -> 78196 bytes scripts/import-footer-template.ts | 124 ++++++++++ scripts/repair-content-terms.ts | 6 +- src/components/elementor/Renderer.tsx | 323 +++++++++++++++++++++++--- src/components/elementor/slim.ts | 48 ++++ src/components/website/Footer.tsx | 191 +++++++++++---- src/components/website/Layout.tsx | 27 ++- src/server/data.ts | 5 + src/styles/app.css | 118 +++++++++- 12 files changed, 765 insertions(+), 93 deletions(-) create mode 100644 public/fonts/fa-regular-400.woff2 create mode 100644 public/fonts/fa-solid-900.woff2 create mode 100644 scripts/import-footer-template.ts diff --git a/docs/sections-inventory.md b/docs/sections-inventory.md index 626e769a3..48985f746 100644 --- a/docs/sections-inventory.md +++ b/docs/sections-inventory.md @@ -26,7 +26,7 @@ | # | 版块 | 状态 | 组件 | |---|------|------|------| | G1 | 顶部导航 Header(含 mega menu、语言切换) | ✅ v0.10.3 | `Header.tsx` | -| G2 | 页脚 Footer | 🟡 | `Footer.tsx` | +| G2 | 页脚 Footer(原站 elementor_library post 58) | ✅ v0.10.19 | `Footer.tsx`(ElementorRenderer 直出 46d7afa/d834160/28c7f0b8/a428bb4 + menu-2 移动菜单 + gtranslate 下拉) | | G3 | 询价弹窗/表单 | 🟡 | `InquiryForm.tsx` | ## 三、首页版块清单(自上而下,20 版块) @@ -53,7 +53,7 @@ | H16 | Developer Ecosystem | heading ×2 + 内嵌 section 两卡(heading+text+button/social-icons+image) | ✅ v0.10.17(审计 0 差异:节 ab35847 bg #F4F5F8 + heading 40/600/#000(_padding 10%)+副题 20px/_margin 顶 -6;两卡 680×528.4 白底圆角 6 边框 #E0E5F9、padding 48/48/16、margin 12(populated 扣减 scoped)、卡标题 24/700/#0D152E、文本 18px/_padding 3rem、Join Now 白底橙字 12px 56px、图 544×282 居中;随此版块:SocialIconsWidget 忠实重写(wrapper grid gap 10/a 44×44 官方底色 linkedin #0077B5/youtube #CD201F/facebook #3B5998/圆角 10%/白色字形)+FA Brands 字体子集(public/fonts/fa-brands-400.woff2 + 三码位 content 规则)+elementor-animation-shrink 通用类) | | H17 | News & Updates 标题 | heading | ⬜ | | H18 | 最新博文 ×2 | 8bc6b68:左 posts 卡×2(3025217)+右 Latest blogs>>标题(1c96d68)+posts 列表×5(a22c185) | ✅ v0.10.18(双端节内几何/样式全等(sec 521):左 skin-cards grid 335×2/gap 16 10、卡 520 高(custom_css .ele-post-dif)、缩略图比率 0.66×内宽+img 铺满、NEWS 徽章(uppercase/白 70%/12px/圆角 4,绝对右上)、标题 18/400/#000+mb16、日期 F j,Y/#ADADAD/padding 10 12、摘要 18 词/#767676/底距 44(空摘要回退正文 18 词);右列卡 grid 630、卡 bg #F4F5F8/圆角 3、纯标题 44px 两行钳制+右侧箭头图标(custom_css);Latest blogs>> 标题 24px+#E0E5F9 下划线+橙线图背景;随此版块:PostsWidget 忠实重写(PostsDataContext 预取架构:loader 按 widget 收集 posts_include_term_ids→listPostsByTermLegacy)、posts cards 基础 CSS、slim 白名单 cards_* 全键、**数据修复** scripts/repair-content-terms.ts(从 legacy dump wp_term_relationships 补 1162 条分类关联,Blog 302/News 22——原导入仅 61/609 篇有关联)) | -| H19 | Explore more DusunIoT news > | 83ecbc5:button 居中 | ✅ v0.10.18(随 H18 交付自然对齐:节 h 123 与原站全等(dy 0.8 页级漂移),按钮设置驱动(白底橙字描边,ButtonWidget 通用实现)。**首页内容树 H0-H19 全部完成**;原站 home 页另有 4 节(46d7afa/d834160/28c7f0b8/a428bb4,合计 884.4px)属页脚 Elementor 模板,不在内容树,归 G2 Footer 待办) | +| H19 | Explore more DusunIoT news > | 83ecbc5:button 居中 | ✅ v0.10.18(随 H18 交付自然对齐:节 h 123 与原站全等(dy 0.8 页级漂移),按钮设置驱动(白底橙字描边,ButtonWidget 通用实现)。**首页内容树 H0-H19 全部完成**;原站 home 页另有 4 节(46d7afa/d834160/28c7f0b8/a428bb4)属页脚 Elementor 模板,已由 G2 v0.10.19 以原模板直出全覆盖) | ## 四、其他核心页型版块(自上而下,概览) @@ -120,6 +120,16 @@ cookie-policy:19 段纯文本。 > Elementor 通用布局三要素已落地 Renderer:section 根 padding、列 gap 默认 populated padding > (no 0/narrow 5/default 10/extended 15/wide 20/wider 30)、widget-wrap flex wrap + 子元素 width:100% > + `_element_width:auto` 例外。 +> +> **G2 页脚取证(v0.10.19)**:原站页脚为 elementor_library post 58(两节 46d7afa/d834160 + +> 内嵌 28c7f0b8/a428bb4),导入脚本 `scripts/import-footer-template.ts` 从 legacy dump 取 +> `_elementor_data` 写入 contents(type=template, slug=footer);快照之后的线上改动按线上 +> post-58.css/DOM 补齐(f95e22e Google 徽章、405d251 width:auto、2481635 桌面外距)。 +> 1436 实测(GTranslate 下拉已渲染、懒图已加载):页脚总高 590.4 两端一致,列宽 +> 228/319.2/307.8/285、内层 615.6/171/193.8/159.6、logo 144.8×42.7、社交行 150×29、 +> 下拉 202×39 全部全等;390 实测逐项全等(56/15/347/337/97/46.4/61)。 +> 注意:原站 headless 下 WP Rocket 延迟加载 Elementor/jQuery,JS 组件(tabs/swiper)默认不初始化, +> 比对该类版块需先 `page.mouse.wheel` 或按线上真实状态换算,勿把"未初始化"当基线。 ## 七、已知遗留(非当前版块范围,后续版块收口) diff --git a/package.json b/package.json index f42b44624..3f2ac666c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dusuniot-rebuild", - "version": "0.10.18", + "version": "0.10.19", "private": true, "type": "module", "scripts": { diff --git a/public/fonts/fa-regular-400.woff2 b/public/fonts/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9df490e8cfdd75704d31f518caf76ab34494b124 GIT binary patch literal 13276 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 aY@s`2`P2|tR<;SDtTi=oII|b5WimRFpv7+h literal 0 HcmV?d00001 diff --git a/public/fonts/fa-solid-900.woff2 b/public/fonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..dc52d954d8d7f62c82cf63236d27093764a3d046 GIT binary patch literal 78196 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 EKZs0^EC2ui literal 0 HcmV?d00001 diff --git a/scripts/import-footer-template.ts b/scripts/import-footer-template.ts new file mode 100644 index 000000000..28cb3cdac --- /dev/null +++ b/scripts/import-footer-template.ts @@ -0,0 +1,124 @@ +/** + * # 脚本 导入页脚 Elementor 模板(legacy elementor_library post 58) + * 背景:WordPress 导入管线未迁移 elementor_library 类型(仅 page/post/landing), + * 页脚模板(post 58,含 46d7afa / d834160 两节及其内嵌 28c7f0b8 / a428bb4)因此缺失。 + * 数据源:legacy/dusuniot-db-20261029.sql 中 `(meta_id,58,'_elementor_data','…')` 行。 + * 补丁:线上页脚另有 f95e22e(Google Preferred Source 图,dump 快照之后新增), + * 依线上 DOM(/tmp/orig-footer.html 取证:class elementor-widget__width-inherit、 + * img 528×64、链接 google.com/preferences/source?q=dusuniot.com)补入 2ccb47d 列末位。 + * 结果写入 contents(type=template, slug=footer, meta.elementor),供 Layout 渲染。 + * 运行:bun scripts/import-footer-template.ts + */ +import { SQL } from "bun"; + +const DUMP = "/home/bigcode/data/dev/sites/dusuniot/legacy/dusuniot-db-20261029.sql"; +const db = new SQL("postgres://dusuniot:dusuniot@127.0.0.1:25432/dusuniot"); + +/** # 函数 从 dump 提取 post 58 的 _elementor_data 并反转义为 JSON + * 返回值 Elementor 元素数组 + */ +async function extractTemplate(): Promise[]> { + const text = await Bun.file(DUMP).text(); + const m = text.match(/\(\d+,58,'_elementor_data','((?:[^'\\]|\\.)*)'\)/); + if (!m) throw new Error("dump 中未找到 post 58 的 _elementor_data"); + const raw = m[1]!; + // SQL dump 反斜杠转义:\" → "、\' → '、\\ → \ + const json = raw.replace(/\\'/g, "'").replace(/\\"/g, '"').replace(/\\\\/g, "\\"); + const data = JSON.parse(json); + if (!Array.isArray(data)) throw new Error("_elementor_data 不是数组"); + return data as Record[]; +} + +/** # 函数 深度查找指定 id 的元素节点 */ +function findElement(els: Record[], id: string): Record | null { + for (const el of els) { + if (el.id === id) return el; + const children = el.elements as Record[] | undefined; + if (children?.length) { + const hit = findElement(children, id); + if (hit) return hit; + } + } + return null; +} + +/** # 函数 线上快照新增的 f95e22e(Google Preferred Source 图) + * 线上 post-58.css 取证:.elementor-element-f95e22e img{width:300px}、 + * > .elementor-widget-container{margin:10px 0 0};dump 快照之后新增,故在此补全。 + */ +function preferredSourceWidget(): Record { + return { + id: "f95e22e", + elType: "widget", + settings: { + image: { + url: "http://www.dusuniot.com/wp-content/uploads/2022/06/google-preffered-source.png", + id: 161805, + alt: "google prefferd source", + source: "library", + size: "", + }, + image_size: "full", + width: { unit: "px", size: 300, sizes: [] }, + align: "left", + _element_width: "inherit", + _margin: { unit: "px", top: "10", right: "0", bottom: "0", left: "0", isLinked: false }, + link: { + url: "https://www.google.com/preferences/source?q=dusuniot.com", + is_external: "on", + nofollow: "on", + custom_attributes: "", + }, + }, + elements: [], + widgetType: "image", + }; +} + +const elements = await extractTemplate(); + +// 补丁:2ccb47d 列末尾追加 f95e22e(幂等:已存在则跳过) +const col = findElement(elements, "2ccb47d"); +if (!col) throw new Error("模板缺少 2ccb47d 列"); +const colChildren = (col.elements as Record[]) || []; +const psIdx = colChildren.findIndex((el) => el.id === "f95e22e"); +if (psIdx >= 0) colChildren[psIdx] = preferredSourceWidget(); +else colChildren.push(preferredSourceWidget()); +col.elements = colChildren; + +// 补丁:社交图标行 405d251 宽度模式(线上 class=elementor-widget__width-auto、 +// 生成 CSS width:auto;dump 快照为 inherit,实测线上为 auto → 与 gtranslate 同排) +const social = findElement(elements, "405d251"); +if (social) { + const st = (social.settings as Record) || {}; + st._element_width = "auto"; + social.settings = st; +} +// 补丁:gtranslate 短代码控件 2481635 桌面外距(线上 post-58.css:margin -10px 0 0 20px; +// dump 只有 _margin_mobile,桌面值来自快照之后的编辑) +const gt = findElement(elements, "2481635"); +if (gt) { + const st = (gt.settings as Record) || {}; + st._margin = { unit: "px", top: "-10", right: "0", bottom: "0", left: "20", isLinked: false }; + gt.settings = st; +} + +const meta = JSON.stringify({ elementor: elements }); + +// 写入 contents:type=template / slug=footer;已存在则更新 +const existing = await db`SELECT id FROM contents WHERE slug='footer' AND type='template'`; +if (existing.length) { + await db`UPDATE contents SET meta=${meta}::jsonb, status='published', updated_at=now() WHERE id=${existing[0]!.id}`; + console.log("已更新 footer 模板,contents.id =", existing[0]!.id); +} else { + const inserted = await db` + INSERT INTO contents (type, slug, title, status, meta, legacy_id, published_at) + VALUES ('template', 'footer', 'Footer', 'published', ${meta}::jsonb, 58, now()) + RETURNING id`; + console.log("已插入 footer 模板,contents.id =", inserted[0]!.id); +} + +// 验证:节数量与顶层 id +const top = elements.map((el) => el.id).join(", "); +console.log("顶层节:", top); +await db.end(); diff --git a/scripts/repair-content-terms.ts b/scripts/repair-content-terms.ts index a0c7ac9f4..6ceca15d2 100644 --- a/scripts/repair-content-terms.ts +++ b/scripts/repair-content-terms.ts @@ -23,13 +23,13 @@ console.log("dump 关系对:", pairs.size); // 2) 本库映射表:legacyId → id const contents = await db`SELECT id, legacy_id FROM contents WHERE legacy_id IS NOT NULL`; -const contentMap = new Map(contents.map((r) => [Number(r.legacy_id), Number(r.id)])); +const contentMap = new Map(contents.map((r: { id: number; legacy_id: number }) => [Number(r.legacy_id), Number(r.id)])); const cats = await db`SELECT id, legacy_id FROM categories WHERE legacy_id IS NOT NULL`; -const catMap = new Map(cats.map((r) => [Number(r.legacy_id), Number(r.id)])); +const catMap = new Map(cats.map((r: { id: number; legacy_id: number }) => [Number(r.legacy_id), Number(r.id)])); // 3) 已有关联集合(幂等) const existing = await db`SELECT content_id, category_id FROM content_terms`; -const have = new Set(existing.map((r) => `${r.content_id}:${r.category_id}`)); +const have = new Set(existing.map((r: { content_id: number; category_id: number }) => `${r.content_id}:${r.category_id}`)); // 4) 补插 let inserted = 0; diff --git a/src/components/elementor/Renderer.tsx b/src/components/elementor/Renderer.tsx index e7cea80d1..160c26e27 100644 --- a/src/components/elementor/Renderer.tsx +++ b/src/components/elementor/Renderer.tsx @@ -59,6 +59,18 @@ function stripStructuralTags(html: string): string { return html.replace(/<\/?(?:main|body|html|head)[^>]*>/gi, ""); } +/** # 函数 CSS 长度折半(Elementor icon-list 间距:space/2 落在 padding/margin) + * 参数 v CSS 长度(如 "5px" / "1rem") + * 返回值 折半后的长度;无法解析返回 undefined + */ +function halfLength(v: string | undefined): string | undefined { + if (!v) return undefined; + const m = /^(-?[\d.]+)(px|rem|em|%)$/.exec(v.trim()); + if (!m) return undefined; + const n = Number(m[1]) / 2; + return `${n}${m[2]}`; +} + /** # 函数 折叠 CSS 盒模型四值简写为最短等价形式(1/2/4 值) * React 19 水合按 CSSOM 归一化后的字符串比对样式,"4rem 0rem 4rem 0rem" * 会被浏览器归一为 "4rem 0rem",不折叠会导致水合不匹配。 @@ -190,6 +202,29 @@ function resolveGlobalsStr(v: string): string { return v; } +/** # 函数 响应式可见性类名(Elementor hide_* 设置 → elementor-hidden-*,配 app.css 媒体查询) + * 参数 settings 元素设置 + * 返回值 空格分隔的类名(无隐藏设置则空串) + */ +function visibilityClass(settings: Record): string { + const cls: string[] = []; + if (s(settings.hide_desktop) === "hidden-desktop") cls.push("elementor-hidden-desktop"); + if (s(settings.hide_tablet) === "hidden-tablet") cls.push("elementor-hidden-tablet"); + if (s(settings.hide_mobile) === "hidden-mobile") cls.push("elementor-hidden-mobile"); + return cls.join(" "); +} + +/** # 函数 section 的自定义 HTML 标签(Elementor html_tag 设置;默认 section) + * 参数 settings 元素设置 + * 返回值 合法标签名 + */ +function sectionTag(settings: Record): "section" | "div" | "footer" | "header" | "aside" | "article" { + const tag = s(settings.html_tag); + return (["section", "div", "footer", "header", "aside", "article"] as const).includes(tag as never) + ? (tag as "section" | "div" | "footer" | "header" | "aside" | "article") + : "section"; +} + /** # 函数 section 的背景样式(纯色 / 图片) */ function sectionBgStyle(settings: Record): CSSProperties { const style: CSSProperties = {}; @@ -235,19 +270,26 @@ function normalizeDoc(doc: ElDocument): ElElement[] { /** # 成员变量 posts widget 文章数据上下文(loader 预取,经 widget id 分发) **/ const PostsDataContext = createContext>({}); -/** # 组件 Elementor 渲染器入口 */ -export function ElementorRenderer({ doc, postsData }: { doc: ElDocument; postsData?: Record }) { +/** # 成员变量 WordPress 短代码渲染上下文(widget id → 预渲染节点;页脚 menu-2/gtranslate) **/ +const ShortcodesContext = createContext>({}); + +/** # 组件 Elementor 渲染器入口 + * 参数 shortcodes 短代码 widget 的预渲染内容(键为 widget id;缺省渲染为空) + */ +export function ElementorRenderer({ doc, postsData, shortcodes }: { doc: ElDocument; postsData?: Record; shortcodes?: Record }) { const elements = normalizeDoc(doc); if (!elements.length) return null; const css = collectCustomCss(elements) + collectResponsiveCss(elements); return ( -

- {css ?