refactor(core): export_docx 字体助手复用 rendering.common——消除逐字重复
_set_run_fonts 与 rendering/common.py::set_run_fonts 逐字相同,改为 import 复用(单一事实源)。方向说明:rendering/ 会 bind-mount 进沙箱、必须保持无 core 依赖,故 export_docx(读 PG)留在 core、反向引 rendering —— 修正架构 审查里「迁 rendering/docx_chat.py」的建议,搬过去会破坏该层的沙箱可用性。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
9e680314eb
commit
8300631a1c
|
|
@ -25,10 +25,13 @@ from core.task import TaskState
|
|||
|
||||
from docx import Document
|
||||
from docx.enum.text import WD_ALIGN_PARAGRAPH
|
||||
from docx.oxml import OxmlElement
|
||||
from docx.oxml.ns import qn
|
||||
from docx.shared import Cm, Pt, RGBColor
|
||||
|
||||
# 字体 OOXML 助手复用平台渲染层的单一事实源(rendering/ 无 core 依赖,host 进程
|
||||
# 反向引它方向合法;本模块读 PG,不能反过来搬进 rendering —— 那层要保持沙箱可用)。
|
||||
from rendering.common import set_run_fonts as _set_run_fonts
|
||||
|
||||
|
||||
# ───────────────────────── 配色 ─────────────────────────
|
||||
# 选 Word 浅底高对比度的 GitHub-ish 色板,不刺眼也能区分
|
||||
|
|
@ -44,17 +47,6 @@ COLOR_META_LABEL = RGBColor(0x57, 0x60, 0x6A)
|
|||
|
||||
# ───────────────────────── 字体辅助 ─────────────────────────
|
||||
|
||||
def _set_run_fonts(run, *, cn_font: str = "宋体", en_font: str = "Times New Roman") -> None:
|
||||
rPr = run._element.get_or_add_rPr()
|
||||
rFonts = rPr.find(qn("w:rFonts"))
|
||||
if rFonts is None:
|
||||
rFonts = OxmlElement("w:rFonts")
|
||||
rPr.append(rFonts)
|
||||
rFonts.set(qn("w:eastAsia"), cn_font)
|
||||
rFonts.set(qn("w:ascii"), en_font)
|
||||
rFonts.set(qn("w:hAnsi"), en_font)
|
||||
|
||||
|
||||
def _preserve_spaces(run) -> None:
|
||||
"""让 docx 不压缩连续空格 — 代码块/JSON 缩进必须留住。"""
|
||||
for t in run._element.iter(qn("w:t")):
|
||||
|
|
|
|||
Loading…
Reference in New Issue