为 Denote 添加 age 加密支持
2024-01-31
我喜欢用 Emacs 配合 Denote 记录各种各样的信息,这时数据安全就不得不纳入考虑范围了。因为我的电子笔记中记录了很多敏感数据,比如银行卡信息、家里各种电子设备的信息等等,用明文存储的话太缺乏安全感了。
Emacs 内置了对 gpg 加密的支持,可惜使用门槛太高,之前 EasyPG 还出了 bug ,有导致数据丢失的风险。最近 age 加密成了新的潮流,使用起来可比 gpg 方便多了。
得益于 Denote 灵活的扩展性以及详细的文档,为 Denote 添加 age 加密支持非常简单。当你执行 M-x denote-type
时会提示选择笔记的格式,默认支持 org, markdown 和纯文本,这些文件类型存储在 denote-file-types
这个变量中,你可以通过 M-x describe-variable
查看。
现在我想要让我的 org
文件以 .org.age
扩展名存储,这样在配置了 age.el 之后, Emacs 就能自动实现对相关文件的加密和解密。参考 denote-file-types
中 org
文件的写法,可以有如下代码:
(add-to-list 'denote-file-types
'(age
:extension ".org.age"
:date-function denote-date-org-timestamp
:front-matter denote-org-front-matter
:title-key-regexp "^#\\+title\\s-*:"
:title-value-function identity
:title-value-reverse-function denote-trim-whitespace
:keywords-key-regexp "^#\\+filetags\\s-*:"
:keywords-value-function denote-format-keywords-for-org-front-matter
:keywords-value-reverse-function denote-extract-keywords-from-front-matter
:link denote-org-link-format
:link-in-context-regexp denote-org-link-in-context-regexp))
这样如果今后我想要创建加密笔记,只要执行 M-x denote-type
并选择 age
类型就可以了。如果不喜欢 org 格式,你也可以参考这个方法配置 .md.age
或者 .txt.age
。
需要解决的问题
- 如果使用了加密笔记,那么
consult-notes
的效率就会变得很低