diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e792c0..105dd7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ Every release entry is provided in English and Simplified Chinese. #### Added - **Native mathematics in Markdown documents** — inline $...$ and display $$...$$ formulas are parsed and laid out entirely in Rust, then drawn as cached glyphs and rule quads with the bundled Latin Modern Math font. Fractions, roots, scripts, limits, matrices, scalable delimiters, Greek letters, common operators, and Unicode prose inside formulas work without a WebView, JavaScript runtime, image export, or external TeX process. -- **Math rendering screenshot fixture** — `docs/math-rendering-test.md` now provides a reusable Markdown document covering inline formulas, Greek letters, relations, arrows, fractions, radicals, scripts, calculus, delimiters, matrices, cases, aligned equations, vector calculus, long formulas, blank rows, Unicode prose, and the explicit dollar-fence boundary. +- **Math rendering screenshot fixture** — the README now shows a verified native-math screenshot, while `docs/math-rendering-test.md` provides its reusable source document covering inline formulas, Greek letters, relations, arrows, fractions, radicals, scripts, calculus, delimiters, matrices, cases, aligned equations, vector calculus, long formulas, blank rows, Unicode prose, and the explicit dollar-fence boundary. - **A built-in font fallback** — Maple Mono Normal NF CN is now embedded in Nebula as a runtime fallback, so the interface remains readable when the system font has not been installed. The system-installed font is still preferred, the installation reminder remains dismissible, and the portable archive still includes the original font under `fonts` for normal installation. - **Choose the directory shown in Files and Git** — the Files drawer can now select a custom root with the native folder picker, and the Git view follows the same root. The choice lasts until the current window closes; “Follow current directory” immediately returns to the focused terminal directory. - **Four SSH sign-in modes** — each saved host can now use Automatic, Password, Private Key, or Keyboard-interactive authentication. Automatic mode tries configured keys before password and interactive prompts, while an explicitly selected mode stays strict and does not silently switch methods. @@ -45,7 +45,7 @@ Every release entry is provided in English and Simplified Chinese. #### 新增 - **Markdown 文档支持原生数学公式** — 行内 $...$ 和块级 $$...$$ 公式现在全部由 Rust 解析和排版,再使用内置 Latin Modern Math 字体以缓存字形和规则线 quad 直接绘制。分数、根式、上下标、极限、矩阵、伸缩括号、希腊字母、常用运算符以及公式中的 Unicode 说明文字都可以显示,整个过程不依赖 WebView、JavaScript、公式图片或外部 TeX 进程。 -- **数学渲染截图样例** — 新增 `docs/math-rendering-test.md`,集中覆盖行内公式、希腊字母、关系符号、箭头、分式、根式、上下标、微积分、伸缩括号、矩阵、分段函数、多行对齐、向量分析、长公式、空行、Unicode 说明文字以及美元围栏边界,方便直接打开截图回归。 +- **数学渲染截图样例** — README 已展示经过验证的原生数学截图,并新增对应的可复用源文档 `docs/math-rendering-test.md`;文档集中覆盖行内公式、希腊字母、关系符号、箭头、分式、根式、上下标、微积分、伸缩括号、矩阵、分段函数、多行对齐、向量分析、长公式、空行、Unicode 说明文字以及美元围栏边界,方便直接打开截图回归。 - **内置了字体显示兜底** — Maple Mono Normal NF CN 现在会随主程序一起内置。即使用户忘了安装系统字体,界面也能正常显示;已经安装的系统字体仍然优先,缺少字体时的提醒依旧可以关闭,便携包里的 `fonts` 目录和原始字体文件也继续保留,方便按正常方式安装。 - **文件和 Git 可以切换查看目录了** — 文件抽屉新增原生目录选择器,选中的目录也会同步用于 Git 页面。这个选择只保留到当前窗口关闭;点击“跟随”后会立即重新跟随当前终端所在目录。 - **四种 SSH 登录方式** — 每个已保存主机都可以选择自动、密码、密钥或交互式认证。自动模式会先尝试配置的私钥,再尝试密码和交互式提示;手动选择某种方式后则只使用该方式,不会失败后悄悄切换。 diff --git a/README.md b/README.md index ab20087..113711e 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,26 @@ experience that works without extra setup. `$env:KEY=value` assignments are auto-quoted, `ls` gets colors and clickable OSC 8 hyperlinks. +**Documents & native mathematics** + +

