v0.10.19: G2 页脚 Footer 一比一复刻(原站 elementor_library post 58)

- 导入脚本 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
This commit is contained in:
bigcode
2026-11-02 11:20:29 +08:00
parent 686dbe18de
commit a7614e5485
12 changed files with 765 additions and 93 deletions
+3 -3
View File
@@ -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<number, number>(contents.map((r) => [Number(r.legacy_id), Number(r.id)]));
const contentMap = new Map<number, number>(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<number, number>(cats.map((r) => [Number(r.legacy_id), Number(r.id)]));
const catMap = new Map<number, number>(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;