终于,自定义 Capture 功能的开发和测工作完成了!这个过程不但有一些技术挑战,而且有着很大的工作量,有非常多的使用场景需要支持,单是测试工作就用了将近两周。
至此,Metanote 对 Org mode 的核心功能的支持更加完备,包括基本的文档结构,自定义任务管理,自定义 Tag 等 InBufferSettings, 自定义 Agenda view,自定义 Capture 等等,我想 Metanote 应该是在 Emacs 之外对 Org mode 支持最完整的应用了。在后面的开发工作中我们将逐渐支持富文本渲染,包括图片,表格,超链接等,以及加密,导出,Roam Research 等功能,敬请期待。
自定义 capture template 的详细使用参见 Metanote-文档,日程,待办 - 自定义 Capture 功能
不知道有多少人了解和使用过这些自定义设置,但 Metanote 尽可能支持 org mode custom capture template 的所有设置项,详细的支持情况如下:
template type
- [X] entry 支持
- [X] item 支持
- [X] checkitem 支持,使用 item 实现
- [X] plain 支持
- [ ] table-line 暂不支持,稍后集中处理表格时统一支持
target
- [X] file 支持
- [ ] id 暂不支持,稍后实现 org-roam 时统一支持
- [X] file+headline 支持
- [X] file+olp 支持
- [ ] file+regexp 暂不支持,未测试出 org mode 此 target 的功能逻辑,在不同的 template type 下表现都不一至
- [X] file+olp+datetree 支持
- [ ] file+function 暂不支持,由于 Metanote 尚未支持 elisp,因此暂时无法支持 function
- [ ] function 暂不支持,同上,但做为补尝,在 Metanote 中支持自定义文件名,选择好目录后可以使用与 template 内容相同的语法定义文件名,这样就允许 capture 时动态的选择或创建不同的文件
- [ ] clock 暂不支持,稍后集中处理 clock 相关功能时统一支持
properties
- [X] :prepend 支持
- [X] :immediate-finish 支持
- [X] :empty-line-before 支持
- [X] :empty-line-after 支持
- [ ] :clock-in 暂不支持,集中实现 clock 相关功能统一支持
- [ ] :clock-keep 暂不支持,集中实现 clock 相关功能统一支持
- [ ] :clock-resume 暂不支持,集中实现 clock 相关功能统一支持
- [X] :time-prompt 支持
- [ ] :tree-type 支持
- [X] :unnarrowed 支持
- [ ] :table-line-pos 暂是支持,集中处理表格时统一支持
- [ ] :kill-buffer 不支持,Metanote 已自动实现此功能
- [ ] :no-save 不支持,Metanote 已自动实现此功能
template expansion
- [ ] %[FILE] 暂不支持
- [ ] %(EXP) 暂不支持
- [X] % 支持
- [X] %t 支持
- [X] %T 支持
- [X] %u, %U 支持
- [X] %i 支持
- [ ] %a 暂不支持
- [ ] %A 暂不支持
- [ ] %l 暂不支持
- [ ] %c 下一个版本支持
- [ ] %x 下一个版本支持
- [ ] %k 暂不支持
- [ ] %K 暂不支持
- [ ] %n 不支持,Metanote 中不存在 user name
- [X] %f 支持
- [X] %F 支持
- [ ] %:keyword 暂不支持
- [X] %^g 支持
- [X] %^G 支持
- [X] %^t, %^T, %^u, %^U 支持
- [ ] %^C 下一个版本支持
- [ ] %^L 下一个版本支持
- [X] %^{PROP}p 支持
- [X] %^{PROMPT} 支持
- [X] %N 支持
- [X] %? 支持