+ Native mathematics rendered in a Nebula Markdown document +

+ +- **Markdown/GFM document tabs** — open Markdown, JSON, and plain-text files + directly from the file drawer with headings, lists, tables, code blocks, + links, quotes, word wrapping, and virtualized scrolling. +- **Native TeX mathematics** — inline `$...$` and display `$$...$$` formulas + are parsed and laid out entirely in Rust, then drawn through cached Latin + Modern Math glyphs and GPU rule quads. Fractions, radicals, scripts, limits, + integrals, matrices, scalable delimiters, Greek letters, and common symbols + render without a WebView, JavaScript runtime, or external TeX process. +- **Bounded document rendering** — oversized formulas fit the reading column, + long prose and failed formulas wrap, and parser, layout, cache, atlas, and + per-frame work all have explicit limits. See the + [math rendering fixture](docs/math-rendering-test.md) for the screenshot and + regression set. + **Interface**

@@ -209,6 +229,7 @@ Windows/Linux paths, arrays, modules, and reload behavior. | Terminal core | GPU-resident grid + VTE escape-sequence parsing | | Session model | Resident mux process, loopback attach protocol | | Shell integration | PowerShell + PSReadLine, Git Bash; OSC 7/8/9/133/1337 | +| Document math | pulldown-cmark + pulldown-latex + OpenType MATH (Latin Modern Math) | | Fonts | Maple Mono Normal NF CN (Nerd Font glyphs, CJK-aware) | ### 📦 Requirements @@ -307,6 +328,22 @@ Nebula 是一款 Windows 上的终端模拟器,以 Rust 编写,构建在 GPU - **顺手的小修正** — 不带引号的 `cd D:/Program Files` 直接可用,裸 `$env:KEY=value` 自动加引号,`ls` 带颜色和可点击的 OSC 8 超链接。 +**文档与原生数学公式** + +

+ Nebula Markdown 文档中的原生数学公式 +

+ +- **Markdown/GFM 文档标签页** — 可以从文件抽屉直接打开 Markdown、JSON 和 + 纯文本文件,原生显示标题、列表、表格、代码块、链接、引用、自动换行和虚拟滚动。 +- **原生 TeX 数学排版** — 行内 `$...$` 与块级 `$$...$$` 公式全部由 Rust + 解析和布局,再使用缓存的 Latin Modern Math 字形与 GPU 规则线 quad 绘制。 + 分式、根式、上下标、极限、积分、矩阵、伸缩括号、希腊字母和常用符号均不经过 + WebView、JavaScript 运行时或外部 TeX 进程。 +- **有界文档渲染** — 超宽公式会收敛到阅读列,长文本和失败公式会继续换行; + 解析、布局、缓存、字形图集和每帧工作量均有明确上限。截图与回归内容见 + [数学渲染测试文档](docs/math-rendering-test.md)。 + **界面**

@@ -372,6 +409,7 @@ Nebula 的目标用户、核心场景,以及相对 Warp、kitty、Tabby、WezT | 终端内核 | GPU 常驻网格 + VTE 转义序列解析 | | 会话模型 | 常驻 mux 进程,环回 attach 协议 | | Shell 集成 | PowerShell + PSReadLine、Git Bash;OSC 7/8/9/133/1337 | +| 文档数学 | pulldown-cmark + pulldown-latex + OpenType MATH(Latin Modern Math) | | 字体 | Maple Mono Normal NF CN(Nerd Font 图标,支持 CJK) | ### 📦 环境要求 diff --git a/docs/screenshots/native-math-rendering.png b/docs/screenshots/native-math-rendering.png new file mode 100644 index 0000000..01b4a1f Binary files /dev/null and b/docs/screenshots/native-math-rendering.png differ