[Orgmode] hyperlinks executing multiline code snippets?
Hi Don't know if this is trivially answered... I'm thinking about using org-mode for a collection of code-snippets which are executed by a click on a link My first idea was to use orgs hyperlink syntax but there I have two problems 1. something like [[shell:code][NAME]] can't be multiline 2. for perl code I'll need to escape certain characters when using [[shell:...] or [[elisp:...] my second idea was org-babel, but AFAI see 1. it seems to execute code-snippets only when exporting 2. the code can't be hidden behind a NAME in a link text Is there a way to combine both ways? A hyperlink which executes a codesnippet (which is per default folded away)? something like? * [[exec:following snippet][name] #+begin_src perl for $i (1..9){ print $i; } #+end_src or * Title #+begin_src perl :hyperlink name for $i (1..9){ print $i; } #+end_src Thanks for any help -- rolf PS hope this will not produce a duplicate post, gmail != googlemail confusion ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] hyperlinks executing multiline code snippets?
Hi LanX, The following two options come to mind, although I'm not sure if any are exactly what you're after. * named code block and a #+call: line #+source: counter #+begin_src perl :results output :var to=5 for $i (1..$to){ print $i; } #+end_src #+results: counter : 12345 #+call: counter(to=3) #+results: counter(to=3) : 123 C-c C-c on the call line to execute the counter block, the block does not need to be located near the call line, and using the Library of Babel could even be located in another file. * using an elisp link [[elisp:(sbe counter (to 8))][count to 8]] Clicking on the link above will also call the code block. Best -- Eric LanX lanx.p...@googlemail.com writes: Hi Don't know if this is trivially answered... I'm thinking about using org-mode for a collection of code-snippets which are executed by a click on a link My first idea was to use orgs hyperlink syntax but there I have two problems 1. something like [[shell:code][NAME]] can't be multiline 2. for perl code I'll need to escape certain characters when using [[shell:...] or [[elisp:...] my second idea was org-babel, but AFAI see 1. it seems to execute code-snippets only when exporting 2. the code can't be hidden behind a NAME in a link text Is there a way to combine both ways? A hyperlink which executes a codesnippet (which is per default folded away)? something like? * [[exec:following snippet][name] #+begin_src perl for $i (1..9){ print $i; } #+end_src or * Title #+begin_src perl :hyperlink name for $i (1..9){ print $i; } #+end_src Thanks for any help -- rolf PS hope this will not produce a duplicate post, gmail != googlemail confusion ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] hyperlinks executing multiline code snippets?
Hi Eric Thanks looks promising but I'm having problems to use it. I noticed that babel is not a part of 6.30trans and did an upgrade to the latest current version 7.4. Unfortunately it's causing problems (all I did was updating a sym-link to the new package) Am I supposed to set additional PATHs? bye --Rolf emacs-23.1.50 --no-site-file --debug-init emacs/tst.org Debugger entered--Lisp error: (file-error Cannot open load file org-entities) require(org-entities) eval-buffer(#buffer *load*4 nil /home/lanx/.emacs.d/elisp/org/org-mode/lisp/org.el nil t) ; Reading at buffer position 3964 load-with-code-conversion(/home/lanx/.emacs.d/elisp/org/org-mode/lisp/org.el /home/lanx/.emacs.d/elisp/org/org-mode/lisp/org.el nil nil) load(/home/lanx/.emacs.d/elisp/org/org-mode/lisp/org.el) ... --- emacs22 --no-site-file --debug-init emacs/tst.org Debugger entered--Lisp error: (file-error Cannot open load file org-macs) require(org-macs) eval-buffer(#buffer *load*4 nil /home/lanx/.emacs.d/elisp/org/org-mode/lisp/org.el nil t) ; Reading at buffer position 3940 ... 2010/12/10 Eric Schulte schulte.e...@gmail.com Hi LanX, The following two options come to mind, although I'm not sure if any are exactly what you're after. * named code block and a #+call: line #+source: counter #+begin_src perl :results output :var to=5 for $i (1..$to){ print $i; } #+end_src #+results: counter : 12345 #+call: counter(to=3) #+results: counter(to=3) : 123 C-c C-c on the call line to execute the counter block, the block does not need to be located near the call line, and using the Library of Babel could even be located in another file. * using an elisp link [[elisp:(sbe counter (to 8))][count to 8]] Clicking on the link above will also call the code block. Best -- Eric LanX lanx.p...@googlemail.com writes: Hi Don't know if this is trivially answered... I'm thinking about using org-mode for a collection of code-snippets which are executed by a click on a link My first idea was to use orgs hyperlink syntax but there I have two problems 1. something like [[shell:code][NAME]] can't be multiline 2. for perl code I'll need to escape certain characters when using [[shell:...] or [[elisp:...] my second idea was org-babel, but AFAI see 1. it seems to execute code-snippets only when exporting 2. the code can't be hidden behind a NAME in a link text Is there a way to combine both ways? A hyperlink which executes a codesnippet (which is per default folded away)? something like? * [[exec:following snippet][name] #+begin_src perl for $i (1..9){ print $i; } #+end_src or * Title #+begin_src perl :hyperlink name for $i (1..9){ print $i; } #+end_src Thanks for any help -- rolf PS hope this will not produce a duplicate post, gmail != googlemail confusion ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] hyperlinks executing multiline code snippets?
ARGH .. ... just realised that I still need to run the makefile for installation. Sorry! :) 2010/12/10 LanX lanx.p...@googlemail.com Hi Eric Thanks looks promising but I'm having problems to use it. I noticed that babel is not a part of 6.30trans and did an upgrade to the latest current version 7.4. ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
[Orgmode] hyperlinks executing multiline code snippets?
Hi Don't know if this is trivially answered... I'm thinking about using org-mode for a collection of code-snippets which are executed by a click on a link My first idea was to use orgs hyperlink syntax but there I have two problems 1. something like [[shell:code][NAME]] can't be multiline 2. for perl code I'll need to escape certain characters when using [[shell:...] or [[elisp:...] my second idea was org-babel, but AFAI see 1. it seems to execute code-snippets only when exporting 2. the code can't be hidden behind a NAME in a link text Is there a way to combine both ways? A hyperlink which executes a codesnippet (which is per default folded away)? something like? * [[exec:following snippet][name] #+begin_src perl for $i (1..9){ print $i; } #+end_src or * Title #+begin_src perl :hyperlink name for $i (1..9){ print $i; } #+end_src Thanks for any help -- rolf ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
[Orgmode] hyperlinks executing multiline code snippets?
(hope this will not produce a duplicate post) Hi Don't know if this is trivially answered... I'm thinking about using org-mode for a collection of code-snippets which are executed by a click on a link My first idea was to use orgs hyperlink syntax but there I have two problems 1. something like [[shell:code][NAME]] can't be multiline 2. for perl code I'll need to escape certain characters when using [[shell:...] or [[elisp:...] my second idea was org-babel, but AFAI see 1. it seems to execute code-snippets only when exporting 2. the code can't be hidden behind a NAME in a link text Is there a way to combine both ways? A hyperlink which executes a codesnippet (which is per default folded away)? something like? * [[exec:following snippet][name] #+begin_src perl for $i (1..9){ print $i; } #+end_src or * Title #+begin_src perl :hyperlink name for $i (1..9){ print $i; } #+end_src Thanks for any help -- rolf ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] hyperlinks executing multiline code snippets?
Hi Eric thanks, after some fiddling I was able to make it work... But do I get it right? The snippet has to be explicitely named, I can't tell the hyperlink just to take the next block? Before I start trying it, is it theoretically possible to write an on ob-multiline.el which parses the following lines? I.e. is the current point known at execution time? Out of curiosity, the manual says The org-babel-load-languages controls which languages are enabled for evaluation (by default only emacs-lisp is enabled). Is it done out of security reasons? Cause it wouldn't be a problem to start a process via elisp and (shell-command ...) Next question: shell-command normally prints the stdout into the minibuffer, but org-hyperlink executions overwrite it with the return code. Is this behaviour configurable? Thanks for the help Rolf PS: ob-perl.el says - (defun org-babel-perl-initiate-session (optional session params) Return nil because sessions are not supported by perl nil) -- What is meant with supporting sessions? IIRC do packages like sepia.el fork a perl process allowing bidirectional communication with emacs. Or what kind of extra support is neccessary here? ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] hyperlinks executing multiline code snippets?
Before I start trying it, is it theoretically possible to write an on ob-multiline.el which parses the following lines? I.e. is the current point known at execution time? it works. I managed to create a new lisp defun which parses the following text, extracts the code and executes it! perfect! =) ___ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode