Este es el trabajo de org-element
la impresionante (!) Obra de Nicolás Goaziou . Si no sabe org-element
y le importa el desarrollo de la organización, esto es algo que debe considerar. No solo es una gran herramienta para trabajar, también es cada vez más potente org
. Lo más notable es el org-export
( ox
), pero también funciona en, por ejemplo org.el
.
Para obtener la "representación lisp" de un elemento bajo punto, use org-element-at-point
o org-element-context
. Para obtener la representación del uso del búfer org-element-parse-buffer
. Si bien no es directamente relevante aquí, tenga en cuenta org-element-map
.
Para ir desde la "representación lisp" de un element
, secondary string
o parse tree
volver a la "representación de sintaxis Org", use org-element-interpret-data
. Esta es la (única) forma de convertir una "representación lisp" en una "representación de sintaxis Org". Sin embargo, es probable que no desee escribir esta representación manualmente. Aquí hay una pequeña representación de tu primer titular
(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."))))
Si debe agregar ambos titulares, agregue un 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.")))))
Puede encontrar que la biblioteca de Thorsten Jolitzorg-dp
lo ayudará en tales esfuerzos ( en MELPA ).
La biblioteca org-dp
está destinada a la programación a nivel local, es decir, sin ninguna información (contextual), excepto aquellas sobre el elemento analizado en el punto. Está diseñado para hacer que el uso del marco de análisis / interpretación de Org a nivel local sea tan conveniente como usarlo a nivel global (con un árbol de análisis completo producido por
org-element-parse-buffer
disponible)
Una descripción más completa de Thorsten se puede encontrar aquí .
Para más aclaraciones gmane.emacs.orgmode
es realmente el foro apropiado.
org-insert-drawer
. (Es decir, me imagino que si existiera un convertidor de este tipo, esta función llamaría a ese connil
).