On Sat, 30 Apr 2016, Eike wrote:
Charles C. Berry <ccbe...@ucsd.edu> writes:
On Sat, 30 Apr 2016, Eike wrote:
Hi,
[much deleted]
What I want to do: I want to insert an org table somewhere in an org
buffer. The data is not from an src block but retrieved from somewhere
else. So I have a list like `(("id" "num") hline ("a" "1") ("b" "2"))'
and I'd like to put it in a buffer as an org table (the buffer is in
org-mode).
The easiest way to borrow babel tools is to use babel to execute src
blocks directly. Here is a start. Run this src block to define a function
`insert-quoted-list-as-result':
#+BEGIN_SRC emacs-lisp
(defun insert-quoted-list-as-result (my-list)
(save-excursion
(insert
(format
"#+BEGIN_SRC emacs-lisp\n '%S\n#+END_SRC\n\n" my-list))
(let ((org-confirm-babel-evaluate nil))
(org-babel-execute-src-block)))
(delete-region (point)
(org-babel-where-is-src-block-result)))
#+END_SRC
Then put the next line in an *.org buffer and try it out by typing C-x C-e
just below the line:
: (insert-quoted-list-as-result '(("id" "num") hline ("a" "1") ("b" "2")))
Note that it only works if point is on its own line. So you want to add
some checks to prevent execution otherwise or to insert newlines as
needed before invoking the function.
Also note: if there is a #+RESULTS: block immediately following, it will
be replaced, which you may not want. And you may want to remove the
#+RESULTS: line, too.
HTH,
Chuck