Skip to content

Releases: Radiant303/markdownPreviewService

markdownPreviewService0.0.9

Choose a tag to compare

@Radiant303 Radiant303 released this 11 Jun 13:13

排版优化

数学公式

  • 优化行内公式排版逻辑:行内公式的大小由所在行决定,超出后自动换行,换行后的大小保持由之前所在行决定
  • 优化块级公式排版,新增配置项:
    • MATH_BLOCK_TOP_GAP = 10.0
    • MATH_BLOCK_BOTTOM_GAP = 20.0
    • MATH_BLOCK_MIN_HEIGHT = BODY_FONT_SIZE * 1.1
  • 支持数学公式自动换行

间距处理

  • 优化引用块和分割线的间距
  • 统一块间距折叠逻辑,采用"取两者较大值"的规则

markdownPreviewService0.0.8

Choose a tag to compare

@Radiant303 Radiant303 released this 11 Jun 08:44

🚀 v0.0.8 - Rendering Performance Optimization & Warm Startup Pipeline

本版本聚焦 SVG/PNG 渲染链路的性能优化,重点减少代码块换行过程中的重复计算与内存分配,并优化服务启动后的首次请求体验。通过提前初始化字体系统与 usvg 配置,同时精简普通文本渲染路径,让长文本、长标题和代码块场景下的响应更加稳定。

🛠️ 核心更新日志 (Changelog)

  1. ⚡ 代码块换行算法性能优化

性能重构:优化代码块折行逻辑,减少字符串临时对象创建与重复文本测量。

缓存友好:在代码块渲染过程中缓存文本行宽,避免同一段内容被多次计算宽度。

更低开销:针对长代码行、缩进代码和连续高亮 token 场景,降低内存分配压力,提升整体渲染吞吐。

  1. 🔥 服务启动阶段预热渲染资源

冷启动优化:服务启动时主动初始化字体系统与 usvg 配置,避免首次 /generate 请求承担字体加载和 SVG 渲染配置初始化成本。

体验改善:首次渲染耗时更加稳定,不再出现首个请求明显慢于后续请求的情况。

工程收益:将不可避免的初始化成本前移到启动阶段,使线上请求链路更可控。

  1. 📝 普通文本渲染路径精简

减少重复测量:无内联数学公式的普通文本行,从“输出 SVG 后再次测宽”优化为“直接输出 SVG”。

长文本更稳:对超长标题、连续中文文本、普通段落等高频场景减少不必要的 cosmic-text 调用。

保持兼容:包含行内数学公式的文本仍保留精确测宽逻辑,确保公式与普通文本混排位置正确。

markdownPreviewService0.0.7

Choose a tag to compare

@Radiant303 Radiant303 released this 11 Jun 05:09

🚀 v0.0.7 — AST Rendering Pipeline, Tables & Bundled Fonts

本版本完成 Markdown 渲染引擎的 AST 化重构,并新增完整表格渲染支持。

✨ Highlights

🏗️ AST 驱动渲染架构

  • 引入独立 AST 层,统一建模:
    HeadingParagraphQuoteListCodeBlockMathBlockTable 等节点。
  • 渲染流程升级为 AST 递归分发,提高可维护性与扩展性。
  • 模块拆分为 astsvg_buildertextcodemathglobalsconstantsutil 等模块,显著降低主入口复杂度。

📊 Markdown 表格支持

  • 新增完整 Markdown Table 渲染。
  • 支持左对齐、居中、右对齐语法。
  • 两阶段自动布局(列宽计算 → SVG 渲染),减少重复测量开销。
  • 新增表头高亮、斑马纹背景与圆角容器样式。

🧮 数学公式优化

  • 优化 MathJax SVG 缩放逻辑,提升公式排版一致性。
  • Inline Math 可在正文与表格中正常参与布局。

⚡ Result

  • 更清晰的渲染架构
  • 更强的扩展能力
  • Markdown 表格支持
  • 更稳定的数学公式排版
  • 更统一的视觉风格

markdownPreviewService0.0.6

Choose a tag to compare

@Radiant303 Radiant303 released this 09 Jun 06:42

FontSystem改为全局静态资源 使用spawn_blocking

markdownPreviewService0.0.5

Choose a tag to compare

@Radiant303 Radiant303 released this 09 Jun 04:47

🚀 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

Choose a tag to compare

@Radiant303 Radiant303 released this 08 Jun 12:27
  1. 长文本优化
  2. 新增多平台支持:linux windows docker

markdownPreviewService0.0.2

Choose a tag to compare

@Radiant303 Radiant303 released this 08 Jun 11:03

新增代码缩进和数学公式支持

markdownPreviewService0.0.1

Choose a tag to compare

@Radiant303 Radiant303 released this 07 Jun 15:46

windows平台程序发布编译 双击就可以运行 地址在3001