To jest zadanie org-element
, niesamowite (!) Dzieło Nicolasa Goaziou . Jeśli nie wiesz org-element
i 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-point
lub 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 string
lub parse tree
z 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-dp
biblioteka pomoże Ci w takich działań ( na MELPA ).
Biblioteka org-dp
jest 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-buffer
dostępne)
Pełniejszy opis Thorstena można znaleźć tutaj .
Dalsze wyjaśnienia gmane.emacs.orgmode
to naprawdę odpowiednie forum.
org-insert-drawer
. (To znaczy, wyobrażam sobie, że gdyby taki konwerter istniał, ta funkcja nazwałaby go tymnil
.)