Re: [O] Preserving links when using org-element-interpret-data
Hello, Thibault Marinwrites: > I am trying to use the org-element tools to modify an org file from elisp code > and I was wondering if the `org-element-parse-buffer' / > `org-element-interpret-data' combo should result in the same content as the > original buffer. There is no guarantee that they return the same original buffer. Actually, it is highly unlikely. Some information, not useful to Org, is ignored during parsing (e.g., global indentation, case for keywords...). However, they will return an equivalent buffer, in the sense that both the produced and the original one have the same parse tree. > I am having issues with links where the target and the > description are both =file:= entries. [...] > The input link is transformed from > > #+begin_example > [[file:a.png][file:a.png]] > #+end_example > > to > > #+begin_example > [[file:a.png][[[file:a.png > #+end_example > > Are the additional brackets in the description expected? No, this is a genuine bug. This is now fixed. Thank you. Regards, -- Nicolas Goaziou
[O] Preserving links when using org-element-interpret-data
Hi all, I am trying to use the org-element tools to modify an org file from elisp code and I was wondering if the `org-element-parse-buffer' / `org-element-interpret-data' combo should result in the same content as the original buffer. I am having issues with links where the target and the description are both =file:= entries. My original org looks like this: #+NAME: org-data #+begin_example ,#+TITLE: test [[file:a.png][file:a.png]] #+end_example The elisp code parses the org file and outputs the result from `org-element-interpret-data': #+NAME: org-interpret #+BEGIN_SRC emacs-lisp :var org-data=org-data :results verbatim (let (org-tree) (with-temp-buffer (insert org-data) (setq org-tree (org-element-parse-buffer))) (org-element-interpret-data org-tree)) #+END_SRC #+RESULTS: org-interpret : "#+TITLE: test : : [[file:a.png][[[file:a.png : " The input link is transformed from #+begin_example [[file:a.png][file:a.png]] #+end_example to #+begin_example [[file:a.png][[[file:a.png #+end_example Are the additional brackets in the description expected? Is there any way to achieve what I want: I am trying to get org-element-interpret-data to output the same link syntax as the input (in my real application, I am changing the filename). Thanks in advance for the help. P.S.: Here is my version information: #+BEGIN_SRC emacs-lisp :results drawer (concat (emacs-version) "\n" (replace-regexp-in-string "@.*)" "@ ... )" (org-version nil t))) #+END_SRC #+RESULTS: :RESULTS: GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.21.5) of 2016-09-05 on trouble, modified by Debian Org-mode version 8.3.6 (release_8.3.6-1179-ga9ae0e @ ... ) :END: