Org-mode 嵌套属性?

4

Org手册中说:“属性是与条目相关联的键值对”。一个适当的键值数据结构可以将任何内容存储在值中,包括另一个关联数组。但是,属性似乎不能这样做。

  • 我能模拟嵌套属性吗?
  • 如果我不能,从理论上讲应该如何优雅地实现呢?

嵌套属性可以通过大量使用属性API为org-mode开启无数功能。脑海中浮现出的例子包括:键值数据库、图形数据库、向条目添加复杂的语义元数据、语义Web应用程序,甚至是文本任务。

2009年,在org-mode邮件列表上讨论了一个类似于ID标记的想法(该线程的所有帖子)。ID标记的想法与我另一个愿望有关,即从Org-mode:在抽屉中使用特殊属性中概括org-mode属性语法。不幸的是,ID标记引入了更多的新语法,我希望能够逐步增量地在当前org-mode的能力范围内启用嵌套数据存储。

Babel可能是一种解决方案,但它需要使用编程语言,可能会限制灵活性。最好只使用属性API。


你真的需要属性吗?如果你想使用数据库,为什么不使用命名表格,以便由org-babel代码块调用呢? - Nikana Reklawyks
1个回答

2

您是否有这个想法:

** subheading
   :PROPERTIES:
   :my-prop:  (:property-1 red :property-2 (nested-prop . 5))
   :END:`


#+BEGIN_SRC emacs-lisp
    (defun get-my-prop-value (property)
       (interactive)
       (plist-get
       (read (org-entry-get (point) "my-prop"))
       property))
#+END_SRC

#+RESULTS:
: get-my-prop-value



#+BEGIN_SRC emacs-lisp
    (get-my-prop-value :property-2)
#+END_SRC

#+RESULTS:
: (nested-prop . 5)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接