org-element.el API 联调文档

主要目的是使用 API 解析字符串中的 org-mode 数据。获取对应的节点内容等。

测试方法:使用 ob-babel 功能,支持共享数据和环境变量,可以传值等特点。

初始化数据源

1
2
3
4
(setq org-string "* Hello world\n:PROPERTIES:\n:OWNER: Dav\n:ID: 123\n:END:\n\nThis is the body of first-level headline.\n\n** Subheadline\n\nTest text.")
(with-current-buffer (get-buffer-create "*org-string*")
        (insert org-string)
      )

APi 测试用例

获取所有属性名

1
2
3
4
5
6
(with-current-buffer "*org-string*"
  (org-mode)
  (let ((x (org-buffer-property-keys)))
    (with-output-to-temp-buffer "*xah temp out*"
      (print x)))
  )
IDOWNER

获取当前 headline

1
2
3
4
5
6
7
8

(with-current-buffer "*org-string*"
  (org-mode)
  ;; 提取当前标题的组成部分。
  (let ((x (org-heading-components)))
    (with-output-to-temp-buffer "*xah temp out*"
      (print x)))
  )
22nilnilSubheadlinenil

获取所有 headline

1
2
3
4
5
6
7
8
9
(with-current-buffer "*org-string*"
  (org-mode)
  (let (($headings nil))
    (org-map-entries
     (lambda ()
       (push (org-heading-components) $headings)))
    (with-output-to-temp-buffer "*xah temp out*"
      (print $headings)))
  )
22nilnilSubheadlinenil
11nilnilHello worldnil

org-element.el 库测试用例

org-data 的数据结构

(org-data nil <e1> <e2> <e3> … )

siri 对话 Claude AI,低延迟畅聊

在体验 AI 对工作和生活越来越大,疯狂的探索更多的技巧和使用场景,改善生活习惯。很自然,就瞄上了 Siri 本该强大的小助手,是时候通过 AI 来提升对话体验了。

使用 shortcuts 订阅 Claude AI对话

第一步搞定 slack webhooks 配置

Slack 中 Incoming Webhooks 是输入消息的功能,可以作为订阅工具介绍用户的消息吗?

Slack 的 Incoming Webhooks 功能允许外部应用程序通过 HTTP 请求向 Slack 发送消息。它不能直接用于订阅用户消息。但通过 webhook 消息中的用户信息,我们可以实现某个用户消息的过滤与订阅。具体步骤如下:

通过 shortcut 集成 AI 和 Siri 实现语音对话

在苹果手机上,通过 shortcut 集成 AI 和 Siri 实现语音对话,进一步提升了 AI 对话的体验。

具体过程是,通过 Siri 唤醒 Shortcut 通过语音方式开启和 AI 对话,Shortcut 在接收到 AI 以文本形式反馈后,使用语音工具朗读文本。

auto-gpt:将思维框架赋予chatgpt

auto-gpt 是一款提前设定目标,然后交给 chatgpt 自问自答的一些的操作,人类仅做好每一步的选择就好,大大简化了对话过程。

相比普通的聊天模式,缺乏和用户的交互的灵活性。

借助AI修复插件中中文乱码问题

在使用org-sync 过程中,对中文解析问题,导致无法正常同步。

现在尝试通过让AI 阅读elisp 源码,给出解决办法,和编写可用的脚本。

AI对话需要解决的两个问题:先问为什么会同步失败。

AI协作doom集成第三方插件

基于doom的办公环境,在集成第三插件时,经常遇到配置方式不兼容的情况,对 elisp 语法不求甚解的使用者,在集成过程非常煎熬。

比如在集成org-sync插件时,该插件处于停止维护状态,配置加载脚本使用的 mapc ‘load 语法,没有太多经验的话,github issue 又无人问津的时候,就很能错过一个很好工具。

在org-mode中插入GitHub源代码块的方法

在Org mode中,我们可以使用源代码块来嵌套远程代码库的代码片段。例如,要插入Github上的swift库的第3-18行代码,我们可以:

  1. 确定该库的链接,例如:https://github.com/apple/swift
  2. 在Org文件中插入该链接的源代码块:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#+BEGIN_SRC swift :file https://github.com/apple/swift :lines 3-18
                struct Swift {
                    var version: Int
                    let repositoryURL = "https://github.com/apple/swift"

                    init() {
                        self.version = 5
                    }

                    func sayHello() {
                        print("Hello from Swift version \(version)!")
                    }
                }
##+END_SRC
  1. Org mode会从该链接获取 swift 仓库的源码,并插入我们指定行号范围(3-18行)的代码。

那么完整的org例子如下: