Re: [O] including external file in src block execution; ATTR_HTML on src blocks
On Mon, 12 Dec 2016, Matt Price wrote: On Mon, Dec 12, 2016 at 12:16 PM, Charles C. Berrywrote: On Mon, 12 Dec 2016, Matt Price wrote: [snip] My questions are: 1. can I pass this html attribute to the block somehow? Yes. ATTR_HTML doesn't seem to work. Is this a bug? If so, should I try to fix it? No and no. Did you try : (plist-get (cadr src-block) :attr_html) in `org-html-src-block' ? ah, ok. Now I will reveal some of the depths of my ignorance. Looks like :attr_html is a plist (right?). No, it is a property name. (cadr src-block) is the plist. See (info "(elisp) Property Lists") (a) what is the appropriate way to identify an attribute here. should I write, e.g.: #+ATTR_HTML: :data-external-libs "http://underscorejs.org/underscore-min.js; :class "list of classes" Any could be made to work, but I'd use (a). Then : (org-babel-parse-header-arguments : (car (plist-get (cadr src-block) :attr_html))) will give you : ((:data-external-libs . "http://underscorejs.org/underscore-min.js;) : (:class . "list of classes")) or: #+ATTR_HTML: data-external-libs "http://underscorejs.org/underscore-min.js; class "list of classes" or #+ATTR_HTML: "data-external-libs" "http://underscorejs.org/underscore-min.js; "class" "list of classes" And then, if I want to transform this into: data-external-libs="http://underscorejs.org/underscore-min.js; class="list of classes" can I just do something like: (let ((attributes (org-export-get-attribute :attr_html src-block)) (cl-loop for (key value) in attributes (collect (concat key "=" "\"" value "\" " or do I need to transform the key into a string first? Well, I'd just try it and see. I'm sorry to be writing such basic lisp questions; obviously I need to read a really good lisp introduction, but I haven't found one yet. This is what I use: * Elisp: (elisp). The Emacs Lisp Reference Manual. * Emacs Lisp Intro: (eintr).A simple introduction to Emacs Lisp programming. and ample Googling, usually leading to StackOverflow, to get hints on stuff I am fuzzy on. And I read docstrings over and over and ... Best, Chuck
Re: [O] including external file in src block execution; ATTR_HTML on src blocks
On Mon, Dec 12, 2016 at 12:16 PM, Charles C. Berrywrote: > On Mon, 12 Dec 2016, Matt Price wrote: > > > [snip] > > >> My questions are: >> 1. can I pass this html attribute to the block somehow? >> > > Yes. > > ATTR_HTML doesn't seem to work. Is this a bug? If so, should I try to fix >> it? >> > > No and no. > > Did you try > > : (plist-get (cadr src-block) :attr_html) > > in `org-html-src-block' ? > > ah, ok. Now I will reveal some of the depths of my ignorance. Looks like :attr_html is a plist (right?). (a) what is the appropriate way to identify an attribute here. should I write, e.g.: #+ATTR_HTML: :data-external-libs "http://underscorejs.org/underscore-min.js; :class "list of classes" or: #+ATTR_HTML: data-external-libs "http://underscorejs.org/underscore-min.js; class "list of classes" or #+ATTR_HTML: "data-external-libs" "http://underscorejs.org/underscore-min.js; "class" "list of classes" And then, if I want to transform this into: data-external-libs="http://underscorejs.org/underscore-min.js; class="list of classes" can I just do something like: (let ((attributes (org-export-get-attribute :attr_html src-block)) (cl-loop for (key value) in attributes (collect (concat key "=" "\"" value "\" " or do I need to transform the key into a string first? I'm sorry to be writing such basic lisp questions; obviously I need to read a really good lisp introduction, but I haven't found one yet. > > If not, is there a simple way to use header arguments to pass >> information down? >> > > The answer is still no. ;-) > > There are complicated ways. See > > https://github.com/chasberry/orgmode-accessories/blob/ravel- > lang/ox-ravel.org > > for one such. But for what you are doing ATTR_HTML is easiest. > > I will take the easiest please! > > I am already rewriting the exporter's src-block export >> function, so I can try to accomplish what I need to in that context. >> > > BTW, the cleanest way to do this is by writing a derived exporter: > > : (org-export-define-derived-backend 'reveal 'revealplus ... > > In your case you only provide the src-block entry for the > :translate-alist, :options-alist entries for any you redefine or introduce, > and optionally a :menu-entry. > > Also, you'll probably want to add a hook to `org-export-before-parsing-hook' > (see below). > > > If you do this, then `#+ATTR_REVEALPLUS:' seems suitable. > right. Up till now I have been hoping to integrate these change sback into ox-reveal, but now it's starting to feel a bit invasive. I may try this route. > > 2. I'd like to be able to test my code directly in org (since I'm a lousy >> coder and a clumsy typist). Can I tell org to load other files before >> executing a src block? >> > > Yes. Depending on what you want one of these: > > * Add this to `org-export-before-parsing-hook', perhaps in setting up a > derived exporter. > > * Or perhaps by using a local variable `eval' see > > : (info "(emacs) Specifying File Variables") > > * Or by executing a src-block that loads those files. > I think this might be the best route, since I would probably want to load such files on a block-by-block basis. > > HTH, > > Chuck > very much, I think!
Re: [O] including external file in src block execution; ATTR_HTML on src blocks
On Mon, 12 Dec 2016, Matt Price wrote: [snip] My questions are: 1. can I pass this html attribute to the block somehow? Yes. ATTR_HTML doesn't seem to work. Is this a bug? If so, should I try to fix it? No and no. Did you try : (plist-get (cadr src-block) :attr_html) in `org-html-src-block' ? If not, is there a simple way to use header arguments to pass information down? The answer is still no. ;-) There are complicated ways. See https://github.com/chasberry/orgmode-accessories/blob/ravel-lang/ox-ravel.org for one such. But for what you are doing ATTR_HTML is easiest. I am already rewriting the exporter's src-block export function, so I can try to accomplish what I need to in that context. BTW, the cleanest way to do this is by writing a derived exporter: : (org-export-define-derived-backend 'reveal 'revealplus ... In your case you only provide the src-block entry for the :translate-alist, :options-alist entries for any you redefine or introduce, and optionally a :menu-entry. Also, you'll probably want to add a hook to `org-export-before-parsing-hook' (see below). If you do this, then `#+ATTR_REVEALPLUS:' seems suitable. 2. I'd like to be able to test my code directly in org (since I'm a lousy coder and a clumsy typist). Can I tell org to load other files before executing a src block? Yes. Depending on what you want one of these: * Add this to `org-export-before-parsing-hook', perhaps in setting up a derived exporter. * Or perhaps by using a local variable `eval' see : (info "(emacs) Specifying File Variables") * Or by executing a src-block that loads those files. HTH, Chuck
[O] including external file in src block execution; ATTR_HTML on src blocks
I use org to write my lecture notes, and have started using klipse in those exported notes to execute code snippets in a browser environment ( http://matt.hackinghistory.ca/2016/12/11/org-mode-run-code-live-in-a-reveal-slideshow-with-klipse/ ). Sometimes I would like to set up the javascript environment with some additional libraries, either local or web-based. Klipse lets you do this with a custom data- attribute. My questions are: 1. can I pass this html attribute to the block somehow? ATTR_HTML doesn't seem to work. Is this a bug? If so, should I try to fix it? If not, is there a simple way to use header arguments to pass information down? I am already rewriting the exporter's src-block export function, so I can try to accomplish what I need to in that context. 2. I'd like to be able to test my code directly in org (since I'm a lousy coder and a clumsy typist). Can I tell org to load other files before executing a src block? Thank you! Mat