Org-supertag 是一个增强 org-mode 标签功能的包。它让标签不仅能够为节点设置属性,还能够直接操作节点,还可以根据时间自动执行某些行为,从而提供更灵活的信息管理方式。
Org-supertag 具备高度自由和灵活性,和便利性,你通过它可以定制自己的行为,以实现更加复杂的功能,基本上它的空间是无限的。
Org-supertag 采用非侵入式设计,与 org-mode 原有的功能和谐共存,同时提供更多可能性。
- 增强的标签功能
- 为 org-headline 设置属性,可一次性添加多个 org-property,并批量填写对应的值
- 将常规的 org-headline 转变成可检索、可引用的 node
- 将一次完成多个操作的 behavior 添加到标签
- 方便的检索功能
- 一次性输入多个关键词进行检索(使用 AND 逻辑)
- 经过美化后的搜索结果页,除了显示标题外,还可显示标题下的内容
- 多种搜索结果导出方式,方便组织与整理
- 将搜索结果导出到另外一个文件
- 将搜索结果导出到新建的文件(位置,文件名由你设置)
- 将搜索结果直接导出到现在光标所在的位置
- 自动同步
- 自动同步转换为 Node 的 org-headline 的位置和变化,节约手动操作
- 提供了同步全部 Node 的手动命令
- 集成自动化操作的 Behavior 系统
- 行为系统让标签变得”智能”,可以在添加/删除标签时自动触发预设的动作(如改变样式、设置状态等)
- 一个标签可以触发多个动作,比如添加 @urgent 标签可以同时完成”变红色”、”设优先级”、”加截止日期”等操作
- 行为可以定时执行、组合使用、带参数,让你的 org-mode 工作流程更自动化、更高效
- 行为系统内置了行为库,你既可以使用预定义的常用行为,也可以创建自己的自定义行为。这种模块化设计使得行为可以在不同的 org 文件之间或用户之间轻松共享、重用和扩展
- 可自定义的 Behavior 命令
- 简明的配置语法
- 参数化配置
- 可将多个 Behavior 组合在一起
让你的 org-mode 标签成为强大的元数据控制器:
- 添加标签时一次性设置多个属性
- 批量填写属性值
- 对属性值进行类型验证
M-x org-supertag-tag-add-tag
M-x org-supertag-tag-set-field-and-value
- 自动创建节点,无需手动创建
- 在节点间建立引用关系
M-x org-supertag-node-add-reference
如果节点未能自动创建,你可以直接运行 M-x org-supertag-node-create
命令,将当前标题转换为节点。
让标签变得”智能”,可以:
- 在添加/删除标签时触发动作
- 将多个动作组合成工作流
- 设置定时执行的行为
- 自定义标签样式
M-x org-supertag-behavior-attach
M-x org-supertag-behavior-detach
高效查找和组织你的节点:
- 支持多个关键词组合搜索(AND 逻辑)
- 美观的搜索结果界面
- 预览标题下的内容
M-x org-supertag-query
多种方式组织搜索结果:
- 导出到已有文件
- 创建新文件保存结果
- 在当前位置插入
自动保持节点的组织:
- 追踪节点位置变化
- 自动更新引用关系
- 提供手动同步命令
如果有的节点需要同步,但未能自动同步,你可以直接运行 M-x org-supertag-sync-force-all
命令,将所有节点的信息同步到数据库。
M-x org-supertag-tag-add-tag
为当前标题添加标签,可同时设置属性。
M-x org-supertag-node-add-reference
添加对其他节点的引用。
M-x org-supertag-query
使用多个关键词搜索节点。
M-x org-supertag-behavior-attach
为标签附加自动化行为。
(use-package org-supertag
:straight (:host github :repo "yibie/org-supertag")
:after org
:config
(org-supertag-setup))
创建自定义行为,编辑 ~/.emacs.d/org-supertag/org-supertag-custom-behavior.el 文件:
以下是一个示例
;; 注册一个名为 "@urgent" 的行为
;; 参数说明:
;; - @urgent: 行为的名称,用于标识和引用这个行为
;; - :trigger: 触发条件,:on-add 表示添加标签时触发
;; - :list: 要执行的动作列表,每个动作都是一个命令字符串
;; - :style: 标签的显示样式,包含字体和前缀图标设置
(org-supertag-behavior-register "@urgent" <= 注册一个名为 "@urgent" 的行为
:trigger :on-add <= 添加标签时触发
:list '("@todo=TODO" <= 设置 TODO 状态
"@priority=A" <= 设置优先级为 A
"@deadline=today") <= 设置截止日期为今天
:style '(:face (:foreground "red" :weight bold) <= 设置标签显示为红色加粗
:prefix "🔥")) <= 在标签前显示火焰图标
更多示例请参考 DEMO.org。
更多用法请参考 Org‐supertag Advance Usage
- 2025-01-13 2.0.0 release
- 新增行为调度系统
- 新增行为模板变量
- 新增自动同步系统
- 以及诸多改进
详细见 CHANGELOG
- 2024-12-31 1.0.0 release
- feat behavior-system: 完整的行为系统实现,形成自动工作流
- 三层行为架构(基础/派生/组合)
- 完整的触发器系统
- 丰富的行为库函数ß
- 样式系统支持
- docs: 提供交互式演示文档 DEMO.org
- refactor: 核心重构
- 优化数据结构
- 改进错误处理
- 提升性能表现
- feat behavior-system: 完整的行为系统实现,形成自动工作流
- 2024-12-20 0.0.2 release
- fix org-supertag-remove: 修复移除标签不生效的问题
- fix org-supertag-tag-add-tag: 修复添加标签时,可添加重复标签到 org-headline 的问题
- feat org-supertag-tag-edit-preset: 编辑预设标签
- feat org-supertag-query-in-buffer: 在当前 buffer 中查询
- feat org-supertag-query-in-files: 在指定文件中查询,可以指定多个文件
- 2024-12-19 0.0.1 release
- ✅能够提供更多查询的范围,比如针对一个文件或多个文件的查询
- ✅初步实现一个命令系统,让标签自动触发命令,比如节点添加了名为 Task 的标签时,它会自动设置为 TODO,并自动设置优先级为 A,以及自动将节点的背景色改为黄色
- ✅实现一个任务调度系统,让多个节点组合起来,完成一系列的任务,比如自动设置晚上 9 点进行每日回顾,并自动将回顾结果插入到回顾节点中(实验性功能,未必会实现)
- 与 AI 结合,不同的标签关联不同的 Prompt,比如当节点被标记为 “任务” 时,自动触发 AI 命令,令该节点自动生成一个任务列表
- 像 Tana 那样,提供更多视图(实验性功能,未必会实现)
感谢 Tana 的启发,感谢 org-mode 和 Emacs 的强大。
我真诚希望你能喜欢这个包,并从中受益。
欢迎贡献!请查看我们的贡献指南。