Plainva 0.8.6:回来的勾选
0.8.6 是一个专注于“本该好好工作的事”的版本:我在外面勾掉的任务会回到它的笔记里,链接可以按你喜欢的样子显示,测试中收到的一长串心愿也已加入。顺带,我还补上了同步中的一个漏洞,我宁愿它从未存在过——详情见下文。
回来的勾选
我常常在外面用 Google Tasks 把任务勾掉。从 Plainva 到 Google 的方向没问题,反方向有时却不行,笔记因此一直保持未完成。现在每个任务列表都会单独获取,出错时会在任务视图上方显示,而笔记无法接收的勾选或日期,也不再被悄悄当作已同步。这对 Google、Microsoft 和 CalDAV 都适用。此外,保存的日程会一直留在屏幕上,而不是先消失一下再回来(#119);在手机上,显示任务会在每个日历视图中显示到期的任务。
在手机的今天标签页中,来自普通笔记的到期任务(- [ ] … 📅 YYYY-MM-DD)现在会列在到期之下。
你们提出的心愿
TestFlight 和 #135 带来了一批心愿,其中大部分现在都已实现。有位测试者希望 Wiki 链接用淡淡的底色代替下划线。也有人喜欢反过来——所以现在你可以在设置 → 应用 → 外观中选择指向笔记的链接的外观(下划线、底色、仅颜色或低调),以及指向网页的链接的外观(下划线或仅颜色)。默认仍是下划线,和以前一样。每个日历都可以按需显示周数——在每个日期选择器的底部开启。在手机上,全天行在滚动时保持不动,任务复选框大到手指能点中,新任务的日期则在应用自己的日历里选择。新笔记总是以可书写的状态打开。在桌面端,窗口会带着原来的大小和位置回来,新笔记也可以按需在新标签页中打开(在新标签页中打开新笔记)。
文件名较短的标签页不再留有空白。
碍事的小问题
点击一个已打开的表格单元格,会放置光标,而不是让全部文字保持选中(#118)。在 Mac 上,拼写检查又能标出单词了:它所需要的系统设置从未被打开过。在我自己的项目概览里,过长的文件名会挤进相邻的磁贴;现在它会以“…”结尾。从大纲跳转时,标题会显示在顶部,菜单也可以立即用方向键操作。
链接、属性、模板
现在,Markdown 链接在各处都指向同一个地方——编辑器、阅读模式、表格、手机上、关系图,以及重命名时。以前几乎每个界面都有自己的规则,编辑器甚至会多建一条笔记。名称中带有下划线或星号的 Wiki 链接,现在也算作链接。
笔记的属性是逐个字段读取的。空的 tags:,或在应该是文本的地方出现日期,以前会让这条笔记的所有属性都看不见。这也意味着:数据库、筛选和标签树现在会显示以前缺失的笔记;在加密工作区中,按标签或属性划分的切片规则也会匹配这样的笔记——它们会在下一次同步后对该切片的成员可见。
模板有两个老问题:由模板创建的笔记会继承 plainva.tasks: false,它的任务因此不出现在任务视图中;另外,视路径而定,每周起始日、剪贴板或 {{daily}} 不会被带入。这两个问题都已修复。
构造不同的文件
不是 UTF-8 的文本文件,现在会显示为此文件不是文本,并且绝不会被当作文本覆盖。在 iPhone 上,文件会保留它的字节顺序标记。来自经典 Mac 的文件会按行读取,第一次更改时会转换换行符,并明确告诉你。而单个无法读取的文件,也不再让索引瘫痪(#125)。
两台设备同时上传时
现在说说我一开始提到的那个漏洞:当两台设备几乎在同一时刻上传同一条笔记时,其中一台的更改会被覆盖,而且没有任何冲突提示。现在每次上传都会声明,它预期服务器上是哪个版本。对于 WebDAV、S3、OneDrive 和 Dropbox,如果期间有另一台设备上传过,服务器会拒绝写入。这时什么都不会写入,下一次同步会合并两个版本,或者把你的版本作为冲突副本放在旁边。Google Drive 和以前一样,在上传之前先检查。
顺手还解决了两件事。当一条笔记存在未解决的冲突、而另一台设备又一次与之相左时,只剩下草稿——笔记自己的文字丢了。现在它会作为又一份冲突副本保留下来。还有那条关于“被保留、但已在云端删除的文件”的提示,在我这里每次同步都会再次出现,现在它只出现一次,并且带上文件名:这样的文件会重新上传,而不是只留在一台设备上。
请更新所有使用同一个仓库的设备。 检查是在上传的那台设备上进行的;运行旧版本的设备仍然可能覆盖中间发生的更改。
邮件
在所有收件箱中,来自另一个邮箱的邮件会保持打开,而不是一眨眼又消失。在手机上,结构特殊的 base64 邮件又能打开了,附件也一并带上。
致谢
这个版本包含四份反馈——#118、#119、#125 和 #135——还有来自 TestFlight 的一大批意见。谢谢你们。加密工作区、设备日历、语音备忘和地点标记仍是实验性功能。
Plainva 0.8.6 现已可用于桌面、Android 和 iOS TestFlight。在 iOS 上,原生版本号仍为 1.0,新的交付版本由构建号区分。请更新使用同一资料库的每台设备,以便共同使用这些改进。
iOS TestFlight: 1.0 (139).