emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Hook Function Examples


From: Mark Elston
Subject: Re: [Orgmode] Hook Function Examples
Date: Sun, 24 Jan 2010 22:21:21 -0800
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20100111 Thunderbird/3.0.1

On 1/24/2010 9:24 PM, Nick Dokos wrote:
Mark Elston<address@hidden>  wrote:

I am trying to make use of some of the hooks for exporting and haven't
found any docs about what they take or how to make use of them (elisp
is *not* my native language).


The Emacs Lisp Reference manual has a section (23.1: Hooks) on hooks,
but I'm not sure how helpful it will be to you. The most important note
is that "normal" hook variables are, by convention, named
<foo>-hook. "normal" means that the functions that are added to the hook
take no arguments and return no useful values.

In particular, I am trying to figure out how to use the following
to see if any of them are going to help me:

  org-export-preprocess-hook
  org-export-preprocess-after-tree-selection-hook
  org-export-preprocess-final-hook

Any examples of a hook function for these would help a lot.  In
particular, what are the parameters, is the point "looking at"
anything in particular, etc.


Use the source, Luke! (erm... Mark!)

  C-h v org-export-preprocess-hook<RET>

gives me:

  (org-export-blocks-preprocess)


Thanks, Nick.  I had checked a few hooks (but not that one) and
couldn't find any that had any functions assigned.

so we have here an example of a hook function!

  C-h f org-export-blocks-preprocess<RET>

gives you the function's doc string, including a link to where it is
defined, and clicking on the link will take you to the function: no
params (it is a "normal" hook after all), and I think you can make no
assumptions about the context. In particular, the above function wraps
everything in a save-excursion, goes to the beginning of the buffer and
searches for interesting things, doing something on each interesting
thing it finds.

OK.  From what I read I am assuming that a buffer is created with some
already-processed (though not completely) org data as its initial
content.  Then, at some point, these hook functions are called on this
new buffer.  I assume this is the case since you wouldn't want to go
modifying the original buffer - though this is not stated anywhere that
I can find.

Some hook functions apparently *do* take parameters (e.g.
org-cycle-hook, etc) and I wasn't sure about the ones that didn't
mention any.

I was just trying to find my way and didn't have a map of what was
where.  Even the org-export-blocks-preprocess()  function is a little
difficult to wade through for someone not really familiar with elisp.
I think I have pieced it together, though.  This may give me what I need
to do what I want (remove some specific kinds of headers when creating
certain LaTeX files).

Are my assumptions above correct, then?

Mark





reply via email to

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