emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Feature Request? #+CONFIG keyword - to abstract more configuration into org files,
@ 2009-10-22 19:55 Tim O'Callaghan
  2009-10-22 20:10 ` Bernt Hansen
  0 siblings, 1 reply; 7+ messages in thread
From: Tim O'Callaghan @ 2009-10-22 19:55 UTC (permalink / raw)
  To: org-mode

Simply,

Expand the #+<KEYWORD> in-org file configuration possibilities with
a #+CONFIG or similar keyword.

The idea being to abstract more configuration into actual org files,
and let extensions have an easy way to use #+KEYWORD configuration.  I
expect it could also be used to auto-load suitably registered
extensions/contributions.

So for example, my org-action-verb extension might use a line like:

#+CONFIG org-action-verb TODO|NEXT Address Ask Buy Change Clarify

Where there is handler function CONFIG:org-action-verb, that is
defined as auto-loadable and called with the rest of the line to
configure the extension.

I guess this mechanism could also be extended to abstract more
core-org configuration - such as agenda keys, stuck projects, or
whatever.

what do people think?

Tim.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Feature Request? #+CONFIG keyword - to abstract more configuration into org files,
  2009-10-22 19:55 Feature Request? #+CONFIG keyword - to abstract more configuration into org files, Tim O'Callaghan
@ 2009-10-22 20:10 ` Bernt Hansen
  2009-10-22 20:23   ` Matt Lundin
  0 siblings, 1 reply; 7+ messages in thread
From: Bernt Hansen @ 2009-10-22 20:10 UTC (permalink / raw)
  To: Tim O'Callaghan; +Cc: org-mode

"Tim O'Callaghan" <tim.ocallaghan@gmail.com> writes:

> Simply,
>
> Expand the #+<KEYWORD> in-org file configuration possibilities with
> a #+CONFIG or similar keyword.
>
> The idea being to abstract more configuration into actual org files,
> and let extensions have an easy way to use #+KEYWORD configuration.  I
> expect it could also be used to auto-load suitably registered
> extensions/contributions.
>
> So for example, my org-action-verb extension might use a line like:
>
> #+CONFIG org-action-verb TODO|NEXT Address Ask Buy Change Clarify
>
> Where there is handler function CONFIG:org-action-verb, that is
> defined as auto-loadable and called with the rest of the line to
> configure the extension.
>
> I guess this mechanism could also be extended to abstract more
> core-org configuration - such as agenda keys, stuck projects, or
> whatever.
>
> what do people think?

Can you use the #+BIND: keyword to set arbitrary variables and achieve
the same result?

-Bernt

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Feature Request? #+CONFIG keyword - to abstract more configuration into org files,
  2009-10-22 20:10 ` Bernt Hansen
@ 2009-10-22 20:23   ` Matt Lundin
  2009-10-22 20:28     ` Carsten Dominik
  0 siblings, 1 reply; 7+ messages in thread
From: Matt Lundin @ 2009-10-22 20:23 UTC (permalink / raw)
  To: Bernt Hansen; +Cc: Tim O'Callaghan, org-mode

Bernt Hansen <bernt@norang.ca> writes:

> "Tim O'Callaghan" <tim.ocallaghan@gmail.com> writes:
>
>> Expand the #+<KEYWORD> in-org file configuration possibilities with
>> a #+CONFIG or similar keyword.
>>
>> The idea being to abstract more configuration into actual org files,
>> and let extensions have an easy way to use #+KEYWORD configuration.  I
>> expect it could also be used to auto-load suitably registered
>> extensions/contributions.
>>
>> So for example, my org-action-verb extension might use a line like:
>>
>> #+CONFIG org-action-verb TODO|NEXT Address Ask Buy Change Clarify
>>
>> Where there is handler function CONFIG:org-action-verb, that is
>> defined as auto-loadable and called with the rest of the line to
>> configure the extension.
>>
>> I guess this mechanism could also be extended to abstract more
>> core-org configuration - such as agenda keys, stuck projects, or
>> whatever.
>>
>> what do people think?
>
> Can you use the #+BIND: keyword to set arbitrary variables and achieve
> the same result?

If I understand it correctly, #+BIND only works for export related
variables.

For local options that are not part of the default in-buffer syntax, I
use Local Variables. E.g.,

,----
| * COMMENT Local Variables
| # Local Variables:
| # org-footnote-section: "References"
| # End:
`----

Best,
Matt

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Re: Feature Request? #+CONFIG keyword - to abstract more configuration into org files,
  2009-10-22 20:23   ` Matt Lundin
