Dear org-mode Users and Developers,

I am trying to write a simple function for importing files to org-mode
babel code blocks.

My naive approach was

--8<---------------cut here---------------start------------->8---
(defun import-to-org-from-files (path pattern progmode)
  (mapcar #'(lambda (filepath)
              (progn
                (insert (format
                         "\n#+name: %s\n" (file-name-nondirectory
                                           (file-name-sans-extension
                                            filepath))))
                (insert (format "#+begin_src: %s :eval no\n" progmode))
                (insert-file-contents filepath)
                (insert "\n#+end_src\n"))
              )
          (directory-files path t pattern)))
--8<---------------cut here---------------end--------------->8---

to be called e.g. like this

--8<---------------cut here---------------start------------->8---
(import-to-org-from-files "/path/to/scripts/" ".*\.sh$" "sh")
--8<---------------cut here---------------end--------------->8---


This leads to all babel code blocks being inserted empty and all file
content inserted afterwards, i.e. the `insert-file-contents' is somehow
delayed until all `insert's have happened.

Maybe this is just related to my misunderstanding of the involved elisp,
but I am posting it here since I am sure someone must have thought about
this import. Or is there even an org-mode builtin that can be used?

Best Regards,
Michael



Reply via email to