Skip to content

Releases: TonyMistark/wtmd

v0.15.23 — 移除工具栏的保存按钮

Choose a tag to compare

@TonyMistark TonyMistark released this 23 Oct 11:38
b1c8098

工具栏上导出与设置之间那颗「向下箭头进盒子」的按钮移除了——它其实是保存,但有自动保存和 ⌘S,没人会去点;图标还老被误认成「导入」。

⌘S 菜单项、命令面板里的保存命令、自动保存全部保留不变。

909 项单元测试。0.15.8+ 点应用内徽标即可一键更新。

v0.15.22 — 检查更新双源:GitHub + Gitee

Choose a tag to compare

@TonyMistark TonyMistark released this 23 Oct 10:43
5d37601

检查更新现在同时查 GitHub 与 Gitee 两个发布源,取版本更高者;单源失败自动回退。有新版时点徽标一键更新(GitHub),长按徽标(或设置 › 应用 › 「换个下载源…」)可选从 Gitee 下载——国内网络更快。

发布流程不变(全在 GitHub);每次发布后自动同步一份 release 到 Gitee(gitee.com/Micestark/wtmd),GitHub 抽风时多一条路。

909 项单元测试。0.15.8+ 点应用内徽标即可一键更新。

v0.15.21 — 点 Dock 图标,回来的是原来那扇窗

Choose a tag to compare

@TonyMistark TonyMistark released this 23 Oct 08:42
d65b9d3

把主窗缩进 Dock 再点 Dock 图标,不再开一扇新的默认页面——回到原来那扇窗(按顺序第一扇);一扇窗都没有时才开新空白页。

根因:「全缩着时交给系统」在 SwiftUI WindowGroup 应用里换来的是新开一扇窗(不是神灯动画);挑窗函数只认 isVisible,而缩着的窗它返回 false。

改动:reopen 一律自己举,缩着的自己 deminiaturize;移除交给系统的捷径与 0.5s 兜底。代价是从 Dock 放出窗口没有神灯动画——用正确性换。

902 项单元测试。未装过 wtmd 或从 0.15.7 及更早升级的用户请手动下载 dmg;0.15.8+ 点应用内徽标即可一键更新。

v0.15.20 — 编辑器跟随主题

Choose a tag to compare

@TonyMistark TonyMistark released this 23 Oct 08:16
d4ee3ed

编辑器跟随主题

此前主题 CSS 只喂预览的 WebView,写作区(NSTextView)钉死在系统语义色与系统等宽字体——切纸墨只有预览换肤,写作区纹丝不动。

现在编辑器也从主题变量层取底色(--bg)、文字颜色(--fg)和等宽字族(--font-mono):

  • 预览与写作区一起换装,split 模式两半一致;
  • 明暗两套变量按系统外观自动切换(终端这类只有暗色变体的主题在浅色下沿用深底,与预览一致);
  • 换主题即时换装,不用重启;
  • 字族没装(或写错)自动回落系统等宽,能写字永远优先;
  • 语法高亮的令牌色(代码紫、引用绿等)继续用系统语义色,任何主题底色上都可读。

完整变更:#214 · 测试 893 → 902

v0.15.19 — 文件地址看得见、Finder 一步到

Choose a tag to compare

@TonyMistark TonyMistark released this 23 Oct 07:33
a9a5180

打开一篇 .md 之后,这个文件存在哪里、怎么去 Finder 找它,现在有三条路:

状态栏文件名活了

右下角的文件名不再是死文本:

  • 悬停:tooltip 显示完整路径(~/… 缩写);
  • 点击:Finder 打开所在文件夹并选中该文件(不是只开个文件夹自己)。

File 菜单两条新命令

  • 在 Finder 中显示(⇧⌘R):Finder 亮出并选中当前文件;
  • 复制文件路径:复制机器认的完整 POSIX 路径(不是 ~ 缩写),终端、脚本直接可用。

