Ini adalah pekerjaan dari org-element
, yang mengagumkan (!) Karya Nicolas Goaziou . Jika Anda tidak tahu org-element
dan Anda peduli tentang pengembangan org, ini adalah sesuatu yang harus Anda perhatikan. Ini bukan hanya alat yang hebat untuk digunakan, tetapi juga semakin kuat org
. Terutama org-export
( ox
), tetapi juga berfungsi dalam misalnya org.el
.
Untuk mendapatkan "representasi lisp" dari elemen di bawah titik gunakan org-element-at-point
atau org-element-context
. Untuk mendapatkan representasi dari penggunaan buffer org-element-parse-buffer
. Meskipun tidak secara langsung relevan di sini, perlu diperhatikan org-element-map
.
Untuk beralih dari "representasi lisp" dari element
, secondary string
atau parse tree
kembali ke "representasi sintaksis Org" gunakan org-element-interpret-data
. Ini adalah satu- satunya cara untuk mengubah "representasi pelat" menjadi "Representasi sintaksis organisasi". Anda mungkin tidak ingin menulis representasi ini secara manual. Berikut ini adalah representasi kecil dari tajuk pertama Anda
(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."))))
Jika Anda harus menambahkan kedua tajuk utama, tambahkan a 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.")))))
Anda mungkin menemukan bahwa Thorsten Jolitz 's org-dp
perpustakaan akan membantu Anda dalam upaya tersebut ( pada MELPA ).
Perpustakaan org-dp
dimaksudkan untuk pemrograman di tingkat lokal, yaitu tanpa informasi (kontekstual) kecuali yang tentang elemen yang diuraikan pada titik. Ini dirancang untuk menjadikan penggunaan kerangka kerja parser / juru bahasa di tingkat lokal senyaman menggunakannya di tingkat global (dengan parse-tree lengkap yang diproduksi oleh
org-element-parse-buffer
tersedia)
Deskripsi yang lebih lengkap oleh Thorsten dapat ditemukan di sini .
Untuk klarifikasi lebih lanjut gmane.emacs.orgmode
benar-benar forum yang tepat.
org-insert-drawer
. (Yaitu, saya akan membayangkan jika konverter seperti itu ada, fungsi ini akan memanggil yang satu dengannil
.)