Re: [O] Parsing property drawers in subtree scope exports

2017-07-06 Thread Nicolas Goaziou
Hello,

Kaushal Modi  writes:

> Thanks. That works. Just curious though.. if one specifies certain keywords
> to be exporter specific keywords in the backend definition in
> :options-alist, it is evident that those keywords are specifically for
> export. Should the requirement to have "EXPORT_" prefix before them be
> relaxed? Do you foresee things not happening right if we started doing
> that?

I do. User may not be aware of keywords defined in export back-ends. As
a consequence user-defined properties could interfere with export
specific ones. E.g., ":TITLE:" and ":EXPORT_TITLE:" could mean different
things.

> - Make use of the inbuilt EXPORT_ prefix and get rid of the "HUGO_" prefix
> I need exactly that. My idea is to have a single Org file with one subtree
> per a blog post. So each subtree will have meta data about that post, like
> data, categories, etc.

I meant that you probably need to expand the buffer in order to get the
properties. Once this is done, you can return to the original narrowing.

Regards,

-- 
Nicolas Goaziou0x80A93738



Re: [O] Parsing property drawers in subtree scope exports

2017-07-06 Thread Kaushal Modi
On Sat, Jul 1, 2017 at 12:08 PM Nicolas Goaziou 
wrote:

> Kaushal Modi  writes:
>
> > I didn't follow that. Do you mean that the "EXPORT_" is a special
> > prefix?
>
> I do. See (info "(org) Export settings").
>

Thanks! Sorry for not reading that earlier. For reference:

> When exporting sub-trees, special node properties in them can override
the above keywords. They are special because they have an ‘EXPORT_’ prefix.
For example, ‘DATE’ and ‘OPTIONS’ keywords become, respectively,
‘EXPORT_DATE’ and ‘EXPORT_OPTIONS’. Except for ‘SETUPFILE’, all other
keywords listed above have an ‘EXPORT_’ equivalent.


> > Should that be added to these?
> >
> > =
> > :options-alist '((:hugo-front-matter-format "HUGO_FRONT_MATTER_FORMAT"
> nil
> > org-hugo-front-matter-format)
> > (:hugo-tags "HUGO_TAGS" nil nil)
> > =
>
> If you set this, you can access to EXPORT_HUgo_TAGS property
> with :hugo-tags.
>

Thanks. That works. Just curious though.. if one specifies certain keywords
to be exporter specific keywords in the backend definition in
:options-alist, it is evident that those keywords are specifically for
export. Should the requirement to have "EXPORT_" prefix before them be
relaxed? Do you foresee things not happening right if we started doing that?


> > I already tried above, but I don't know how to get the ":HUGO_TAGS" value
> > from the property drawer, in subtreep export only, in the body filter
> (with
> > only body and info available).
>
> (plist-get info :hugo-tags)
>

I was already doing that, but I was missing the "EXPORT_" prefix in the
property drawer keys. Thanks!


> > Otherwise, you simply need to retrieve it and store it before calling
> >> `org-export-to-file' or whatever.
> >
> >
> > Hmm, will give this a try.. may be look at the pre export hook?
>
> You can also do that, if you don't use the "EXPORT_" prefix above.
>

Using "EXPORT_" prefix works, but then the keys become too wordy; example:
EXPORT_HUGO_CATEGORIES.

So I have two options:

- Make use of the inbuilt EXPORT_ prefix and get rid of the "HUGO_" prefix
from the exporter backend definition. Then if categories are specified
per-Org-file, it would look like "#+CATEGORIES: foo bar", and if they are
specified per subtree, it would look like ":EXPORT_CATEGORIES: foo bar" in
the property drawer.
- Do not use the "EXPORT_" keyword in the property drawers, but then either
do the pre-export parsing, or.. above suggestion to update Org ox to not
require "EXPORT_" before FOO if FOO is a special keyword defined in the
backend?


> However, you need to expand the buffer first, because it will be
> narrowed to the current subtree.


I need exactly that. My idea is to have a single Org file with one subtree
per a blog post. So each subtree will have meta data about that post, like
data, categories, etc.
-- 

Kaushal Modi


Re: [O] Parsing property drawers in subtree scope exports

2017-07-01 Thread Nicolas Goaziou
Kaushal Modi  writes:

> I didn't follow that. Do you mean that the "EXPORT_" is a special
> prefix?

I do. See (info "(org) Export settings").

> Should that be added to these?
>
> =
> :options-alist '((:hugo-front-matter-format "HUGO_FRONT_MATTER_FORMAT" nil
> org-hugo-front-matter-format)
> (:hugo-tags "HUGO_TAGS" nil nil)
> =

If you set this, you can access to EXPORT_HUgo_TAGS property
with :hugo-tags.

> I already tried above, but I don't know how to get the ":HUGO_TAGS" value
> from the property drawer, in subtreep export only, in the body filter (with
> only body and info available).

(plist-get info :hugo-tags)

> Otherwise, you simply need to retrieve it and store it before calling
>> `org-export-to-file' or whatever.
>
>
> Hmm, will give this a try.. may be look at the pre export hook?

You can also do that, if you don't use the "EXPORT_" prefix above.
However, you need to expand the buffer first, because it will be
narrowed to the current subtree.

Regards,



Re: [O] Parsing property drawers in subtree scope exports

2017-07-01 Thread Kaushal Modi
Hello,

On Sat, Jul 1, 2017, 3:48 AM Nicolas Goaziou  wrote:

>
> You can write it :EXPORT_FOO: and define it in the back-end options.
>

I didn't follow that. Do you mean that the "EXPORT_" is a special prefix?
Or "EXPORT" is any backend prefix I choose?

Should that be added to these?

=
:options-alist '((:hugo-front-matter-format "HUGO_FRONT_MATTER_FORMAT" nil
org-hugo-front-matter-format)
(:hugo-tags "HUGO_TAGS" nil nil)
=

I already tried above, but I don't know how to get the ":HUGO_TAGS" value
from the property drawer, in subtreep export only, in the body filter (with
only body and info available).

If it is a full document export, I can use the "org export parse headlines"
function (forgot the name, on the phone at the moment) to get the
properties from each headline. But the same doesn't work when exporting
just one sub-tree.

Otherwise, you simply need to retrieve it and store it before calling
> `org-export-to-file' or whatever.


Hmm, will give this a try.. may be look at the pre export hook?

Thank you.
-- 

Kaushal Modi


Re: [O] Parsing property drawers in subtree scope exports

2017-07-01 Thread Nicolas Goaziou
Hello,

Kaushal Modi  writes:

> I have this test Org file:
>
> =
> * Title
> :PROPERTIES:
> :FOO: 123
> :END:
> Something
> =
>
> I am working on an exporter back-end, and I need to get the value of the
> :FOO property
> - During *subtree* export (C-c C-e C-s ..)
> - In the body filter fn. So I have only info and body at my access.
>
> I looked at ox-html.el for hints but that didn't help. In there too, the
> CUSTOM_ID property drawer (picked one example I knew) is not parsed during
> subtreep export.
>
> How can I do this?

It depends. 

You can write it :EXPORT_FOO: and define it in the back-end options.
Otherwise, you simply need to retrieve it and store it before calling
`org-export-to-file' or whatever.

Regards,

-- 
Nicolas Goaziou