Releases: Radiant303/markdownPreviewService
Release list
markdownPreviewService0.0.9
排版优化
数学公式
- 优化行内公式排版逻辑:行内公式的大小由所在行决定,超出后自动换行,换行后的大小保持由之前所在行决定
- 优化块级公式排版,新增配置项:
MATH_BLOCK_TOP_GAP = 10.0MATH_BLOCK_BOTTOM_GAP = 20.0MATH_BLOCK_MIN_HEIGHT = BODY_FONT_SIZE * 1.1
- 支持数学公式自动换行
间距处理
- 优化引用块和分割线的间距
- 统一块间距折叠逻辑,采用"取两者较大值"的规则
markdownPreviewService0.0.8
🚀 v0.0.8 - Rendering Performance Optimization & Warm Startup Pipeline
本版本聚焦 SVG/PNG 渲染链路的性能优化,重点减少代码块换行过程中的重复计算与内存分配,并优化服务启动后的首次请求体验。通过提前初始化字体系统与 usvg 配置,同时精简普通文本渲染路径,让长文本、长标题和代码块场景下的响应更加稳定。
🛠️ 核心更新日志 (Changelog)
- ⚡ 代码块换行算法性能优化
性能重构:优化代码块折行逻辑,减少字符串临时对象创建与重复文本测量。
缓存友好:在代码块渲染过程中缓存文本行宽,避免同一段内容被多次计算宽度。
更低开销:针对长代码行、缩进代码和连续高亮 token 场景,降低内存分配压力,提升整体渲染吞吐。
- 🔥 服务启动阶段预热渲染资源
冷启动优化:服务启动时主动初始化字体系统与 usvg 配置,避免首次 /generate 请求承担字体加载和 SVG 渲染配置初始化成本。
体验改善:首次渲染耗时更加稳定,不再出现首个请求明显慢于后续请求的情况。
工程收益:将不可避免的初始化成本前移到启动阶段,使线上请求链路更可控。
- 📝 普通文本渲染路径精简
减少重复测量:无内联数学公式的普通文本行,从“输出 SVG 后再次测宽”优化为“直接输出 SVG”。
长文本更稳:对超长标题、连续中文文本、普通段落等高频场景减少不必要的 cosmic-text 调用。
保持兼容:包含行内数学公式的文本仍保留精确测宽逻辑,确保公式与普通文本混排位置正确。
markdownPreviewService0.0.7
🚀 v0.0.7 — AST Rendering Pipeline, Tables & Bundled Fonts
本版本完成 Markdown 渲染引擎的 AST 化重构,并新增完整表格渲染支持。
✨ Highlights
🏗️ AST 驱动渲染架构
- 引入独立 AST 层,统一建模:
Heading、Paragraph、Quote、List、CodeBlock、MathBlock、Table等节点。 - 渲染流程升级为 AST 递归分发,提高可维护性与扩展性。
- 模块拆分为
ast、svg_builder、text、code、math、globals、constants、util等模块,显著降低主入口复杂度。
📊 Markdown 表格支持
- 新增完整 Markdown Table 渲染。
- 支持左对齐、居中、右对齐语法。
- 两阶段自动布局(列宽计算 → SVG 渲染),减少重复测量开销。
- 新增表头高亮、斑马纹背景与圆角容器样式。
🧮 数学公式优化
- 优化 MathJax SVG 缩放逻辑,提升公式排版一致性。
- Inline Math 可在正文与表格中正常参与布局。
⚡ Result
- 更清晰的渲染架构
- 更强的扩展能力
- Markdown 表格支持
- 更稳定的数学公式排版
- 更统一的视觉风格
markdownPreviewService0.0.6
FontSystem改为全局静态资源 使用spawn_blocking
markdownPreviewService0.0.5
🚀 v0.0.5 - Typography Engine Overhaul & Monospace Code Layout
本版本对底层的 SVG 渲染引擎进行了深度重构,彻底告别了粗暴的内联标签拼接,引入了更具现代工程感的 结构化排版设计。同时大幅优化了代码块的排版表现,并完善了多字体回退机制。
🛠️ 核心更新日志 (Changelog)
1. 🏗️ 基于 cosmic-text 的结构化排版重构
- 阵痛告别:重构了旧版本中通过简单的字符串拼接逻辑(内联 XML 标签)处理富文本的混乱模式。
- 全新架构:引入结构化的
TextRun数据建模。段落、加粗、斜体、行内代码与数学公式均被抽象为独立的文本片段流。 - 专业级排版:全面接入
cosmic-text文本排版引擎,支持精准的跨平台文本测量(Text Measurement)与布局计算,规避了文本越界与重叠问题。
2. 💻 代码块渲染管道升级(先高亮,后按宽折行)
- 流水线优化:调整了代码块的渲染顺序,改为 先调用
syntect进行词法高亮,再通过排版引擎根据画布剩余宽度(code_area_w)进行动态折行计算。 - 完美对齐:通过
xml:space="preserve"精确保留原始缩进,杜绝了超长代码溢出画布或高亮标签在换行时断开的 Bug。 - 视觉微调:微调了代码块容器的顶部间距(
+ 16.0),让整体排版视觉呼吸感更均衡。
3. 🔤 新增等宽字体(Monospace)展示效果
- 统一风格:代码块字体族(
font-family)同步对齐顶栏日期的全套 CJK 字体回退序列。
markdownPreviewService0.0.3
- 长文本优化
- 新增多平台支持:linux windows docker
markdownPreviewService0.0.2
markdownPreviewService0.0.1
windows平台程序发布编译 双击就可以运行 地址在3001