[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [PATCH] call_*() is not working inside #+DATE

From: Nicolas Goaziou
Subject: Re: [O] [PATCH] call_*() is not working inside #+DATE
Date: Sun, 13 Mar 2016 18:24:42 +0100


Rafael Laboissiere <address@hidden> writes:

> It would be much better if the following construct worked:
>     #+DATE: src_sh{git show -s --date=short --format="%cd [%h]" HEAD}
> Unfortunately, it does not.  This behavior (or misbehavior, I do not 
> know) can be traced down to the org-element-context function.  Suppose 
> that you have the following content in a org-mode buffer:
>     #+DATE: src_sh{date}
>     src_sh{date}
> With the cursor just after the underscore in the #+DATE line, 
> org-element-context returns:
>     (keyword
>      (:key "DATE" :value "src_sh{date}" :begin 1 :end 22 :post-blank 0 
> :post-affiliated 1 :parent nil))
> On the other hand, with the cursor just after the underscore in the next 
> line, org-element-context returns (as it should be):
>     (inline-src-block
>      (:language "sh" :value "date" :parameters nil :begin 22 :end  34 
> :post-blank 0
>        :parent (paragraph (:begin 22 :end 35 :contents-begin 22 :contents-end 
> 35 :post-blank 0
>                            :post-affiliated 22 :parent nil))))
> This is the reason why Org-babel does not evaluate the inline source 
> block in the #+DATE line.

Values from keyword are not parsed. Org used to make an exception for an
arbitrary bunch of them (e.g., DATE, TITLE, etc.). Now it is up to the
export back-ends to decide what keyword is going to be parsed.

I can think of two ways to solve this:

  1. Only evaluate the Babel code during export. Upon exporting the
     document, parsed keywords are known, so
     `org-babel-exp-process-buffer' may try to find "hidden" Babel code
     and execute it.

     This would however introduce a discrepancy between
     org-babel-execute-buffer and the behaviour upon exporting.

  2. Sort parsed keywords from regular ones at the syntax level, much
     like we did for export blocks recently. I.e., every keyword is
     parsed expect those marked as verbatim. I don't have an idea bout
     the involved syntax.

     This would probably induce some backward incompatibility.



Nicolas Goaziou

reply via email to

[Prev in Thread] Current Thread [Next in Thread]