Skip to content

Releases

rustmd v1.10.5 — local-first Markdown, HTML & data notes

Choose a tag to compare

@github-actions github-actions released this 14 Nov 11:13

rustmd 1.10.5

这是依赖维护版:功能和笔记格式与 1.10.4 相同,主要把运行时、PDF 与前端依赖更新到
当前版本,并修复了 GitHub 上合并的依赖升级 PR 带来的编译中断。建议 1.10.4 用户升级,
以获取依赖中的安全与健壮性修复。

依赖升级

  • libloading 0.8.9 → 0.9.0(Linux 打印 FFI 运行时加载)
  • lopdf 0.36.0 → 0.47.0(PDF 页码压印;新增畸形 PDF 的解析/解压上限、
    xref 边界校验与更多流过滤器)
  • getrandom 0.3.4 → 0.4.3(预览/渲染随机令牌)
  • tauri-plugin-opener 2.7.2 → 2.7.3
  • marked 18.1.3 → 18.2.0(Markdown 解析修复)
  • vite 8.3.6 → 8.3.8(构建链修复)

Linux 兼容性

  • 本版 Linux deb/AppImage 改在 Ubuntu 26.04 上构建(与 LINUX_BUILD.md 的
    构建基线一致),运行基线为 Ubuntu 24.04+ / glibc 2.39,需要 GTK 3 与
    WebKitGTK 4.1 运行库。
  • 仍在使用 Ubuntu 22.04 的用户请保留 1.10.4,或按 LINUX_BUILD.md 从源码构建。
  • 普通 CI 仍保留 Ubuntu 22.04 的编译与 Xvfb E2E;发布 workflow 另外在
    Ubuntu 26.04 上执行 deb/AppImage 打包 dry run。
  • 新增非阻塞的 Wayland smoke(sway headless + grim):以
    GDK_BACKEND=wayland 启动 release 二进制并检查首帧非空白;失败只报告,
    不阻塞发布。应用仍自动适配 Wayland 与 X11/XWayland,不需要手动设置后端。

修复与验证

  • 适配 libloading 0.9 的 AsFilename API,Linux 打印代码恢复编译。
  • 适配 lopdf 0.47 的 get_page_content 返回值,PDF 页码测试恢复编译。
  • 页码压印测试新增“原有字体不得被替换”的断言;并用真实 9 页 WebView2 导出 PDF
    验证:页数、正文与嵌入字体均保留,每页 N / M 页脚位置正确。
  • npm run check 全绿:60 个前端单测、77 个 Rust 测试、fmt/clippy/ESLint、
    仓库/版本检查与 Vite 生产构建。
  • 真实 WebView2 E2E(10 篇示例,含 HTML/CSV/TXT/JSON)通过;远程图片主机不可达
    时按既有策略记为警告,不影响发布。

下载

平台 文件
Windows rustmd-1.10.5-win-x64-portable.zip
Linux rustmd_1.10.5_amd64.deb / rustmd_1.10.5_amd64.AppImage
macOS rustmd-1.10.5-macos-arm64.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者);macOS 为 ad-hoc 签名、未公证。
每个平台资产旁有 .sha256(Linux 另有 SHA256SUMS-linux.txt),Release 里还有
合并的 SHA256SUMS.txt。

rustmd v1.10.4 — local-first Markdown, HTML & data notes

Choose a tag to compare

@github-actions github-actions released this 14 Nov 01:42

rustmd 1.10.4

这一版是一次全量审计 + 回归后的稳定版:修掉了一个会丢数据的撤销 bug、几处
HTML/PDF 渲染问题,并收紧了 HTML 笔记的资源与路径边界。功能与文件格式不变,
建议所有 1.10.x 用户升级。

安全与数据安全

  • HTML 笔记不能再读取库内任意文件:read_local_image 只接受图片扩展名。
    以前恶意 HTML 笔记可以把库里的 .env、密钥等文本变成 <img> 的 data URL
    再读出来;CSS/JS 内联单独限制为 .css/.js/.mjs。
  • 超大文件保护:单篇笔记超过 64 MB 时只显示文件名和“内容过大”的摘要,
    不会加载正文,避免下载来的笔记库卡死界面。
  • 切换笔记后的撤销已隔离:打开新笔记会重建编辑器状态,Ctrl+Z 不会再恢复
    上一篇笔记的文本并自动保存进当前文件。
  • 关闭窗口前自动保存:窗口关闭会先 flush 500ms 防抖保存;保存失败会询问,
    不再静默丢失最后几秒输入。

HTML / 预览 / 导出

  • HTML 资源内联保留 <html lang>、<body class> 等文档属性;defer 头部脚本
    内联后在 <body> 存在时才执行,报告类页面不再丢样式/图表。
  • 快速切换笔记时,旧 Markdown 渲染不会再清掉新打开的 HTML 预览。
  • 栅格 PDF 的每一页按自身宽高选择方向,最后一页不再是窄而高、右侧被裁掉的页面。
  • PDF 一律使用浅色打印配色:深色主题在 macOS/Linux 上不会出现浅字白纸。
  • PNG / 栅格 PDF 的缩放同时限制宽度、高度和总像素面积,超宽大表不再触发画布上限;
    图片按真实尺寸排版,不再把 200px 小图放大到 860px。
  • 独立 HTML 导出的代码块会带上 highlight.js 配色。

数据与界面

  • CSV/TSV 分隔符嗅探修复:文本字段里的逗号、引号内的分号不再导致列错位。
  • 英文界面的搜索命中不再显示中文的“标题/文件名/标签”前缀。
  • 删除笔记时,500ms 自动保存不会把文件重新写回来;导出不会再并发叠加。
  • 标签输入支持一次粘贴多个标签并保持焦点;搜索高亮不再破坏 &amp; 等实体。
  • 数据视图切换后释放监听器与 ResizeObserver;长表头、长 TXT 行与深 JSON 不再被裁切;
    尊重系统“减少动态效果”设置。
  • 单篇笔记 64 MB 读取上限(正常 CSV/TXT/JSON 仍不限制行列显示)。

质量与发布

  • npm run check:ESLint、60 个前端单测、仓库/IPC/文档/版本检查、fmt、clippy
    -D warnings、77 个 Rust 测试、Vite build。
  • npm run selftest:真实 WebView 10 篇示例;报告校验器现在要求每个 PNG/PDF/HTML
    产物真实存在且字节数一致、示例全覆盖,并断言残留公式/Mermaid/MathJax 错误、
    空白 PNG、HTML 文档结构与脚本执行。
  • CI 在打 tag 前就执行 Windows 签名 + 绿色 zip、macOS app bundle + ad-hoc 签名的
    打包 dry run;Release 缺少任一平台资产会直接失败。
  • GitHub About/topics 统一为 HTML 优先口径(html、html-editor、html-notes、
    webview)。

下载

平台 文件
Windows rustmd-1.10.4-win-x64-portable.zip
Linux rustmd_1.10.4_amd64.deb / rustmd_1.10.4_amd64.AppImage
macOS rustmd-1.10.4-macos-arm64.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者);macOS 为 ad-hoc 签名、未公证。
每个平台资产旁有 .sha256(Linux 另有 SHA256SUMS-linux.txt),Release 里还有
合并的 SHA256SUMS.txt。

rustmd v1.10.3

Choose a tag to compare

@github-actions github-actions released this 13 Nov 05:23

rustmd 1.10.3

这一版优化 CSV / TXT / JSON 笔记的 HTML 导出:不再套用 Markdown 的
820px 阅读栏宽,改为充分利用浏览器屏幕宽度,同时保持 CSV/TXT 相同的表格逻辑。

变化

  • 数据笔记独立导出文档使用 data-export 全宽布局:左右边距缩小,正文不再限制
    820px;1440 视口下 18 列 TXT 表格卡片约 1374px,1920 下约 1856px。
  • 数据卡片仍按内容收缩:3 列窄表不会被强行拉满;宽表使用整个视口并在表格底部
    保留横向滚动,不再继承预览的 max-height 内部纵向滚动。
  • CSV 与 TXT 共用同一套 data-export 类、列宽/对齐/表头/滚动规则;JSON 检查器
    也使用全宽布局。
  • Markdown 导出的 820px 阅读栏宽保持不变,避免正文行宽过长。

验证

  • npm run check:ESLint、51 个前端单测、仓库/版本检查、fmt、clippy
    -D warnings、75 个 Rust 测试、Vite build 全部通过。
  • npm run selftest:真实 WebView 10 篇示例全部通过。
  • 真实 GBK 股票 TXT 导出的 HTML 在 1440/1920 下验证:全宽卡片、横向滚动可访问
    全部 18 列,CSV 使用同一布局逻辑。

下载

平台 文件
Windows rustmd-1.10.3-win-x64-portable.zip
Linux rustmd_1.10.3_amd64.deb / rustmd_1.10.3_amd64.AppImage
macOS rustmd-1.10.3-macos-arm64.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证。

rustmd v1.10.2

Choose a tag to compare

@github-actions github-actions released this 13 Nov 04:43

rustmd 1.10.2

这是针对 1.10.1 宽数据表 PDF 导出的修复版。

修复

  • TXT/CSV 宽表导出 PDF 错乱:1.10.1 会把数据表按普通 Markdown 表格的
    width:100% 规则压回 A4 宽度,随后 jsPDF 以 portrait 方向二次旋转,得到一张
    竖长、列被挤压且右侧裁切的页面。1.10.2 让导出舞台保留数据表的自然宽度,并按
    页面实际宽高选择 landscape/portrait;18 列 TXT 表现在导出为一张完整的横向页面。
  • 数据表在导出舞台不再继承 Markdown 表格的强制 100% 宽度和逐字换行规则;列宽、
    数字/日期/中文标签都保持与 PNG 一致的排版。
  • TXT 列宽修复:整行说明和空行不再参与列宽推断;3 列 TXT 示例的「名称」列
    不再被说明文字撑大,空行也不再显示成空表格行。README 截图同步更新。

兼容与验证

  • 保留 1.10.1 可调布局、4K/200% 数据视图、无行/列/节点上限、GBK/GB18030、
    HTML charset 等全部改动。
  • npm run check:ESLint、51 个前端单测、仓库/版本检查、fmt、clippy
    -D warnings、75 个 Rust 测试、Vite build 全部通过。
  • npm run selftest:真实 WebView 10 篇示例全部通过。
  • 真实 GBK 股票信号文件 24 行 × 18 列:PNG 8505×2847;PDF 为
    2126.25×711 pt 横向页面,完整显示全部列。
  • 1440×900、1920×1080(4K/200%)交互与截图保持 1.10.1 的效果。

下载

平台 文件
Windows rustmd-1.10.2-win-x64-portable.zip
Linux rustmd_1.10.2_amd64.deb / rustmd_1.10.2_amd64.AppImage
macOS rustmd-1.10.2-macos-arm64.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证:
首次启动会被 Gatekeeper 拦截,请在系统设置 → 隐私与安全性中选择“仍要打开”,
或执行 xattr -dr com.apple.quarantine /Applications/rustmd.app。

rustmd v1.10.1

Choose a tag to compare

@github-actions github-actions released this 13 Nov 03:54

rustmd 1.10.1

这一版集中解决宽表和大屏布局:CSV 与 TXT 共用同一套表格引擎,列宽按内容计算,
窄表不强制铺满,宽表可用满 4K/200% 视口;同时让左侧导航栏和编辑/预览分屏都可以
拖动调整,并在顶栏提供一键恢复默认宽度。

新增

  • 可调布局:拖动左侧栏右缘调整导航宽度(220–680px,默认 320px,按视口
    自适应);拖动编辑/预览分隔条调整分屏比例(20%–80%,默认 50/50)。支持键盘
    方向键、双击/Enter 重置;两个宽度分别存 rustmd-sidebar-width / rustmd-split。
  • 一键恢复默认宽度:顶栏新增恢复按钮,同时恢复 320px + 50/50,并清除偏好。
  • README 中英文补充 MD/HTML/CSV/TXT/JSON 全格式实际渲染截图,并重新生成主界面、
    深色主题、侧栏、多库截图。

数据表格

  • CSV/TXT 共用同一套表头检测、对齐、列宽、滚动和样式逻辑。
  • 列宽按内容自适应:窄表收缩、宽表占满预览宽度;折行阈值放宽到 64 显示字符,
    股票信号样本所有字段保持单行。
  • TXT 首行含数值时不再被误判为表头;只有特征明确才生成 <thead>。
  • 宽表提供顶部和底部同步横向滚动条;长表在卡片内滚动,表头固定。
  • 数据视图不再限制行/列/节点数量,完整内容进入预览;超大文件的内存/渲染成本
    由用户控制。
  • 宽表 PNG/栅格 PDF 的离屏舞台扩宽到表格自然宽度,不再裁掉右侧列;窄数据表仍走
    矢量 PDF,宽数据表自动回退栅格 PDF;超宽时按画布宽度降采样。
  • 18 行以上的表格在预览区会把剩余高度均分给行高,减少卡片底部空白;CSV 短表
    仍按内容高度显示。

兼容与验证

  • 保留 1.10.0 的 CSV 分隔符/空引号、HTML charset、BOM、GB18030、数据导出等修复。
  • npm run check:ESLint、50 个前端单测、仓库/版本检查、fmt、clippy
    -D warnings、75 个 Rust 测试、Vite build 全部通过。
  • npm run selftest:真实 WebView 10 篇示例全部通过;真实 GBK 股票信号文件
    24 行 × 18 列读取及 PNG/PDF 导出成功。
  • 1440×900、1920×1080(4K/200%)和 3840×2160 物理截图均已验证。

下载

平台 文件
Windows rustmd-1.10.1-win-x64-portable.zip
Linux rustmd_1.10.1_amd64.deb / rustmd_1.10.1_amd64.AppImage
macOS rustmd-1.10.1-macos-arm64.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证:
首次启动会被 Gatekeeper 拦截,请在系统设置 → 隐私与安全性中选择“仍要打开”,
或执行 xattr -dr com.apple.quarantine /Applications/rustmd.app。

请使用对应平台的 .sha256 / SHA256SUMS-linux.txt 校验;合并的
SHA256SUMS.txt 需要先把全部 Release 资产下载到同一目录再执行
sha256sum -c SHA256SUMS.txt。

rustmd v1.10.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 01:37

rustmd 1.10.0

这一版把 rustmd 从“Markdown / HTML 笔记”扩展为五种格式的本地笔记与数据查看器:
新增 CSV 表格、TXT 制表符对齐、JSON 检查器,并为所有格式补齐格式徽标、新建菜单、
编码状态和 HTML/PNG/PDF 导出。表格列宽、对齐、隔行底色与按列文字色也做了系统性
优化。

新增

  • CSV 表格:引号字段、字段内换行、双引号转义;逗号/制表符/分号/竖线分隔符
    嗅探;首行表头;数字/日期/货币/布尔智能对齐;短列收紧、长文本列占余宽;
    隔行底色 + 按列文字色 + 细分隔线 + 悬停高亮。
  • TXT 制表符对齐:按制表符拆列并保留空格;无制表符行整行显示;自动跳过前置
    说明行、按第一行多列文本识别表头;等宽字体与智能列宽。
  • JSON 检查器:键值分列、对象/数组分组浅底与侧边轨、类型/数量标签、类型圆点、
    可折叠分组;字符串/数字/布尔/null 独立语义色;非法 JSON 显示错误和完整原文;
    浅色/深色两套配色。
  • 自适应编码:BOM → UTF-8 → GBK → GB18030;状态栏显示当前编码;保存沿用
    原编码和 BOM;GBK 文件新增四字节字符(emoji)时兼容升级为 GB18030;重复 UTF-8
    BOM 归一化,不会累积。NoteMeta 也返回编码,保存后状态栏同步。
  • 全格式导出:CSV/TXT/JSON 与 Markdown 共用 HTML/PNG/PDF 导出;数据 HTML
    保留表格/检查器样式与截断提示;HTML 笔记导出统一为 UTF-8 独立文件并规范化遗留
    <meta charset="gbk">。
  • 4 个数据示例夹具,以及 HTML/CSV/TXT/JSON 中英文、深色截图。

