emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: emacs-orgmode@gnu.org
Subject: Re: Exporting to multiple files
Date: Wed, 01 Oct 2014 11:20:29 +0800	[thread overview]
Message-ID: <87oatwtr0i.fsf@ericabrahamsen.net> (raw)
In-Reply-To: 87mw9ghdtk.fsf@wmi.amu.edu.pl

Marcin Borkowski <mbork@wmi.amu.edu.pl> writes:

> On 2014-03-09, at 02:34, Marcin Borkowski wrote:
>
>> Hi all,
>>
>> I'd like to export an Org-mode file to /multiple/ HTML files.  For
>> instance, I might want to convert all first and second level headings
>> to files, and third-level headings to <h1>, fourth-level ones to <h2>
>> inside these files etc.  Is that possible?  I looked into the docs, but
>> didn't find anything like this.
>
> Hi all,
>
> I'm now coming back to this old question of mine, now a bit more
> determined to actually code something (as opposed to just thinking about
> it).
>
> One question: is it a good idea to implement my custom options, set in
> the
>
> #+:OPTIONS
>
> line?  If yes (that's what I assume), how to do it?

I'm pretty sure there's nothing out of the box that does this.

I've spent time thinking about this off and on in the past, as I've been
(very slowly) chewing through a direct-to-epub export backend, and it
can be nice to have multiple HTML files in the epub package. Splitting
the files is a bit of a problem, but the real pain in the neck is
re-writing internal links so they're still valid. I thought about using
Org publishing mechanism instead of exporting, but the two systems seem
pretty locked in their paradigms: publishing is many-to-many, exporting
is one-to-one (or many-to-one, with includes). There's no built-in
option for one-to-many.

If you don't care about internal links, you'll still have to largely
short-circuit the export process. You could use org-element-map to zip
over the headlines, breaking off subtrees where appropriate and putting
them in a temporary Org-mode buffer, using org-promote-subtree to change
the depth, and then exporting the buffer to an appropriate file.

Or you could go the parsed route: split the file into buffers, parse
each buffer, remove top-level headings, increment the :level property of
all remaining headings, and then use `org-export-data' to get the HTML.

I'm sort of just thinking out loud here, I'm not sure what the best
approach would be.

Eric

  reply	other threads:[~2014-10-01  3:21 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-09  1:34 Exporting to multiple files Marcin Borkowski
2014-03-09  9:34 ` Marcin Borkowski
2014-03-13 11:59   ` Bastien
2014-03-15 11:11     ` Marcin Borkowski
2014-03-13 13:11   ` Fabrice Popineau
2014-03-13 17:38 ` Richard Lawrence
2014-03-15 11:13   ` Marcin Borkowski
2014-04-06 20:45     ` Sacha Chua
2014-04-07 13:45       ` Iannis Zannos
2014-09-30 23:46 ` Marcin Borkowski
2014-10-01  3:20   ` Eric Abrahamsen [this message]
2014-10-01 12:44     ` Nicolas Goaziou
2014-10-01 14:07       ` Marcin Borkowski
2014-10-01 15:00         ` Nicolas Goaziou
2014-10-01 17:17           ` Eric Abrahamsen
2014-10-01 19:12             ` Nicolas Goaziou
2014-10-02  3:22               ` Eric Abrahamsen
2014-10-01  9:25   ` Rasmus

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=87oatwtr0i.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=emacs-orgmode@gnu.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).