admin
|
d1cbc10fc4
|
fix: print PDF from actual editor theme CSS and shared Markdown rendering
|
2026-09-07 14:33:19 +08:00 |
|
admin
|
9f097ea629
|
fix: preserve exports on close and support themed PDF without export quotas
|
2026-09-07 14:04:03 +08:00 |
|
admin
|
89df10bc4e
|
Complete phase two benchmarks, plot previews and static export workflow
|
2026-09-07 02:54:52 +08:00 |
|
admin
|
f91c26451b
|
fix(plot): bound adaptive sampling and preserve curve discontinuities
|
2026-09-07 00:43:34 +08:00 |
|
 yxxandClaude Code
|
4276cb73c2
|
fix(plot): 渐近点落在采样点之间时断段,避免伪竖线
相邻有限采样点分居可见范围上下两侧时说明中间夹着竖直渐近线,
此前只对非有限值断段,会被 Liang-Barsky 裁剪成贯穿绘图区的伪竖线;
现在在共享几何层断段,并新增回归测试断言不存在跨越上下边界的伪连接线段。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-06 23:26:13 +08:00 |
|
 yxxandClaude Code
|
edc41fdade
|
fix(export): 裁剪超出范围的曲线并修正 PDF 纵轴标签
- 共享几何将曲线裁剪到绘图矩形,避免超出显式 range 的曲线覆盖 PDF 其他内容
- PDF 纵轴标签改为组内局部坐标 + 先平移后旋转,标签边界落回 Drawing 范围内
- 更新 pdf.py 模块说明:function_plot 已内嵌矢量图
- 新增曲线裁剪与纵轴标签边界回归测试
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-06 22:28:09 +08:00 |
|
 yxxandClaude Code
|
f1ac414866
|
feat(export): PDF 内嵌函数图像矢量图
- 抽取 render.py 共享几何:新增 PlotGeometry + compute_geometry,render_svg
改为薄序列化层,SVG 输出与重构前逐字节一致(8 组用例回归验证)
- 新增 app/plot/render_reportlab.py:消费共享几何产出 reportlab 矢量 Drawing
(网格/坐标轴 Line、曲线 PolyLine、刻度/标签 String、ylabel Group 旋转),
复用 STSong-Light 渲染中文,按页面内容宽 renderScale 缩放
- pdf.py _block_function_plot 改为内嵌矢量图(解析/渲染失败或超预算回退占位,
单图失败不阻断整篇);mermaid 仍占位
- 抽取 FunctionPlotBudget + format_plot_diagnostic 到 _common.py,html/pdf 共用
- 文档同步:PDF 已内嵌函数图像,DOCX 仍占位(栅格化范围外)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-06 21:26:54 +08:00 |
|
 yxxandClaude Code
|
406dd42571
|
feat(export): 新增 PDF/DOCX 导出与 StaticRenderer 内部契约
- 新增 PdfExporter(reportlab)与 DocxExporter(python-docx),实现与
HtmlExporter 一致的同步 render + 异步 export,v1 文本优先(标题/段落/
行内强调与链接/列表/引用/表格/代码块/数学文本),function_plot 与 mermaid
保留源码占位并记 warning。
- service 层加 _EXPORTERS 注册表按格式分发,删除 format!=html 硬限制,
扩展名/MIME/产物清理泛化到 html/pdf/docx 三种格式。
- 新增 app/plot/renderer.py:StaticRenderRequest + StaticRenderer Protocol +
FunctionPlotStaticRenderer + MermaidStaticRenderer;HtmlExporter 改经
FunctionPlotStaticRenderer 消费,去除对 render_svg 的直接依赖。
- 补齐 PDF/DOCX 魔法字节、CJK 字体、占位 warning 与 StaticRenderer 契约测试。
- 更新 Export开发说明.md。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-06 17:04:58 +08:00 |
|
 yxxandClaude Code
|
c9c5f81d49
|
fix(export): 增加文档级组合复杂度预算与并发渲染限制
针对 PR 审阅 P1「组合复杂度仍可长时间占满导出线程」与 P3「EXPORT_OUTPUT_TOO_LARGE 误标 HTTP 413」:
- plot: FunctionPlot 记录整块 AST 节点数(node_count),parser 累计
- html: 单篇文档累计节点预算 _MAX_TOTAL_PLOT_NODES=8000,超限回退占位
- service: 并发渲染信号量 MAX_CONCURRENT_RENDERS=2,超限额任务排队等待
- docs: 错误码区分同步 HTTP 错误与异步任务错误,EXPORT_OUTPUT_TOO_LARGE 由
error_code 返回而非 HTTP 413
- 补充节点预算与并发限制两条回归测试(全量 627 通过)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-06 14:01:29 +08:00 |
|
 yxxandClaude Code
|
124024a547
|
fix(export): 为函数图像与导出产物增加资源上限
针对 PR 审阅「函数数量没有限制,可能生成数百 MB 的 SVG」:
- parser: 单块 function-plot 表达式上限 _MAX_EXPRESSIONS=16,超限整块回退
- html: 单篇文档函数图像上限 _MAX_FUNCTION_PLOTS=16,超出回退源码占位
- service: 输入源 MAX_MARKDOWN_CHARS、产物 MAX_EXPORT_BYTES,超限分别
拒绝创建或标记 failed(EXPORT_OUTPUT_TOO_LARGE)
- 补充 4 条回归测试与文档说明
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-05 23:31:53 +08:00 |
|
 yxxandClaude Code
|
b87f94551b
|
fix(plot): 修复复审问题(2 P2 + 1 P3)
- P2 复杂表达式绕过异常回退:解析与渲染共同纳入局部异常回退;
AST 深度/节点数上限拦截 RecursionError
- P2 极端有限范围生成 nan SVG:校验坐标跨度有限且 >0,回退安全范围;
_polyline 拒绝非有限像素坐标
- P3 更新接口契约文档:function-plot 静态 SVG 已实现
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-05 22:49:01 +08:00 |
|
 yxxandClaude Code
|
04f36524b1
|
fix(plot): 修复函数图像审阅问题(1 P1 + 2 P2)
- P1 浮点刻度死循环:_ticks 改为有上限的整数索引推进并校验步长推进
- P2 求值异常:白名单函数校验参数数量;负数底非整数指数按断点处理;采样容错复数
- P2 无效纵轴范围:退化/非有限 range 丢弃并自动采样重算;渲染异常回退占位不阻断导出
- 补 6 个回归测试
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-05 21:14:50 +08:00 |
|
 yxxandClaude Code
|
f49d1245a1
|
feat(export): 函数图像静态渲染(function-plot → SVG)
- 新增 app/plot 包:白名单表达式解析(ast 无 eval)+ FunctionPlot 模型 + 静态 SVG 渲染
- HtmlExporter 的 function_plot 节点解析并内嵌 SVG,解析失败回退占位并转诊断
- 新增 test_plot.py(13 个测试)覆盖表达式安全、指令解析、SVG 输出与导出链路集成
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-04 22:41:35 +08:00 |
|