Hi List, when interpreting Org elements (type src-block) I frequently encounter the case that the '#+end_src' delimter is not placed on a newline but rather attached to the src-block's value without a linefeed in between.
I then have to append a "\n" to the src-block value to make things work, but thats not a nice thing and causes problems in other places. The "\n" should be set by the framework. I think adding something like this at the end of the interpreter-function could solve the problem, but this came out of try-and-error only: #+begin_src emacs-lisp ((( [...] (org-escape-code-in-string value) ;; check for newline (save-match-data (if (looking-at "^$") "" "\n")) "#+END_SRC"))) #+end_src The problem seems to appear a bit randomly, but using my new function #+begin_src emacs-lisp ;; might become `org-element-create' (defun* tj/create-element (&optional insert-p &rest args &key (type 'headline) &allow-other-keys) "Create Org element, maybe insert at point." (let ((strg (org-element-interpret-data (list type args)))) (if insert-p (insert strg) strg))) #+end_src #+results: : tj/create-element I can give an the following example #+begin_src emacs-lisp :results raw (tj/create-element nil :type 'src-block :language "emacs-lisp" :value "(+ 2 2)") #+end_src #+results: #+BEGIN_SRC emacs-lisp (+ 2 2)#+END_SRC -- cheers, Thorsten