两条都进了 ⌘K 命令面板(搜「Finder」「路径」「folder」「path」都到得了),快捷键也能在设置里改派。

草稿的边界

没落盘的草稿没有路径:两条命令灰掉、状态栏仍显示「草稿」,不给假动作。


其他:测试 891 → 893。

v0.15.18 — Finder「打开方式」里终于有 wtmd

Choose a tag to compare

@TonyMistark TonyMistark released this 23 Oct 02:51
540f8c9

v0.15.18 — Finder 认得出 wtmd 了

改 #208:对着 .md 右键 › 打开方式,列表里以前没有 wtmd。原因是两件事都缺——Info.plist 没声明文档类型(LaunchServices 不知道它能开 .md),AppDelegate 也没有 application(_:open:)(就算列进去,系统把文件送来也只会激活一个空窗)。

现在两半都补上了:

  • 注册:CFBundleDocumentTypes(Editor,LSHandlerRank = Alternate)+ 自声明的 cn.wtmd.markdown(conforms public.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 — 界面语言默认中文

Choose a tag to compare

@TonyMistark TonyMistark released this 22 Oct 13:58
9392d36

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 — 改派的 ⌥ 组合键不再打进 ß

Choose a tag to compare

@TonyMistark TonyMistark released this 22 Oct 11:30
1006bc7

v0.15.16 — 改派的 ⌥ 组合键不再「第一次有效,之后打进 ß」

修 #201:改派成 ⌥S 的快捷键第一次按有效,之后每次都往正文里输入 ß。真机探针实证:编辑器聚焦时,Option-only 的 key equivalent 到不了菜单——AppKit 拿产出字符「ß」去比「s」,事件落进文本视图直接 insertText。

现在启动时装一个本地事件监视器,在派发之前接住改派过的 ⌥ 组合:命中即执行命令并吞掉事件;⌘/⌃ 系组合与出厂没改派的 ⌥(正常打 ß 等特殊字符)一个都不碰。菜单上的 ⌥S 显示照旧。

测试 882 项全绿(新增 ShortcutKeyInterceptorTests 8 条守卫)。

升级:0.15.15 可点状态栏更新徽标直接升;更早版本请手动安装本 dmg。

v0.15.15 — 翻译框架:语言成为数据

Choose a tag to compare

@TonyMistark TonyMistark released this 22 Oct 11:01
312e9c7

v0.15.15 — 翻译框架:语言成为数据

#198:界面文案从 t("English", "中文") 双参函数迁移到键值翻译框架——英文原文即键、翻译表按语言一个文件、插值走 {} 模板。今后新增语言 = 一个语言 case + 一份翻译文本,调用点零改动;覆盖测试扫源码兜底,漏翻当场红。

新增:设置 › 应用 › 界面语言(跟随系统 / English / 简体中文;菜单文案随启动构建,切换后下次启动完整生效)。

测试 874 项全绿(新增 L10nTests 重写 + L10nCoverageTests 覆盖守卫)。

升级:0.15.14 可点状态栏更新徽标直接升;更早版本请手动安装本 dmg。

v0.15.14 — 更新装完,人自己回来

Choose a tag to compare

@TonyMistark TonyMistark released this 22 Oct 09:45
2b1b8cc

v0.15.14 — 更新装完,人自己回来

修 #195:一键更新检查、下载、安装都成功,应用按要求退出后再也没打开。

根因:新版本装在同一个路径、同一个 bundle id 上,NSWorkspace.openApplication 只会去激活「正在退场的自己」(探针回调里拿到的 pid 就是自己),新进程一个都没起。现在改成派生一个不 wait 的 shell:等旧进程真退干净,再由它 open -n 新版;15 秒上限 + -n 兜底卡着不退的情况,路径带空格也稳。

⚠️ 从 0.15.13 升到本版这一次,重启仍由旧代码执行,所以退出后可能还要手动打开一次;从 0.15.14 起,之后每次更新都会自己回来。

测试 868 项全绿(新增 UpdateRelaunchTests 守卫)。