emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Tom Breton (Tehom)" <tehom@panix.com>
To: emacs-orgmode@gnu.org
Subject: Hook request and patch
Date: Mon, 29 Dec 2008 23:22:32 -0500 (EST)	[thread overview]
Message-ID: <5483.66.30.178.137.1230610952.squirrel@mail.panix.com> (raw)

Motivating incident: I was exporting some files and I wanted to
process a file after I included it.  Using "#+INCLUDE" I could include
it and I could tell it to use "BEGIN_XXX" "END_XXX" so my code could
find it.

But I couldn't process it, because org-export-preprocess-string calls
`org-export-preprocess-hook' before it handles "#+INCLUDE".

I didn't want to move org-export-preprocess-hook because for all I
know there's a good reason it comes first.  Similarly for the timing
of "#+INCLUDE".

So I ask for a hook that is called after includes are handled.  Diffs
appended.

Another advantage: `org-update-all-dblocks' didn't seem to work in
org-export-preprocess-hook because the working buffer isn't yet in
org-mode when it's called, but works in the new hook.

Tom Breton (Tehom)

*** old-org-exp.el	2008-12-18 18:26:05.000000000 -0500
--- org-exp.el	2008-12-29 23:10:46.000000000 -0500
***************
*** 297,302 ****
--- 297,305 ----
  (defvar org-export-preprocess-hook nil
    "Hook for preprocessing an export buffer.
  Pretty much the first thing when exporting is running this hook.")
+ (defvar org-export-midprocess-hook nil
+   "Hook for processing an export buffer after file inclusions.
+ Run after file inclusions and tree exclusions.")

  (defgroup org-export-translation nil
    "Options for translating special ascii sequences for the export
backends."
***************
*** 1522,1527 ****
--- 1525,1532 ----
        ;; Find matches for radio targets and turn them into internal links
        (org-export-mark-radio-links)

+       (run-hooks 'org-export-midprocess-hook)
+
        ;; Find all links that contain a newline and put them into a
single line
        (org-export-concatenate-multiline-links)

             reply	other threads:[~2008-12-30  4:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-30  4:22 Tom Breton (Tehom) [this message]
2008-12-31  8:45 ` Carsten Dominik
2008-12-31 18:54   ` Tom Breton (Tehom)
2009-01-01  9:04     ` Carsten Dominik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5483.66.30.178.137.1230610952.squirrel@mail.panix.com \
    --to=tehom@panix.com \
    --cc=emacs-orgmode@gnu.org \
    --subject='Re: Hook request and patch' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Code repositories for project(s) associated with this 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).