变更

  • 格式徽标、新建菜单、编辑器语法、列表标题和状态栏覆盖全部五种格式。
  • 表格视觉从列底色改为“隔行底色 + 按列文字色”,并加入智能宽度提示;JSON 调色板
    与分组层次同步优化。
  • 自测扩展到 10 篇示例(含 GBK CSV),报告检查新增 --require-data、数据表头
    对齐、HTML 文本不注入 DOM、数据 HTML 导出与 charset 断言;CI 自测上限 1200 秒。
  • README 中英文、AGENTS、架构/测试/安全/发布/审计文档、GitHub 推广文案同步更新。

修复

  • CSV 大行数渲染时的调用栈崩溃;分隔符被文本内逗号误导。
  • TXT 前置说明行导致表头参与类型判断、数字列左对齐。
  • 打印/导出时数据视图被 overflow 裁剪;非法 JSON 原文只导出 520px。
  • Windows 保留名/前导点重命名;Unix 反斜杠文件名被误当路径分隔符。
  • HTML 旧编码导出乱码;重复 BOM 保存累积;GB18030 四字节文件标错编码。
  • 数据笔记保存冲突、重命名扩展名、GBK 升级等回归测试补齐。

数据与兼容

  • 现有 Markdown / HTML 笔记、front matter、标签、最近笔记库和多库配置不受影响。
  • 新增 .csv / .txt / .json 笔记;不写 front matter,不产生标签。
  • 数据视图为资源上限:CSV 2000 行/100 列、TXT 5000 行/80 列、JSON 6000 节点;
    预览与导出都显示截断提示。
  • 编码歧义保留说明:约 1920 个常用汉字的 GBK 字节也是合法 UTF-8,此时按 UTF-8
    读取;遇到乱码请先在外部转换。
  • Windows 绿色 zip、Linux deb/AppImage、macOS Apple Silicon DMG 的构建方式不变。

验证

  • npm run check:ESLint、45 个前端单测、仓库/版本检查、cargo fmt、
    clippy -D warnings、75 个 Rust 测试(Windows 74:73 通过 + 1 ignored;
    Linux/macOS 75:74 通过 + 1 ignored,额外 1 个 Unix 路径测试)、Vite build。
  • npm run selftest:真实 WebView 渲染 10 篇示例,逐篇导出 HTML/PNG/PDF,
    report.ok: true;check-selftest-report --require-html --require-data 通过。
  • 浏览器 mock 复核格式徽标、新建菜单、编码状态、表格对齐/列宽/配色、JSON 浅色
    深色、HTML 导出 charset 和数据导出。
  • 额外用 300 行长 CSV 验证矢量 PDF 分页(13 页)与智能列宽(临时夹具不进入仓库)。

下载

平台 文件
Windows rustmd-1.10.0-win-x64-portable.zip
Linux rustmd_1.10.0_amd64.deb / rustmd_1.10.0_amd64.AppImage
macOS rustmd-1.10.0-macos-arm64.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证:
首次启动会被 Gatekeeper 拦截,请在系统设置 → 隐私与安全性中选择“仍要打开”,
或执行 xattr -dr com.apple.quarantine /Applications/rustmd.app。

请优先使用对应平台的 .sha256 / SHA256SUMS-linux.txt 校验;合并的
SHA256SUMS.txt 需要先把全部 Release 资产下载到同一目录再执行
sha256sum -c SHA256SUMS.txt。

rustmd v1.9.0

Choose a tag to compare

@github-actions github-actions released this 12 Nov 23:32

rustmd 1.9.0

这一版把“笔记库管理”和侧栏空间利用率一起升级:最近笔记库支持钉死/置顶(最多
20 个),可以同时打开多个置顶库并汇总浏览;侧栏的分区比例可调,默认把更大的
面积留给下方笔记列表。

