From: Ihor Radchenko <yantar92@posteo.net>
To: Orm Finnendahl <orm.finnendahl@selma.hfmdk-frankfurt.de>
Cc: Org mailing list <emacs-orgmode@gnu.org>
Subject: Re: multipage html output
Date: Sat, 17 Aug 2024 14:05:07 +0000 [thread overview]
Message-ID: <87bk1rz1m4.fsf@localhost> (raw)
In-Reply-To: <ZrpbPka08dbcBDsn@orm-t14s>
Orm Finnendahl <orm.finnendahl@selma.hfmdk-frankfurt.de> writes:
>> I do not feel like :multipage-split-function is supposed to be export
>> _option_. It is more internal. That's why :translate-alist, where the
>> internals like templates and transcoders lie.
>
> That's how I had it before, but I reasoned it is not a transcoding
> function either, so I was unsure. Anyway I reversed it.
Thanks!
>> This is not a transcoder's job to export its contents.
>> Please move special handling of org-page AST nodes to `org-export-data'.
>
> done.
> + ((and (eq (org-element-type data) 'org-data)
> + (plist-get info :multipage))
> + (mapcar (lambda (org-page)
> + (org-export-data org-page info))
> + (org-element-contents data)))
> + ;; Element/Object with contents.
I am looking at this, and it feels like a wrong direction to go,
especially if we want to generalize multi-file export to non-pages as
well (e.g. formula exported as mathml file and as a link inside actual
exported .odt file).
Let's try to do it differently:
1. Introduce a new INFO plist field :multipage-pages - a list of extra
pages to be exported in addition to the main document
2. Transocders can populate the list as needed, in addition to their
normal return value, which may be a link to the page, for example
3. "pages" in the list, can be constructed using
`org-export-with-backend' or other usual means to export data.
4. org-export-as will process all the pages from :multipage-pages in
addition to the one returned by `org-export-data'.
I believe that this approach should be the least breaking and the most flexible.
WDYT?
>> > (info (cl-list* ;; add :tl-headline and :tl-headline-number to info
>> > :tl-headline headline
>> > :tl-headline-number
>> > (alist-get
>> > headline
>> > (plist-get info :headline-numbering))
>> > info))
>>
>> May you please explain what is the purpose of constructing custom INFO
>> plist, what all these parameters do, and why you re-do the export again
>> in the transcoder discarding the CONTENTS argument provided?
>> ...
> :tl-headline and :tl-headline-numbering are needed for constructing
> the side toc and the footnote section on each page. They are needed in
> org-html-multipage-toc, called by org-html-multipage-template and in
> org-html-footnote-section called from
> org-html-multipage-inner-template. At that stage there is no
> information about the page, the templates are on. Let me know if you
> have a better idea how to provide/access that information, I found a
> temporary addition to info the most natural way. As it will be needed
> by any multipage backend which wants to determine the footnotes for a
> page, I think there should be a generic solution in ox.el.
>
> As :tl-headline-numbering can be determined from the tl-headline
> within org-html-multipage-toc, I can get rid of that if you
> prefer. Let me know how to proceed.
With my idea above, we handle the actual page rendering to a custom
backend, which can reuse the normal TOC machinery, possibly encapsulated
into sub-backend parameters. We can provide any additional info that is
necessary within such sub-backend.
Do note that we should not assume that each page corresponds to a
headline in ox.el. It may be anything.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
next prev parent reply other threads:[~2024-08-17 14:04 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-03 9:44 multipage html output Orm Finnendahl
2024-07-03 10:33 ` Dr. Arne Babenhauserheide
2024-07-03 10:58 ` Christian Moe
2024-07-03 11:05 ` Ihor Radchenko
2024-07-03 14:34 ` Christian Moe
2024-07-04 9:50 ` Orm Finnendahl
2024-07-04 11:41 ` Ihor Radchenko
2024-07-04 13:33 ` Orm Finnendahl
2024-07-04 16:20 ` Ihor Radchenko
2024-07-07 19:33 ` Orm Finnendahl
2024-07-08 15:29 ` Ihor Radchenko
2024-07-08 19:12 ` Orm Finnendahl
2024-07-09 17:55 ` Ihor Radchenko
2024-07-10 18:03 ` Orm Finnendahl
2024-07-10 18:53 ` Ihor Radchenko
2024-07-07 20:50 ` Orm Finnendahl
2024-07-08 15:05 ` Ihor Radchenko
2024-07-08 15:41 ` Orm Finnendahl
2024-07-08 15:56 ` Ihor Radchenko
2024-07-08 19:18 ` Orm Finnendahl
2024-07-09 18:08 ` Ihor Radchenko
2024-07-10 19:37 ` Orm Finnendahl
2024-07-11 12:35 ` Ihor Radchenko
2024-07-13 7:44 ` Orm Finnendahl
2024-07-13 10:13 ` Ihor Radchenko
2024-07-13 11:01 ` Orm Finnendahl
2024-07-23 8:56 ` Orm Finnendahl
2024-07-23 10:24 ` Ihor Radchenko
2024-07-23 11:35 ` Orm Finnendahl
2024-07-23 12:52 ` Ihor Radchenko
2024-07-23 14:56 ` Orm Finnendahl
[not found] ` <Zp_EhDDxxYRWKFPL@orm-t14s>
[not found] ` <874j8g2lvq.fsf@localhost>
2024-07-23 15:36 ` Orm Finnendahl
2024-07-23 14:13 ` Ihor Radchenko
[not found] ` <Zp_b2lL2SzDswa-w@orm-t14s>
2024-07-23 17:10 ` Ihor Radchenko
2024-07-23 20:35 ` Orm Finnendahl
2024-07-24 10:20 ` Ihor Radchenko
2024-07-24 11:24 ` Orm Finnendahl
2024-07-25 9:49 ` Orm Finnendahl
2024-07-25 9:57 ` Ihor Radchenko
2024-07-25 9:57 ` Orm Finnendahl
2024-07-25 10:04 ` Ihor Radchenko
2024-07-25 14:59 ` Orm Finnendahl
2024-07-27 19:24 ` Orm Finnendahl
2024-07-27 19:39 ` Ihor Radchenko
2024-08-05 16:52 ` Orm Finnendahl
2024-08-05 18:22 ` Ihor Radchenko
2024-08-06 7:19 ` Orm Finnendahl
2024-08-06 18:47 ` Orm Finnendahl
2024-08-06 20:04 ` Orm Finnendahl
2024-08-10 12:32 ` Ihor Radchenko
2024-08-11 10:54 ` Orm Finnendahl
2024-08-11 13:47 ` Ihor Radchenko
2024-08-11 14:44 ` Orm Finnendahl
2024-08-12 8:35 ` Orm Finnendahl
2024-08-12 17:10 ` Ihor Radchenko
2024-08-12 18:58 ` Orm Finnendahl
2024-08-17 7:21 ` Rudolf Adamkovič
2024-08-17 14:05 ` Ihor Radchenko [this message]
2024-08-19 16:31 ` Orm Finnendahl
2024-08-22 12:27 ` Ihor Radchenko
2024-07-26 8:22 ` Orm Finnendahl
2024-07-27 13:01 ` Ihor Radchenko
2024-07-27 14:25 ` Orm Finnendahl
2024-07-23 14:19 ` Ihor Radchenko
2024-07-23 15:13 ` Orm Finnendahl
2024-07-23 16:20 ` Ihor Radchenko
2024-07-23 17:02 ` Orm Finnendahl
2024-07-23 17:13 ` Ihor Radchenko
2024-07-23 19:00 ` Orm Finnendahl
2024-07-03 21:11 ` Rudolf Adamkovič
-- strict thread matches above, loose matches on Subject: below --
2024-07-06 5:47 Pedro Andres Aranda Gutierrez
2024-07-06 9:04 ` Orm Finnendahl
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=87bk1rz1m4.fsf@localhost \
--to=yantar92@posteo.net \
--cc=emacs-orgmode@gnu.org \
--cc=orm.finnendahl@selma.hfmdk-frankfurt.de \
/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).