@ 2009-10-22 20:28     ` Carsten Dominik
  2009-10-22 21:35       ` Tim O'Callaghan
  2009-10-22 21:52       ` Matthew Lundin
  0 siblings, 2 replies; 7+ messages in thread
From: Carsten Dominik @ 2009-10-22 20:28 UTC (permalink / raw)
  To: Matt Lundin; +Cc: Bernt Hansen, Tim O'Callaghan, org-mode


On Oct 22, 2009, at 10:23 PM, Matt Lundin wrote:

> Bernt Hansen <bernt@norang.ca> writes:
>
>> "Tim O'Callaghan" <tim.ocallaghan@gmail.com> writes:
>>
>>> Expand the #+<KEYWORD> in-org file configuration possibilities with
>>> a #+CONFIG or similar keyword.
>>>
>>> The idea being to abstract more configuration into actual org files,
>>> and let extensions have an easy way to use #+KEYWORD  
>>> configuration.  I
>>> expect it could also be used to auto-load suitably registered
>>> extensions/contributions.
>>>
>>> So for example, my org-action-verb extension might use a line like:
>>>
>>> #+CONFIG org-action-verb TODO|NEXT Address Ask Buy Change Clarify
>>>
>>> Where there is handler function CONFIG:org-action-verb, that is
>>> defined as auto-loadable and called with the rest of the line to
>>> configure the extension.
>>>
>>> I guess this mechanism could also be extended to abstract more
>>> core-org configuration - such as agenda keys, stuck projects, or
>>> whatever.
>>>
>>> what do people think?
>>
>> Can you use the #+BIND: keyword to set arbitrary variables and  
>> achieve
>> the same result?
>
> If I understand it correctly, #+BIND only works for export related
> variables.


Nope, it works for any variables.  It is special that is *also* works  
for export variables, which is complicated because the *output buffer*  
is current when export happens, so local variables would be out of  
scope.

- Carsten

>
> For local options that are not part of the default in-buffer syntax, I
> use Local Variables. E.g.,
>
> ,----
> | * COMMENT Local Variables
> | # Local Variables:
> | # org-footnote-section: "References"
> | # End:
> `----
>
> Best,
> Matt
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Re: Feature Request? #+CONFIG keyword - to abstract more configuration into org files,
  2009-10-22 20:28     ` Carsten Dominik
@ 2009-10-22 21:35       ` Tim O'Callaghan
  2009-10-22 21:52       ` Matthew Lundin
  1 sibling, 0 replies; 7+ messages in thread
From: Tim O'Callaghan @ 2009-10-22 21:35 UTC (permalink / raw)
  To: org-mode

2009/10/22 Carsten Dominik <carsten.dominik@gmail.com>:
>
> On Oct 22, 2009, at 10:23 PM, Matt Lundin wrote:
>
>> Bernt Hansen <bernt@norang.ca> writes:
>>
>>> "Tim O'Callaghan" <tim.ocallaghan@gmail.com> writes:
>>>
>>>> Expand the #+<KEYWORD> in-org file configuration possibilities with
>>>> a #+CONFIG or similar keyword.
>>>>
>>>> The idea being to abstract more configuration into actual org files,
>>>> and let extensions have an easy way to use #+KEYWORD configuration.  I
>>>> expect it could also be used to auto-load suitably registered
>>>> extensions/contributions.
>>>>
>>>> So for example, my org-action-verb extension might use a line like:
>>>>
>>>> #+CONFIG org-action-verb TODO|NEXT Address Ask Buy Change Clarify
>>>>
>>>> Where there is handler function CONFIG:org-action-verb, that is
>>>> defined as auto-loadable and called with the rest of the line to
>>>> configure the extension.
>>>>
>>>> I guess this mechanism could also be extended to abstract more
>>>> core-org configuration - such as agenda keys, stuck projects, or
>>>> whatever.
>>>>
>>>> what do people think?
>>>
>>> Can you use the #+BIND: keyword to set arbitrary variables and achieve
>>> the same result?
>>
>> If I understand it correctly, #+BIND only works for export related
>> variables.
>
>
> Nope, it works for any variables.  It is special that is *also* works for
> export variables, which is complicated because the *output buffer* is
> current when export happens, so local variables would be out of scope.
>
> - Carsten
>

The docs do not explain this. I'll look into it.

>>
>> For local options that are not part of the default in-buffer syntax, I
>> use Local Variables. E.g.,
>>
>> ,----
>> | * COMMENT Local Variables
>> | # Local Variables:
>> | # org-footnote-section: "References"
>> | # End:
>> `----
>>

