Skip to content

v2.7.7

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:34
· 34 commits to main since this release

v2.7.7 · 图表换了引擎,也能放大了

这一版的主角是图表,另外把上一轮改动带出来的几处毛病收干净了。

画图的那套引擎换成了 Pele。 以前用 Mermaid,为了画出十几种图,安装包要背上三兆多的脚本,渲染还得塞进一个隐藏的 iframe 里跑,为的是别把打字卡住。Pele 是 Obsidian 团队做的,吃的还是同一份 Mermaid 语法,你文件里写的东西一个字都不用改;整个包六百多 KB,没有运行时依赖,那个 iframe 和配套的超时重置机制一起删掉了。它按图种分开加载:文件里没有图,启动时一分钱不花;有图也只加载用到的那一种。渲染器的体积从 10M 降到 5.4M,一张三百个节点的流程图从占位到画好大约 20 毫秒。图上的颜色现在从当前主题算出来,换主题不用重画,也不再有「按背景明暗挑浅色还是深色」这件事。图的排版会跟以前不一样,节点形状、连线弧度、字号都重新排过,这一点得先说清楚。

放不下的图现在能放大看。 以前一张横向铺得很开的图,在窄窗口或者开着大纲面板的时候会被压成一条几十像素高的细线,字糊成一团,而它本来只是照容器等比例缩小的。现在这类图角上会出现放大、缩小、还原三个按钮,也可以按住 Ctrl(Windows / Linux)或 Cmd(macOS)滚滚轮;放大之后按住图可以拖动平移,双击在原始大小和放大之间来回。本来就放得下的图不出现按钮,单用滚轮也还是滚文档,不会被图抢走。导出图片和 PDF 用的是完整的图,不会把放大后的那一角、或者那排按钮画上纸。

表格点哪一格,光标就落在哪一格。 以前点渲染出来的表格,光标落在源码第一行开头,而源码正被渲染结果盖着,看起来就是「打完字表格散架了」,其实第一个字写进了你看不见的地方。现在点某一格,光标进到那一格里去,行首带缩进的表格和没有竖线的表格也认得准,光标离开这块又变回排版。表格、图、HTML 块、块公式都按这个规矩来;图片不算,它源码只有一行,本来就在眼前。

一行链接不会再让整篇正文空白。 链接里只包一张图([![图](a.png)](https://…))会让渲染层的排序断言失败,于是整个渲染层被丢掉,文件打开就是空白一片。触发条件很窄,但踩上就是大事,现在修掉了,验收里也钉住了这个写法。

剩下的是小修小补:

  • 公式认得 \[…\] 和 \(…\):ChatGPT 这类模型默认用这两个定界符,以前粘进来是原文;现在能认,但会先看内容像不像公式,\[1\] 这种编号不会被误判
  • 行内 HTML 成对标签只管标签之间的字:<span style="color:red">红</span>绿 以前会把整行都染红
  • 选中文字不再给全文同一处都描上框:每个匹配项都框一遍,看得人眼晕
  • 代码块里选中文字看得见高亮:底色原来压在选区层上面,只剩左右两边各 40px 露出色带
  • 导出的 HTML 里不再漏进围栏符号:代码块结尾那行三个反引号以前会跟着进 <pre><code>
  • 打开文件面板时正文在可见区域里居中,不再被面板挤到左边缘
  • 渲染进程的运行期报错会写进 renderer-errors.log:白屏这种事后查不出原因的问题,至少留下一条线索

表格格子定位、围栏这两处来自 @wg2038 的贡献,面板那一段接着 @Yesokim 的改动做。


Full Changelog: v2.7.6...v2.7.7