新增

  • 最近笔记库 20 条 + 钉死/置顶:切换窗口按最近使用顺序最多列出 20 个目录。
    每个目录右侧的图钉可把笔记库钉死/置顶;置顶库固定显示在“置顶”分组最上方,
    不参与容量淘汰。当前目录标记、置顶状态和顺序都会持久化。
  • 多库同开:搜索框下方新增“多库”按钮。开启后同时加载所有置顶库和当前库:
    笔记列表汇总展示,每条笔记带所属库徽标;文件夹树按库分组,各库的子目录独立
    选择。打开、保存、重命名、移动、删除和导出都会使用笔记所属的库目录。
  • 库根与子目录折叠:多库视图中的库根节点和各级子目录都可以折叠/展开;
    库根折叠状态存 rustmd-collapsed-vaults,子目录展开状态沿用
    rustmd-expanded-folders。
  • 可调侧栏比例:侧栏默认 320px,文件夹/标签区按内容自适应,笔记列表占满
    剩余高度;两者之间新增可拖动分隔条。拖动可随时调整,双击/Enter 恢复默认,
    高度存 rustmd-nav-height;分隔条也支持键盘方向键 / Home / End 调整。

变更

  • 侧栏顶栏、搜索区、标签区与笔记条目的间距整体收紧,默认可见笔记数明显增加。
  • 浏览器 mock 支持按目录隔离的示例库(D:\Notes、D:\Knowledge、
    D:\Writing),便于在浏览器模式验证置顶与多库聚合。
  • README 中英文、AGENTS、架构/测试/安全/发布/审计文档同步更新;README 截图
    按 320px 侧栏重新生成,并新增多库同开截图。
  • Windows 绿色 zip、Linux deb/AppImage、macOS Apple Silicon DMG 的构建与签名
    方式不变。

数据与兼容

  • rustmd-recent-dirs 从纯字符串数组自动升级为 { dir, pinned } 对象数组;
    旧数据无需手动迁移,首次读取时自动兼容。
  • 新增 rustmd-multi-vault、rustmd-collapsed-vaults、rustmd-nav-height
    三个本地偏好键;笔记文件、front matter、HTML 笔记和导出格式不变。
  • 新增 set_notes_roots IPC,用于把多个已打开库根注册给 rmd 本地图片协议和
    read_local_image。每个文件仍逐个根目录做 canonicalize + 前缀检查,不放松
    路径封闭;主窗口校验、CSP、HTML 隔离和导出边界不变。

验证

  • npm run check:ESLint、34 个前端单测、仓库/版本检查、cargo fmt、
    clippy -D warnings、64 个 Rust 测试(63 通过 + 1 个网络测试 ignored)、
    Vite build 全部通过。
  • npm run selftest:真实 WebView 渲染 6 篇示例(含 HTML),report.ok: true、
    0 errors;picsum 远程图不可达记为 1 条 warning(既有容错策略),
    --require-html 报告校验通过。
  • 浏览器 mock:置顶/取消置顶、20 条上限与置顶不淘汰、多库聚合列表、按库分组的
    文件夹树、跨库打开/编辑/保存、库根与子目录折叠、侧栏分隔条拖动/双击重置。

下载

平台 文件
Windows rustmd-1.9.0-win-x64-portable.zip
Linux rustmd_1.9.0_amd64.deb / rustmd_1.9.0_amd64.AppImage
macOS rustmd-1.9.0-macos-arm64.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证:
首次启动会被 Gatekeeper 拦截,请在系统设置 → 隐私与安全性中选择“仍要打开”,
或执行 xattr -dr com.apple.quarantine /Applications/rustmd.app。

请优先使用对应平台的 .sha256 / SHA256SUMS-linux.txt 校验;合并的
SHA256SUMS.txt 需要先把全部 Release 资产下载到同一目录再执行
sha256sum -c SHA256SUMS.txt。

rustmd v1.8.1

Choose a tag to compare

@github-actions github-actions released this 12 Nov 14:18

rustmd 1.8.1

这一版是发布目标补丁:macOS 只面向 Apple Silicon(arm64),不再构建
universal DMG,也不支持 Intel Mac。应用功能与 1.8.0 相同。

变更

  • macOS 仅 Apple Silicon:CI 与 release workflow 改为
    aarch64-apple-darwin,移除 x86_64 / universal 构建。
  • 资产改名:macOS 下载文件为 rustmd-1.8.1-macos-arm64.dmg。
  • 文档同步:README、AGENTS、RELEASING、TESTING 和审计报告明确标注
    Apple Silicon 要求;Windows / Linux 资产与使用方式不变。
  • 应用代码与 1.8.0 相同,当前文件夹范围、范围搜索、文件夹计数与标签云行为不变。

