zcbot/rendering
caoqianming eb45e771fa fix(rendering+chip): 修 task d9c74a5a 三处独立缺陷——chip 粗体路径 404 / docx emoji 缺字 / 单文件被迫建 sections(bump 0.58.37)
一次"今日新闻 md→word"暴露三个不相干的坑,逐个定层修:

1) 前端文件 chip 点开弹框 404 —— media.js::extractArtifactRels 的 tail
   字符集 _TAIL_CLS 没排除 `*`,助手把路径写成 markdown 粗体
   `**<wd>/x.md**` 时前导 `**` 被 lead 边界吃掉、尾部 `**` 被贪婪吞进
   rel(星号既不在 tail 集也不在尾部 strip 集),生成 `x.md**` →
   /v1/files/download 404。修:`*` 加进 _TAIL_CLS 排除集,同反引号一样
   在 emphasis 处干净截断;文件名含 `*` 在 Windows 非法、误伤≈0。

2) 导出 word 图标(emoji)缺失 —— docx_manuscript 正文/标题字体是宋体/
   黑体/Times New Roman,无 emoji 字形,📰🔥🇨🇳📊 写进宋体 run →
   Word 渲染成豆腐块。修:common.py 加 EMOJI_RE + add_fonted_runs
   (按 emoji 边界拆 run,emoji 段走 Segoe UI Emoji、其余走原中西文字体),
   接进 _emit_plain_with_chem(不破坏化学式下标)与 add_inline
   (bold/italic/code);标题走 add_inline 自动覆盖。

3) 过程中冒出 sections/ 文件夹 —— render.py docstring 承诺 src 可为
   "目录或单个 .md",但 docx 三 profile 的 render_sections 全是 is_dir()+
   glob 只认目录(只有 pdf 支持单文件),模型传单 .md 撞
   `sections dir not found` → 被迫 mkdir sections && cp 兜底。修:
   common.py 抽 collect_md_files(文件→[src],目录→glob),docx_manuscript
   + docx_brief 共用,figures 基准取 src.parent;兑现 docstring 承诺。

验证(实跑非仅单测):emoji 满满的今日新闻 md 跑单文件 --profile report
退出 0(不再报 sections 缺失),解包 docx 校 run 字体——emoji 全
Segoe UI Emoji、中文仍宋体、SiO2/CaCO3 下标未被破坏;正则修复 4 组样本
(粗体/反引号+间隔号/裸路径+中文句号/斜体)全绿;目录多文件+brief+
不存在输入三路回归无破坏。三处互不相干可独立修,均 additive,不碰对外
API/DB 契约。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 22:15:34 +08:00
..
__init__.py feat(rendering): 平台渲染层 rendering/ 统一三 skill docx + chromium md→pdf + bump 0.21.0 2026-06-23 13:07:19 +08:00
common.py fix(rendering+chip): 修 task d9c74a5a 三处独立缺陷——chip 粗体路径 404 / docx emoji 缺字 / 单文件被迫建 sections(bump 0.58.37) 2026-07-17 22:15:34 +08:00
docx_brief.py fix(rendering+chip): 修 task d9c74a5a 三处独立缺陷——chip 粗体路径 404 / docx emoji 缺字 / 单文件被迫建 sections(bump 0.58.37) 2026-07-17 22:15:34 +08:00
docx_manuscript.py fix(rendering+chip): 修 task d9c74a5a 三处独立缺陷——chip 粗体路径 404 / docx emoji 缺字 / 单文件被迫建 sections(bump 0.58.37) 2026-07-17 22:15:34 +08:00
pdf.py feat(rendering): 平台渲染层 rendering/ 统一三 skill docx + chromium md→pdf + bump 0.21.0 2026-06-23 13:07:19 +08:00
render.py feat(rendering): 通用报告走平台渲染器 report profile + 基座引导,少让模型手撸 python-docx(bump 0.58.35) 2026-07-17 09:32:02 +08:00