Este é o trabalho de org-element, o incrível (!) Trabalho de Nicolas Goaziou . Se você não conhece org-elemente se preocupa com o desenvolvimento organizacional, isso é algo que você deve analisar. Não é apenas uma ótima ferramenta para se trabalhar, mas também é cada vez mais poderosa org. Mais notavelmente o org-export( ox), mas também funciona em por exemplo org.el.
Para obter a "representação lisp" de um elemento em point use org-element-at-pointou org-element-context. Para obter a representação do buffer, use org-element-parse-buffer. Embora não seja diretamente relevante aqui, esteja ciente org-element-map.
Para ir da "representação lisp" de um element, secondary stringou parse treede volta para a "Org sintaxe representação" uso org-element-interpret-data. Essa é a (única) maneira de transformar uma "representação de lisp" em uma "representação de sintaxe da organização". Você provavelmente não desejará escrever essa representação manualmente, no entanto. Aqui está uma representação bem pequena do seu primeiro título
(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."))))
Se você precisar adicionar os dois títulos, adicione um 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.")))))
Você pode achar que a biblioteca de Thorsten Jolitz o org-dpajudará em tais esforços ( no MELPA ).
A biblioteca org-dpé destinada à programação em nível local, ou seja, sem nenhuma informação (contextual), exceto aquelas sobre o elemento analisado no momento. Ele foi projetado para tornar o uso da estrutura de analisador / intérprete de organização no nível local o mais conveniente possível no nível global (com uma árvore de análise completa produzida por
org-element-parse-bufferdisponível)
Uma descrição mais completa de Thorsten pode ser encontrada aqui .
Para mais esclarecimentos gmane.emacs.orgmodeé realmente o fórum apropriado.
org-insert-drawer. (Ou seja, eu imagino se tal conversor existia, esta função chamaria que um comnil.)