Re: [O] including external file in src block execution; ATTR_HTML on src blocks

2016-12-12 Thread Charles C. Berry

On Mon, 12 Dec 2016, Matt Price wrote:


On Mon, Dec 12, 2016 at 12:16 PM, Charles C. Berry  wrote:


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

2016-12-12 Thread Matt Price
On Mon, Dec 12, 2016 at 12:16 PM, Charles C. Berry  wrote:

> 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

2016-12-12 Thread Charles C. Berry

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

2016-12-12 Thread Matt Price
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