Bu işi olduğunu org-element
, müthiş bir (!) İş Nicolas Goaziou . Eğer bilmiyorsanız org-element
ve kuruluş gelişimini önemsiyorsanız, bu göz önünde bulundurmanız gereken bir şeydir. Sadece çalışmak için harika bir araç değil, aynı zamanda giderek daha fazla güç veriyor org
. En önemlisi org-export
( ox
), fakat aynı zamanda örn org.el
.
Nokta altında org-element-at-point
veya altında bir elemanın "lisp temsili" elde etmek için org-element-context
. Tampon kullanımının temsilini almak org-element-parse-buffer
. Burada doğrudan alakalı olmasa da, farkında olun org-element-map
.
"Lisp temsil" bir bölgesinin gitmek için element
, secondary string
ya parse tree
hiç arkasına "Org sözdizimi gösterimi" kullanım org-element-interpret-data
. Bu bir "Org sözdizimi temsil" içine "lisp temsilini" açmak için (yalnızca) yol. Yine de muhtemelen bu temsili el ile yazmak istemeyeceksiniz. İşte ilk başlığınızın oldukça küçük bir temsili
(org-element-interpret-data
'(headline (:title "One headline" :level 1)
(property-drawer nil ((node-property (:key "property1" :value "value1"))
(node-property (:key "property2" :value "value2"))))
(#("Some much longer content."))))
Her iki başlığı da eklemeniz gerekiyorsa parse tree
(org-element-interpret-data
'(org-data nil (headline (:title "One headline" :level 1)
(property-drawer nil ((node-property (:key "property1" :value "value1"))
(node-property (:key "property2" :value "value2"))))
(#("Some much longer content.")))
(headline (:title "Second headline" :level 1)
(property-drawer nil ((node-property (:key "property1" :value "value1"))
(node-property (:key "property2" :value "value2"))))
(#("More much longer content.")))))
Sen bulabilirsiniz Thorsten Jolitz 'ın org-dp
kitaplığı (örneğin çabalarında size yardımcı olacaktır MELPA üzerinde ).
Kütüphane org-dp
, yerel düzeyde programlama içindir, yani noktadaki ayrıştırılmış öğeyle ilgili olanlar dışında (bağlamsal) bilgi olmadan. Kuruluş ayrıştırıcı / yorumlayıcı çerçevesini yerel düzeyde kullanmayı, küresel düzeyde kullanmak kadar uygun hale getirmek için tasarlanmıştır ( org-element-parse-buffer
mevcut tarafından üretilen tam bir ayrıştırma ağacı ile
)
Thorsten'in daha eksiksiz bir açıklamasını burada bulabilirsiniz .
Daha fazla açıklama gmane.emacs.orgmode
için gerçekten uygun bir forum.
org-insert-drawer
. (Yani, böyle bir dönüştürücünün var olup olmadığını düşünürdüm, bu işlev buna bir tane diyecektirnil
.)