To jest zadanie org-element, niesamowite (!) Dzieło Nicolasa Goaziou . Jeśli nie wiesz org-elementi zależy ci na rozwoju organizacji, powinieneś przyjrzeć się temu. Jest to nie tylko świetne narzędzie do pracy, ale także coraz silniejsze org. Przede wszystkim org-export( ox), ale działa również np org.el.
Aby uzyskać „reprezentację seplenienia” elementu w punkcie, użyj org-element-at-pointlub org-element-context. Aby uzyskać reprezentację bufora, użyj org-element-parse-buffer. Chociaż nie ma to bezpośredniego znaczenia tutaj, należy pamiętać org-element-map.
Aby przejść z „lisp reprezentacji” w stosunku do element, secondary stringlub parse treez powrotem do „Org składnia reprezentacji” użytku org-element-interpret-data. Jest (tylko) sposób, aby włączyć „lisp reprezentacji” w „Org składni reprezentacji”. Prawdopodobnie nie będziesz jednak chciał pisać tej reprezentacji ręcznie. Oto dość mała reprezentacja pierwszego nagłówka
(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."))))
Jeśli musisz dodać oba nagłówki, dodaj 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.")))))
Może się okazać, że Thorsten Jolitz „s org-dpbiblioteka pomoże Ci w takich działań ( na MELPA ).
Biblioteka org-dpjest przeznaczona do programowania na poziomie lokalnym, tj. Bez żadnych (kontekstowych) informacji, z wyjątkiem informacji o analizowanym elemencie w punkcie. Został zaprojektowany tak, aby korzystanie z frameworka parsera / interpretera Org na poziomie lokalnym było tak wygodne, jak korzystanie z niego na poziomie globalnym (z pełnym drzewem parsowania produkowanym przez
org-element-parse-bufferdostępne)
Pełniejszy opis Thorstena można znaleźć tutaj .
Dalsze wyjaśnienia gmane.emacs.orgmodeto naprawdę odpowiednie forum.
org-insert-drawer. (To znaczy, wyobrażam sobie, że gdyby taki konwerter istniał, ta funkcja nazwałaby go tymnil.)