Ini adalah pekerjaan dari org-element, yang mengagumkan (!) Karya Nicolas Goaziou . Jika Anda tidak tahu org-elementdan 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-pointatau 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 stringatau parse treekembali 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-dpperpustakaan akan membantu Anda dalam upaya tersebut ( pada MELPA ).
Perpustakaan org-dpdimaksudkan 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-buffertersedia)
Deskripsi yang lebih lengkap oleh Thorsten dapat ditemukan di sini .
Untuk klarifikasi lebih lanjut gmane.emacs.orgmodebenar-benar forum yang tepat.
org-insert-drawer. (Yaitu, saya akan membayangkan jika konverter seperti itu ada, fungsi ini akan memanggil yang satu dengannil.)