Repository navigation
Releases: TonyMistark/wtmd
Release list
v0.15.23 — 移除工具栏的保存按钮
工具栏上导出与设置之间那颗「向下箭头进盒子」的按钮移除了——它其实是保存,但有自动保存和 ⌘S,没人会去点;图标还老被误认成「导入」。
⌘S 菜单项、命令面板里的保存命令、自动保存全部保留不变。
909 项单元测试。0.15.8+ 点应用内徽标即可一键更新。
v0.15.22 — 检查更新双源:GitHub + Gitee
检查更新现在同时查 GitHub 与 Gitee 两个发布源,取版本更高者;单源失败自动回退。有新版时点徽标一键更新(GitHub),长按徽标(或设置 › 应用 › 「换个下载源…」)可选从 Gitee 下载——国内网络更快。
发布流程不变(全在 GitHub);每次发布后自动同步一份 release 到 Gitee(gitee.com/Micestark/wtmd),GitHub 抽风时多一条路。
909 项单元测试。0.15.8+ 点应用内徽标即可一键更新。
v0.15.21 — 点 Dock 图标,回来的是原来那扇窗
把主窗缩进 Dock 再点 Dock 图标,不再开一扇新的默认页面——回到原来那扇窗(按顺序第一扇);一扇窗都没有时才开新空白页。
根因:「全缩着时交给系统」在 SwiftUI WindowGroup 应用里换来的是新开一扇窗(不是神灯动画);挑窗函数只认 isVisible,而缩着的窗它返回 false。
改动:reopen 一律自己举,缩着的自己 deminiaturize;移除交给系统的捷径与 0.5s 兜底。代价是从 Dock 放出窗口没有神灯动画——用正确性换。
902 项单元测试。未装过 wtmd 或从 0.15.7 及更早升级的用户请手动下载 dmg;0.15.8+ 点应用内徽标即可一键更新。
v0.15.20 — 编辑器跟随主题
编辑器跟随主题
此前主题 CSS 只喂预览的 WebView,写作区(NSTextView)钉死在系统语义色与系统等宽字体——切纸墨只有预览换肤,写作区纹丝不动。
现在编辑器也从主题变量层取底色(--bg)、文字颜色(--fg)和等宽字族(--font-mono):
- 预览与写作区一起换装,split 模式两半一致;
- 明暗两套变量按系统外观自动切换(终端这类只有暗色变体的主题在浅色下沿用深底,与预览一致);
- 换主题即时换装,不用重启;
- 字族没装(或写错)自动回落系统等宽,能写字永远优先;
- 语法高亮的令牌色(代码紫、引用绿等)继续用系统语义色,任何主题底色上都可读。
完整变更:#214 · 测试 893 → 902
v0.15.19 — 文件地址看得见、Finder 一步到
打开一篇 .md 之后,这个文件存在哪里、怎么去 Finder 找它,现在有三条路:
状态栏文件名活了
右下角的文件名不再是死文本:
- 悬停:tooltip 显示完整路径(
~/…缩写); - 点击:Finder 打开所在文件夹并选中该文件(不是只开个文件夹自己)。
File 菜单两条新命令
- 在 Finder 中显示(⇧⌘R):Finder 亮出并选中当前文件;
- 复制文件路径:复制机器认的完整 POSIX 路径(不是
~缩写),终端、脚本直接可用。
两条都进了 ⌘K 命令面板(搜「Finder」「路径」「folder」「path」都到得了),快捷键也能在设置里改派。
草稿的边界
没落盘的草稿没有路径:两条命令灰掉、状态栏仍显示「草稿」,不给假动作。
其他:测试 891 → 893。
v0.15.18 — Finder「打开方式」里终于有 wtmd
v0.15.18 — Finder 认得出 wtmd 了
改 #208:对着 .md 右键 › 打开方式,列表里以前没有 wtmd。原因是两件事都缺——Info.plist 没声明文档类型(LaunchServices 不知道它能开 .md),AppDelegate 也没有 application(_:open:)(就算列进去,系统把文件送来也只会激活一个空窗)。
现在两半都补上了:
- 注册:
CFBundleDocumentTypes(Editor,LSHandlerRank = Alternate)+ 自声明的cn.wtmd.markdown(conformspublic.plain-text,认.md/.markdown/.mdown/.mkd); - 接住:
application(_:open:)把文件交给OpenRequest,由它决定落在哪扇窗。
文件落在哪扇窗:
| 情况 | 结果 |
|---|---|
| 这篇在别的窗开着 | 把那扇窗带到前面,不再开第二份 |
| 前台窗就是这篇 | 什么都不做 |
| 前台窗还是欢迎页 | 装进当前窗 |
| 前台窗正在写别的 | 另开一扇,不顶掉手上的稿子 |
| 多选打开 | 第一篇用空窗,其余各开一扇 |
LSHandlerRank 是 Alternate:wtmd 出现在菜单里,但不抢别人已经认领的默认程序。想让它当 .md 的默认打开方式:右键文件 › 显示简介 › 打开方式 › 选 wtmd › 全部更改。
如果装好后「打开方式」里暂时还没有 wtmd:LaunchServices 的候选只认常规位置(/Applications、~/Applications)。把 wtmd 放进「应用程序」后跑一次
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f /Applications/wtmd.app
或者重启 Finder 即可。验证方法:NSWorkspace.shared.urlsForApplications(toOpen:) 就是那个菜单用的 API。
测试 891 项全绿(新增 OpenRequestTests 6 条 + DocumentStore.isUntouched 1 条)。
升级:0.15.14 及之后的版本可点更新徽标直接升(装完自动重启);更早版本请手动安装本 dmg。
v0.15.17 — 界面语言默认中文
v0.15.17 — 界面语言默认中文
改 #204:界面语言的出厂值从「跟随系统」改成简体中文。
之前的逻辑是:没在设置里选过语言 → 按系统语言走。系统是英文的机器(或 AppleLanguages 被改过的环境)第一次打开 wtmd,看到的是英文——可这套文案本来就是按中文写的。默认值该是产品决定,不该交给系统去猜。
现在:
- 从没选过语言 → 中文,系统是英文也一样;
- 设置里选过 English / 简体中文 → 听你的;
- 设置里选「跟随系统」 → 跟系统,这个选项保留且仍然有效;
- 存储里出现不认识的脏值(旧版本遗留、手改 plist)→ 退回中文,不因为一个脏值把界面锁死。
设置 › 应用 › 界面语言的默认选中项同步显示「简体中文」,与实际生效值一致(默认值只有 L10n.defaultLanguage 一处定义,设置页直接引用它)。
顺手把语言解析收成一个纯函数 resolve(preference:systemLanguage:),并删掉原来那套「嗅探 XCTestCase / swiftpm-testing-helper 把测试进程钉成中文」的特判——默认值本身就是中文,测试不再需要特判,也不随 CI 机器的 locale 漂。
测试 884 项全绿(新增 2 条:五种偏好组合、系统语言检测接线;反向验证时把默认值改成英文,9 条断言当场变红)。
升级:0.15.14 及之后的版本可点更新徽标直接升(装完会自动重启);更早版本请手动安装本 dmg。
v0.15.16 — 改派的 ⌥ 组合键不再打进 ß
v0.15.16 — 改派的 ⌥ 组合键不再「第一次有效,之后打进 ß」
修 #201:改派成 ⌥S 的快捷键第一次按有效,之后每次都往正文里输入 ß。真机探针实证:编辑器聚焦时,Option-only 的 key equivalent 到不了菜单——AppKit 拿产出字符「ß」去比「s」,事件落进文本视图直接 insertText。
现在启动时装一个本地事件监视器,在派发之前接住改派过的 ⌥ 组合:命中即执行命令并吞掉事件;⌘/⌃ 系组合与出厂没改派的 ⌥(正常打 ß 等特殊字符)一个都不碰。菜单上的 ⌥S 显示照旧。
测试 882 项全绿(新增 ShortcutKeyInterceptorTests 8 条守卫)。
升级:0.15.15 可点状态栏更新徽标直接升;更早版本请手动安装本 dmg。
v0.15.15 — 翻译框架:语言成为数据
v0.15.15 — 翻译框架:语言成为数据
#198:界面文案从 t("English", "中文") 双参函数迁移到键值翻译框架——英文原文即键、翻译表按语言一个文件、插值走 {} 模板。今后新增语言 = 一个语言 case + 一份翻译文本,调用点零改动;覆盖测试扫源码兜底,漏翻当场红。
新增:设置 › 应用 › 界面语言(跟随系统 / English / 简体中文;菜单文案随启动构建,切换后下次启动完整生效)。
测试 874 项全绿(新增 L10nTests 重写 + L10nCoverageTests 覆盖守卫)。
升级:0.15.14 可点状态栏更新徽标直接升;更早版本请手动安装本 dmg。
v0.15.14 — 更新装完,人自己回来
v0.15.14 — 更新装完,人自己回来
修 #195:一键更新检查、下载、安装都成功,应用按要求退出后再也没打开。
根因:新版本装在同一个路径、同一个 bundle id 上,NSWorkspace.openApplication 只会去激活「正在退场的自己」(探针回调里拿到的 pid 就是自己),新进程一个都没起。现在改成派生一个不 wait 的 shell:等旧进程真退干净,再由它 open -n 新版;15 秒上限 + -n 兜底卡着不退的情况,路径带空格也稳。
测试 868 项全绿(新增 UpdateRelaunchTests 守卫)。