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: