3

組織のマニュアルには、「プロパティは、エントリに関連付けられたキーと値のペアです」と記載されています。適切なキーと値のデータ構造は、別の連想配列を含め、何でも値に格納できます。しかし、プロパティは一見できません。

  • ネストされたプロパティをエミュレートできますか?
  • できない場合、理論的にどのようにエレガントに実装する必要がありますか?

ネストされたプロパティは、数え切れないほどの機能にプロパティ APIを多用することで、org-mode の多くの可能性を可能にします。頭に浮かぶ例には、キー値データベース、グラフ データベース、エントリへの複雑なセマンティック メタデータの追加、セマンティック Web アプリ、さらにはテキスト クエストなどがあります。

ID マーカー(スレッドのすべての投稿)の同様のアイデアが、2009 年に org-mode メーリング リストで議論されました。ドロワー内のプロパティ。残念ながら、ID マーカーにはさらに新しい構文が導入されているため、現在の組織モード機能内で、ネストされたデータの段階的な保存を有効にしたいと考えています。

Babelは解決策になる可能性がありますが、プログラミング言語を使用する必要があり、柔軟性が制限される可能性があります。プロパティ API のみを使用することをお勧めします。

4

1 に答える 1

1

これはあなたが念頭に置いていることですか:

** 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)
于 2014-11-30T20:01:37.957 に答える