Hi Ihor >> Well... I think that I need to rethink it again. I still do not have a >> fully clear idea on how to incorporate multipage export into the >> existing APIs. >> >> May take some time. >> ... > > It is taking way too long. And, unfortunately, it is still tricky for > me to dedicate sufficient time to think about the best design here (I > drafted several attempts but ultimately did not like any of the ideas I > had).
I was looking into it as well. I came up with a solution similar what most Sphinx themes as doing (e.g. [1]). I have a function which generates a file tree (with some sorting depending on a prefix) which is converted to a html nav element. I replace the html-home/up-format with this nav element and leave the rest as normal html export. This functionality could maybe be added as an extra settings option to the html export in the org-publish-project-alist. > In an attempt to get something going on for this effort, I am CCing > Kaushal Modi, the ox-hugo maintainer. AFAIK, ox-hugo supports multipage > export functionality, so Kaushal might hopefully have some good ideas he > can share on getting general support for multipage export in ox.el. > > -- > Ihor Radchenko // yantar92, > Org mode maintainer, > 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> here the function to build the file tree: (defun org-files-tree (directory file-match dir-exclude &optional root) (let ((root (or root directory))) (mapcar (lambda (file) `(,(f-relative file root) ,(cond ((f-file? file) (org-no-properties (car (org-publish-find-property file :title '(""))))) ((f-directory? file) (org-files-tree file file-match dir-exclude root))))) (f-entries directory (lambda (file) (or (and (f-file? file) (string-match-p file-match (f-filename file))) (and (f-directory? file) (not (string-match-p dir-exclude (f-filename file)))))))))) and here to convert it to html (defun html-elements-files-tree (files-tree ext dir-prefix &optional root) "Create html files tree markup from the entries of paths and link names in FILES-TREE." (let ((root (or root "/"))) (sxml-to-xml `(ul ,(seq-reduce (lambda (a b) (concat a "\n" b)) (mapcar (lambda (entry) (let* ((link-path (f-join root (f-swap-ext (nth 0 entry) ext))) (name (nth 1 entry))) (sxml-to-xml `(li ,(cond ((stringp name) `(a (@ (href ,link-path)) ,name)) ((listp name) (let* ((subdir (f-filename (f-no-ext link-path))) (subdir-no-prefix (nth 1 (s-match dir-prefix subdir)))) (concat (sxml-to-xml `(p ,subdir-no-prefix)) "\n" (html-elements-files-tree name ext dir-prefix root))))))))) files-tree) ""))))) excuse my bad elisp I am an absolute beginner... [1] https://sphinx-themes.org/sample-sites/furo/