0028 交互式笔记-Templater

有时候就是很程式化的东西,有时候我就想快速输入固定格式,当然内容有细节的变化。

QuickAdd 插件的类似用法有很多人介绍了,不过我觉得 QuickAdd 中 Capture 的一个重要优势在于无需打开笔记的添加。比如我在写这篇内容的时候,忽然想到一个工作任务,我就可以用 QuickAdd 快速在工作列表中添加任务,但完全没有离开当前笔记。

而如果是在当前笔记中快速添加一些内容,我更喜欢使用 Templater,模板嘛,本身就是做这个的。

现在假设我想给当前笔记在当前位置添加一个标记,就类似书签,格式是这个样子的:

]>+–| 08:00 |—>>> 早安,世界~

格式很简单,但是不可能每一次都自己输入。

基础模板

新建一个模板(md 文件),把上面内容放进去就行了,然后就可以用了。

插入后修改一下具体内容,比每次复制粘贴方便一点。聪明的你一定想到了,如果把时间和后面的描述都留空,修改起来还能方便点。

自动变量

如果时间就是当前,那就让程序帮我们写好吧,也很简单:

1
]>+--| **<% tp.date.now("HH:mm") %>** |--->>> 早安,世界~

我们只是把时间换成了:<% tp.date.now("HH:mm") %>,双引号里描述的是时间的格式,可以参考这里:https://momentjs.com/docs/#/displaying/

你只要和前面代码仔细对照一下就能理解了。

提示输入

后面的描述可能每一次都不相同,当然,插入模板之后再修改也没毛病,但如果格式比较复杂,可能修改起来也会麻烦。所以来个输入框吧:

1
]>+--| **<% tp.date.now("HH:mm") %>** |--->>> <% tp.system.prompt("请输入标注") %>

自己试一下吧,就是把描述位置换成了一个输入框。那现在你可以把输入框的代码放在你其他模板中了。

选择标签

为了便于筛选,这个标记中还可以加上标签,用在标记中的标签大概也就那么几种,每次输入,烦捏!那就做个选择菜单吧:

1
]>+--| **<% tp.date.now("HH:mm") %>** |--->>> #<% tp.system.suggester(["未完待续", "下次一定"], ["Next", "Todo"]) %>

后面两个方括号里两组内容是对应的,前一组用来显示在选择中,后一组是用来输出到代码中的。自己试一下就懂了。

结合一下?

1
]>+--| **<% tp.date.now("HH:mm") %>** |--->>> #<% tp.system.suggester(["未完待续", "下次一定"], ["Next", "Todo"]) %> <% tp.system.prompt("输入标注") %>

看起来蛮长的了,不过如果从前面读过来也不会觉得很复杂吧。这么写完全可以用,但是有点小问题,两个提示框一起显示了,要先输入文字,再选择标签,否则有问题。不过小瑕疵啦。

这个瑕疵可以解决,但既然能用,我们就不提升复杂度了。