I want to insert a table from a email (gnus) into org-mode but before it gets saved it should first be converted.
I can do it manually, copy the ascii table to a org-file: mark it then use that command: #+begin_src emacs-lisp (defun my-make-table () "docstring" (interactive) (org-table-convert-region (region-beginning) (region-end) 2)) #+end_src to convert it to a org-table (2 spaces or more is a seperator) then use the following to create ledger style transaction: #+begin_src emacs-lisp :var mapping=food-name-mapping data=import-table (let* ((rev-mapping (mapcar (lambda (x) (list (nth 1 x) (car x))) mapping))) (mapconcat (lambda (line) (format "%s \t\t%s St {=€%s}" (car (assoc-default (nth 1 line) rev-mapping)) (nth 0 line) (nth 4 line))) data "\n")) #+end_src it uses this mapping table: #+NAME: food-name-mapping | expenses:food:vegetable:bananas | Bananas 125g | | | | To map the names of the items of the shop to the ones I use in ledger. First step would be to create a capture that at least imports it as org-table something like that: #+begin_src emacs-lisp ("K" "import Transaction" plain (file+function "~/notes/finanzen.org" (lambda () "" (progn (org-babel-goto-named-src-block "balance") (org-babel-goto-src-block-head)(forward-line)))) "%(copy-region-as-kill) %(switch-buffer \"temp-ledger-import\") %(yank) %(mark-buffer) %(org-table-create-or-convert-from-region) %(buffer-string)" :jump-to-captured t :empty-lines-after 1 :immediate-finish nil) #+end_src But I would want to do both convertions before I want to capture it in the end. Can I do that or do I need to work with org-capture-hooks? Any suggestions?