From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: filter for src-block export question Date: Sat, 20 Sep 2014 19:33:59 -0400 Message-ID: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58067) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVUV0-0003SM-0B for emacs-orgmode@gnu.org; Sat, 20 Sep 2014 19:55:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XVUUn-0007cv-Tf for emacs-orgmode@gnu.org; Sat, 20 Sep 2014 19:55:29 -0400 Received: from plane.gmane.org ([80.91.229.3]:39887) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVUUn-0007cF-Ms for emacs-orgmode@gnu.org; Sat, 20 Sep 2014 19:55:17 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1XVUAO-0003vd-5R for emacs-orgmode@gnu.org; Sun, 21 Sep 2014 01:34:12 +0200 Received: from c-24-3-17-30.hsd1.pa.comcast.net ([24.3.17.30]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 21 Sep 2014 01:34:12 +0200 Received: from jkitchin by c-24-3-17-30.hsd1.pa.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 21 Sep 2014 01:34:12 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org I have noticed that when code blocks have input variables, e.g. #+tblname: tbl-data | x | y | |---+---| | 1 | 1 | | 2 | 4 | | 3 | 9 | #+BEGIN_SRC python :var data=tbl-data print data #+END_SRC #+RESULTS: : [[1, 1], [2, 4], [3, 9]] When I export this, the codeblock shows no indication of what "data" is, or where it came from. I had hoped to develop a filter that would allow me to put something like:
language=python
parameters: :var data=tbl-data
in front of the block for an html export. I tried following the example here: http://orgmode.org/manual/Advanced-configuration.html at the end, by defining a derived mode. However, it does not appear that the information is kept in the parse tree. (src-block (:language python :switches nil :parameters nil :begin 536 :end 578 :number-lines nil :preserve-indent t :retain-labels t :use-labels t :label-fmt nil :hiddenp nil :value print data :post-blank 2 :post-affiliated 536 :parent #4)) although if I look at the element at point, it seems to be there: (src-block (:language python :switches nil :parameters :var data=tbl-data :begin 536 :end 629 :number-lines nil :preserve-indent t :retain-labels t :use-labels t :label-fmt nil :hiddenp nil :value print data (princ (org-element-at-point)) I am not sure why the :end values are not the same though. Here is what I was trying to use: #+BEGIN_SRC emacs-lisp (defun my-src-block (src-block contents info) (message "start-block\n\n%s\n\nend-block" info) (concat "
"
   (format "[language: %s]" (org-element-property :language src-block))
   (format "\nparameters: %s" (org-element-property :parameters src-block))
   "

" (org-export-format-code-default src-block info))) (org-export-define-derived-backend 'my-html 'html :translate-alist '((src-block . my-src-block))) (org-export-to-file 'my-html "custom-src-table-export.html") (browse-url "custom-src-table-export.html") #+END_SRC There are two issues with this block: 1. All parameters are listed as nil 2. the code is not syntax highlighted in html at all. Any suggestions on how to achieve this? I also want to insert tablenames, and if the src-block is named to put the name above the block (for extra gravy, a hyperlink from :var to the source ;). thanks, -- ----------------------------------- John Kitchin http://kitchingroup.cheme.cmu.edu