这是个好问题。基于已查清的代码事实,我把这类主题“内容套进去”的问题本质和解法分层讲清楚。
问题本质
抓取的产品页/品牌页没有“正文”这个概念——页面是 hero、功能介绍、价格、图集、FAQ 等装饰区块的堆叠。所以有两个层面的“套不进去”:
- 定位层:正文插槽只能靠启发式猜“文本最密集的区”(现在已改进为按段落/文本量评分,落到 FAQ 这类长文区),但不同页面正文位置千差万别,启发式永远有天花板;
- 呈现层:即使位置对了,正文渲染在原区自己的 CSS 里(flex 行、栅格、绝对定位、背景图),排版会被带偏——上一轮已加安全容器兜底,但宽度、字号、标题样式仍受原页面装饰区样式影响。
解法分层(按性价比排序)
① 正文排版兜底(推荐立即做,改动小、见效最大)
把安全容器升级为“内建文章排版容器”:注入一段 .pg-imported-body 专属样式(max-width:820px; margin:0 auto、字号 16px、行距 1.9、h1–h4 层级、段落间距、引用/代码块/表格样式、图片自适应),只作用于容器内部、不污染原页装饰。效果:不管插槽落在页面哪个位置,你的文字都呈现为规整可读的文章,且原页装饰 1:1 保留。这套样式系统里已有现成范本(上传 txt/md/docx 生成的“干净排版主题”doc-body 样式,直接复用统一即可)。
② 定位增强(推荐)
导入成功后提供“正文位置调整”:
- 把 Top 候选容器列出来(下拉/点选),重新生成主题文件(不需要重新抓取页面);
- 支持手动 CSS 选择器指定(如
#faq-section、.entry-content); - 提供“整页追加模式”:无正文区的纯装饰页,正文直接作为独立文章区插到
</body> 前。
这样 95% 的“套不进去”都能人工一键校准,不用重抓。
③ 结构性模板化(进阶,可后置)
自动识别 hero/价格/图集/页脚等装饰块保留为静态模板,只替换“主内容 section”。这才是产品页主题化的正解,但要自己写页面结构识别器,投入大,建议先用①②覆盖。
④ 操作侧建议
- 纯装饰页(官网首页类)没有正文区:优先用「AI 重建」生成干净文章主题,或直接上传 txt/md 生成文档主题;
- 想 1:1 保留设计又放长文:用①的排版容器 + ②把正文放到该页最大文本区。
推荐组合
先做①(正文排版容器)+ ②(候选切换/手动选择器/整页追加),全部零新依赖、改动集中在 themeimport.js + 后台主题导入弹窗,完成后无论导入什么页面,内容都能“有效套进去”。
需要我现在把这①②两个能力直接实现进系统吗?实现后我会用 mango 主题和另一类页面(比如文章页/无明显正文区页)分别验证。