diff --git a/app/builder.py b/app/builder.py index c33af61..8ded6b9 100644 --- a/app/builder.py +++ b/app/builder.py @@ -38,7 +38,8 @@ def output_path(dist,route): def copy_blocks_css(theme_dir,dist_assets): """Theme-provided blocks.css wins; platform default is the fallback.""" - src=theme_dir/'blocks.css' if (theme_dir/'blocks.css').is_file() else ROOT/'app'/'static'/'blocks.css' + candidate=theme_dir/'blocks.css' + src=candidate if candidate.is_file() else ROOT/'app'/'static'/'blocks.css' shutil.copy2(src,dist_assets/'blocks.css') def link(path): diff --git a/docs/superpowers/plans/2026-10-22-trade-pro-theme-port.md b/docs/superpowers/plans/2026-10-22-trade-pro-theme-port.md index 817b5cc..af6d253 100644 --- a/docs/superpowers/plans/2026-10-22-trade-pro-theme-port.md +++ b/docs/superpowers/plans/2026-10-22-trade-pro-theme-port.md @@ -362,7 +362,7 @@ def test_theme_color_map_covers_trade_pro(): ### Task 12: 预设、编辑器与全量验收(Phase 4) - [ ] `page-presets.json` 13 种按 cms 首页/产品页实际区块结构重写(编辑器初始布局与真实设计一致) -- [ ] 编辑器验证:hero/cta/features/collection/attributes 在 trade-pro 下可编辑、预览、保存草稿、发布(spec §6) +- [ ] 编辑器验证:hero/cta/features/collection/attributes 在 trade-pro 下可编辑、预览、保存草稿、发布(spec §6)。**已知观察(Task 4 质量审查)**:main.py 编辑器侧读平台版 blocks.css,而构建产物可能用主题版——编辑器预览与最终站点可能样式不一致;本项验收时确认影响,必要时编辑器预览也走主题版 - [ ] 全站设计草稿验证:页眉/页脚/导航配置生效(显式值渲染、中文默认被值比对替换为英文兜底) - [ ] 全量回归:`python -m pytest -q`(≥210+新增全绿)、`node --check` 全部 JS - [ ] 实战验收:站点 483295c29ea0 最终构建 ≥203 页零错误;视觉对照两层标准(spec §6)逐页记录 diff --git a/tests/test_theme_registry.py b/tests/test_theme_registry.py index 6941b98..30fd719 100644 --- a/tests/test_theme_registry.py +++ b/tests/test_theme_registry.py @@ -99,8 +99,8 @@ def test_theme_blocks_css_overrides_platform(tmp_path): (theme_dir / 'blocks.css').write_text('/* theme version */', encoding='utf-8') builder.copy_blocks_css(theme_dir, dist) assert (dist / 'blocks.css').read_text(encoding='utf-8') == '/* theme version */' - # 无主题版时回落平台版 + # 无主题版时回落平台版(精确断言内容一致) dist2 = tmp_path / 'assets2'; dist2.mkdir() builder.copy_blocks_css(tmp_path / 'nonexistent', dist2) - assert (dist2 / 'blocks.css').is_file() - assert (dist2 / 'blocks.css').read_text(encoding='utf-8') != '/* theme version */' + platform = (builder.ROOT / 'app' / 'static' / 'blocks.css').read_text(encoding='utf-8') + assert (dist2 / 'blocks.css').read_text(encoding='utf-8') == platform