[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 |
Hello,
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.
WDYT?
Regards,
--
Nicolas Goaziou