验证

  • npm run check 全部通过:28 个前端单测、59 个 Rust 测试(58 通过 +
    1 个网络测试 ignored)、ESLint、仓库/版本检查和 Vite build。
  • GitHub release workflow 在 macOS runner 上安装 aarch64-apple-darwin
    并构建、ad-hoc 签名 arm64 .app;1.8.0 的真实 WebView selftest
    (6 篇示例、0 errors、1 条 picsum warning)仍适用于本版应用代码。

下载

平台 文件
Windows rustmd-1.8.1-win-x64-portable.zip
Linux rustmd_1.8.1_amd64.deb / rustmd_1.8.1_amd64.AppImage
macOS rustmd-1.8.1-macos-arm64.dmg(Apple Silicon only)

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证,
且仅支持 Apple Silicon(M 系列);首次启动会被 Gatekeeper 拦截,请在系统设置 →
隐私与安全性中选择“仍要打开”,或执行
xattr -dr com.apple.quarantine /Applications/rustmd.app。

请优先使用对应平台的 .sha256 / SHA256SUMS-linux.txt 校验;合并的
SHA256SUMS.txt 需要先把全部 Release 资产下载到同一目录再执行
sha256sum -c SHA256SUMS.txt。

rustmd v1.8.0

Choose a tag to compare

@github-actions github-actions released this 12 Nov 13:52

rustmd 1.8.0

这一版把“默认只看当前文件夹”做成明确、可持久化的范围开关:打开笔记库或切换
文件夹时,列表和搜索先停留在当前目录,不再自动钻进所有子文件夹;需要时再一键
展开到整个子树。

新增

  • 当前文件夹范围:笔记列表、全文搜索、文件夹计数和标签云默认只覆盖当前
    文件夹的直属笔记。刚打开或刚切换笔记库时,当前文件夹就是库根目录。
  • “包含子文件夹”开关:位于搜索框下方。打开后,列表与搜索递归覆盖当前
    目录的整个子树;文件夹计数同步从“直属笔记数”切换为“子树笔记数”。
  • 范围搜索:search_notes 在后端直接按当前目录扫描,不递归时只读取该目录
    顶层文件,不会先全库扫描再由前端过滤;搜索范围与列表范围始终一致。
  • 标签云随范围变化:只统计当前范围内的标签;切换目录/范围后,如果活动标签
    已不在范围内会自动清除,不会留下看不见的空过滤。
  • 空状态提示:当前目录没有直属笔记、但子文件夹里有笔记时,列表会提示打开
    “包含子文件夹”,避免误以为笔记库是空的。
  • 设置持久化:开关状态保存在 localStorage.rustmd-include-subfolders,
    重启应用后保持;切换笔记库时当前目录回到库根目录,但开关偏好保留。

变更

  • 版本号提升到 1.8.0。
  • 范围逻辑抽到 notelist.js 的 folderInScope / countTags 纯函数,前端单测、
    浏览器 mock 与 Rust 搜索实现保持同一套语义。
  • README 中英文版、AGENTS、架构/测试/安全/发布/审计文档同步更新;README 截图
    重新生成,侧栏可见新的“包含子文件夹”开关。
  • Windows 绿色 zip、Linux deb/AppImage、macOS universal DMG 的构建与签名方式不变。

验证

  • npm run check:ESLint、28 个前端单测、仓库/版本检查、cargo fmt、
    clippy -D warnings、59 个 Rust 测试(58 通过 + 1 个网络测试 ignored)、
    Vite build 全部通过。
  • 浏览器 mock:默认范围只显示根目录 2 篇;根目录搜索不返回子目录命中;打开开关
    后 7 篇全部出现、子目录搜索命中;关闭后 work 只显示 3 篇直属笔记;刷新后
    开关状态保持。
  • npm run selftest:真实 WebView 中渲染 6 篇示例(含 HTML)并完成 PNG/PDF
    导出,报告为 ok: true、0 errors;picsum 远程图不可达记为 1 条 warning
    (既有容错策略,不阻塞发布),--require-html 报告校验通过。

下载

平台 文件
Windows rustmd-1.8.0-win-x64-portable.zip
Linux rustmd_1.8.0_amd64.deb / rustmd_1.8.0_amd64.AppImage
macOS rustmd-1.8.0-macos-universal.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证:
首次启动会被 Gatekeeper 拦截,请在系统设置 → 隐私与安全性中选择“仍要打开”,
或执行 xattr -dr com.apple.quarantine /Applications/rustmd.app。

请优先使用对应平台的 .sha256 / SHA256SUMS-linux.txt 校验;合并的
SHA256SUMS.txt 需要先把全部 Release 资产下载到同一目录再执行
sha256sum -c SHA256SUMS.txt。

rustmd v1.7.0

Choose a tag to compare

@github-actions github-actions released this 12 Nov 12:49

rustmd 1.7.0

这一版新增最近笔记库快速切换:在多个笔记库之间来回切换时,不必每次都从
盘符和文件夹树里重新找路径。

新增

  • 最近笔记库列表:侧栏“切换笔记目录”按钮直接弹出最近打开的目录,当前
    笔记库带“当前”标记;点一下即可切换,非当前项可用 × 移除。列表按最近
    使用排序,最多 8 个,重启应用后仍在。
  • 键盘与关闭行为:Esc 或点击弹层外部关闭;按 Esc 关闭时焦点回到切换按钮。
  • 引导页一键进入:首次启动或上次目录不可用时,目录选择页也显示最近目录,
    点击即打开,不用重新浏览系统目录树。
  • 浏览从当前目录开始:弹层里的“浏览其他目录…”会把当前笔记库作为原生
    目录对话框的初始位置;选中后直接打开。
  • Windows 路径去重:忽略大小写与 /、\ 差异,同一目录不会在列表里
    出现两次。
  • 切换前仍会先保存未保存内容;保存失败照旧弹出确认,不会静默丢修改。

变更

  • 最近目录只保存在本机 localStorage.rustmd-recent-dirs,不上传、不写入
    笔记库,也不改变笔记文件格式。
  • 纯前端改动(main.js / vaultlist.js / api.js / style.css / i18n /
    index.html):不新增 IPC,不改变 Rust 命令、权限、CSP、路径封闭和 HTML
    隔离边界。
  • README 中英文版、AGENTS、架构/测试/发布/安全/审计文档同步更新,并新增
    中英文“最近笔记库切换”截图。
  • Windows 绿色 zip 随附 README/CHANGELOG/docs/(含截图)与 SECURITY,
    解压后离线查看 README 时截图与文档链接可用。

验证

  • npm run check:ESLint、26 个前端单测、仓库/版本检查、cargo fmt、
    clippy -D warnings、58 个 Rust 测试、Vite build 全部通过。
  • npm run selftest:6 篇示例(含 HTML)通过;Markdown/HTML PDF 仍为矢量
    文字,HTML iframe、本地资源内联和远程图片警告路径保持覆盖(本次 picsum
    远程图不可达,按既有策略记为 warning,不阻塞发布)。
  • 浏览器 mock 交互检查:切换、MRU 更新、移除、ESC/焦点、中英文文案和
    900×560 最小窗口布局全部通过。
  • GitHub Actions release workflow 会再次运行 npm run check + Linux Xvfb E2E
    • release-notes preflight,再构建三端资产。

下载

平台 文件
Windows rustmd-1.7.0-win-x64-portable.zip
Linux rustmd_1.7.0_amd64.deb / rustmd_1.7.0_amd64.AppImage
macOS rustmd-1.7.0-macos-universal.dmg

Windows 为自签名(SmartScreen 仍提示未知发布者)。macOS 为 ad-hoc 签名、未公证:
首次启动会被 Gatekeeper 拦截,请在系统设置 → 隐私与安全性中选择“仍要打开”,
或执行 xattr -dr com.apple.quarantine /Applications/rustmd.app。

请优先使用对应平台的 .sha256 / SHA256SUMS-linux.txt 校验;合并的
SHA256SUMS.txt 需要先把全部 Release 资产下载到同一目录再执行
sha256sum -c SHA256SUMS.txt。