I'm using something similar at the moment, but i was thinking of a
mechanism that could also be used to load and initialise core and
contributed code without having to have a (require '<module>) or an
(eval <find org site-lisp>) in the org file(s). I'm currently working
on getting someone else to track my org files, and i don't want to
have them track my .emacs as well. The auto-loading would be more
useful than  a unified abstraction of a configuration mechanism for
this.

Tim.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Feature Request? #+CONFIG keyword - to abstract more configuration into org files,
  2009-10-22 20:28     ` Carsten Dominik
  2009-10-22 21:35       ` Tim O'Callaghan
@ 2009-10-22 21:52       ` Matthew Lundin
  2009-10-22 22:11         ` Carsten Dominik
  1 sibling, 1 reply; 7+ messages in thread
From: Matthew Lundin @ 2009-10-22 21:52 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: Bernt Hansen, Matt Lundin, org-mode, Tim O'Callaghan

Carsten Dominik <carsten.dominik@gmail.com> writes:

> On Oct 22, 2009, at 10:23 PM, Matt Lundin wrote:
>
>> Bernt Hansen <bernt@norang.ca> writes:
>>
>>> "Tim O'Callaghan" <tim.ocallaghan@gmail.com> writes:
>>>
>>> Can you use the #+BIND: keyword to set arbitrary variables and
>>> achieve
>>> the same result?
>>
>> If I understand it correctly, #+BIND only works for export related
>> variables.
>
>
> Nope, it works for any variables.  It is special that is *also* works
> for export variables, which is complicated because the *output buffer*
> is current when export happens, so local variables would be out of
> scope.
>
> - Carsten
>

Thanks for the explanation. I aplogize if I'm missing something, but I
can't seem to get the bind line to work. I've placed the following line
at the top of an org file:

,----
| #+BIND: org-footnote-section "References"
`----

...and yet after killing, reloading, and refreshing the buffer, the
footnotes still appear in the section in which they are entered, in
keeping with my global org-footnote-section setting (nil).

Out of curiosity, I've also tried the following line to no avail:

,----
| #+BIND: org-footnote-section t
`----

I've tried setting org-export-allow-BIND and org-export-allow-BIND-local
to t, but the same results occur.

On the other hand, when I use local variables, as below, the footnotes
appear under the headline "References".

>> ,----
>> | * COMMENT Local Variables
>> | # Local Variables:
>> | # org-footnote-section: "References"
>> | # End:
>> `----

Do I have the correct syntax for #+bind? Is there another variable that
activates "bind" syntax? Or does it perhaps work only for certain
variables?

Thanks! I'll be glad to write an FAQ about this, seeing as I'm quickly
turning it into a frequently asked question. :)

- Matt

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Feature Request? #+CONFIG keyword - to abstract more configuration into org files,
  2009-10-22 21:52       ` Matthew Lundin
@ 2009-10-22 22:11         ` Carsten Dominik
  0 siblings, 0 replies; 7+ messages in thread
From: Carsten Dominik @ 2009-10-22 22:11 UTC (permalink / raw)
  To: Matthew Lundin; +Cc: Bernt Hansen, Tim O'Callaghan, org-mode


On Oct 22, 2009, at 11:52 PM, Matthew Lundin wrote:

> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
>> On Oct 22, 2009, at 10:23 PM, Matt Lundin wrote:
>>
>>> Bernt Hansen <bernt@norang.ca> writes:
>>>
>>>> "Tim O'Callaghan" <tim.ocallaghan@gmail.com> writes:
>>>>
>>>> Can you use the #+BIND: keyword to set arbitrary variables and
>>>> achieve
>>>> the same result?
>>>
>>> If I understand it correctly, #+BIND only works for export related
>>> variables.
>>
>>
>> Nope, it works for any variables.  It is special that is *also* works
>> for export variables, which is complicated because the *output  
>> buffer*
>> is current when export happens, so local variables would be out of
>> scope.
>>
>> - Carsten
>>
>
> Thanks for the explanation. I aplogize if I'm missing something, but I
> can't seem to get the bind line to work. I've placed the following  
> line
> at the top of an org file:
>
> ,----
> | #+BIND: org-footnote-section "References"
> `----
>
> ...and yet after killing, reloading, and refreshing the buffer, the
> footnotes still appear in the section in which they are entered, in
> keeping with my global org-footnote-section setting (nil).
>
> Out of curiosity, I've also tried the following line to no avail:
>
> ,----
> | #+BIND: org-footnote-section t
> `----
>
> I've tried setting org-export-allow-BIND and org-export-allow-BIND- 
> local
> to t, but the same results occur.
>
> On the other hand, when I use local variables, as below, the footnotes
> appear under the headline "References".
>
>>> ,----
>>> | * COMMENT Local Variables
>>> | # Local Variables:
>>> | # org-footnote-section: "References"
>>> | # End:
>>> `----
>
> Do I have the correct syntax for #+bind? Is there another variable  
> that
> activates "bind" syntax? Or does it perhaps work only for certain
> variables?

You are right, I was mistaken!  In fact, BIND works for any variables,  
but only during export :-)

- Carsten

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-10-22 22:11 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-22 19:55 Feature Request? #+CONFIG keyword - to abstract more configuration into org files, Tim O'Callaghan
2009-10-22 20:10 ` Bernt Hansen
2009-10-22 20:23   ` Matt Lundin
2009-10-22 20:28     ` Carsten Dominik
2009-10-22 21:35       ` Tim O'Callaghan
2009-10-22 21:52       ` Matthew Lundin
2009-10-22 22:11         ` Carsten Dominik

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).