Daimrod <daim...@gmail.com> writes: > Feng Shu <tuma...@gmail.com> writes: > >> Daimrod <daim...@gmail.com> writes: >> >>> Feng Shu <tuma...@gmail.com> writes: >>> >>>> Hi: >>> Hi Feng, >>> >>> Look at the :post header argument. >>> (info "(org) post") >> >> How to use elisp in :post directly, > > I don't think you can. > > You have to use it this way (not tested): > #+NAME: align-multi-table > #+BEGIN_SRC emacs-lisp :var content="nil" :results raw > (align-multi-table content) > #+END_SRC > #+begin_src R :results output raw drawer :post > align-multi-table(content=*this*) > <content> > #+end_src
I prefer using a hook function to do this job, The below is my hook: #+begin_src elisp (add-hook 'org-babel-after-execute-hook 'eh-org-babel-align-tables) (defun eh-org-babel-align-tables (&optional info) "Align all tables in the result of the current source" (interactive) (let ((location (org-babel-where-is-src-block-result nil info))) (when location (save-excursion (goto-char location) (when (looking-at (concat org-babel-result-regexp ".*$")) (while (< (point) (progn (forward-line 1) (org-babel-result-end))) (when (org-at-table-p) (toggle-truncate-lines 1) (org-table-align) (goto-char (org-table-end))) (forward-line))))))) #+end_src > >> for example: >> >> #+begin_src R :results output raw drawer :post (align-multi-table) >> <content> >> #+end_src >> #+begin_comment >> (defun align-multi-table (&optional content) >> (interactive) >> (let ((content (or content *this*))) >> (with-temp-buffer >> (insert content) >> (goto-char (point-min)) >> (while (not (eobp)) >> (when (org-at-table-p) >> (org-table-align)) >> (forward-line)) >> (buffer-string)))) >> #+end_comment >> >>> >>>> I want to write a hook to menupulate org babel output, >>>> The problem is: How can I get two points info: [pointA] and [pointB] >>>> in my hook function? >>>> >>>> #+begin_src R :results output raw drawer >>>> tbl <- data.frame(a=c(1,2,3),b=c(3,2,1)) >>>> print(ascii(tbl),type="org") >>>> #+END_SRC >>>> >>>> #+RESULTS: >>>> :RESULTS: >>>> [pointA] >>>> | | a | b | >>>> |---+------+------| >>>> | 1 | 1.00 | 3.00 | >>>> | 2 | 2.00 | 2.00 | >>>> | 3 | 3.00 | 1.00 | >>>> [pointB] >>>> :END: --