Skip to content

Latest commit

 

History

History
219 lines (161 loc) · 7.81 KB

README_CN.org

File metadata and controls

219 lines (161 loc) · 7.81 KB

English Version

简介

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 标签成为强大的元数据控制器:

添加标签/设置属性

  • 添加标签时一次性设置多个属性
  • 批量填写属性值
  • 对属性值进行类型验证

./picture/figure4.gif

M-x org-supertag-tag-add-tag M-x org-supertag-tag-set-field-and-value

节点系统

  • 自动创建节点,无需手动创建
  • 在节点间建立引用关系

./picture/figure5.gif

M-x org-supertag-node-add-reference

如果节点未能自动创建,你可以直接运行 M-x org-supertag-node-create 命令,将当前标题转换为节点。

行为系统

让标签变得”智能”,可以:

  • 在添加/删除标签时触发动作
  • 将多个动作组合成工作流
  • 设置定时执行的行为
  • 自定义标签样式

./picture/figure6.gif

M-x org-supertag-behavior-attach M-x org-supertag-behavior-detach

强大的搜索

高效查找和组织你的节点:

多关键词搜索

  • 支持多个关键词组合搜索(AND 逻辑)
  • 美观的搜索结果界面
  • 预览标题下的内容

./picture/figure8.gif

M-x org-supertag-query

灵活的导出选项

多种方式组织搜索结果:

  • 导出到已有文件
  • 创建新文件保存结果
  • 在当前位置插入

./picture/figure9.gif

自动同步

自动保持节点的组织:

  • 追踪节点位置变化
  • 自动更新引用关系
  • 提供手动同步命令

./picture/figure7.gif

如果有的节点需要同步,但未能自动同步,你可以直接运行 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

Changelog

  • 2025-01-13 2.0.0 release
    • 新增行为调度系统
    • 新增行为模板变量
    • 新增自动同步系统
    • 以及诸多改进

    详细见 CHANGELOG

  • 2024-12-31 1.0.0 release
    • feat behavior-system: 完整的行为系统实现,形成自动工作流
      • 三层行为架构(基础/派生/组合)
      • 完整的触发器系统
      • 丰富的行为库函数ß
      • 样式系统支持
    • docs: 提供交互式演示文档 DEMO.org
    • refactor: 核心重构
      • 优化数据结构
      • 改进错误处理
      • 提升性能表现
  • 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 那样,提供更多视图(实验性功能,未必会实现)

Acknowledgments

感谢 Tana 的启发,感谢 org-mode 和 Emacs 的强大。

我真诚希望你能喜欢这个包,并从中受益。

贡献

欢迎贡献!请查看我们的贡献指南