|
From: | Rasmus |
Subject: | Re: [O] [ox-publish, patch] More flexible sitemaps |
Date: | Fri, 27 May 2016 18:41:03 +0200 |
User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) |
Hi, Thanks for the comments. Nicolas Goaziou <address@hidden> writes: >> (org-publish-find-subtitle): New function. >> (org-publish-org-sitemap-as-tree): New function. >> (org-publish--find-property): Find arbirary property. >> (org-publish-project-alist): Document changes. >> * doc/org.texi (Sitemap): Update documentation. > > All in all, I think this deserves to be split into 3 patches: one for > the preamble-postamble feature, another one for implementing > `org-publish--find-property' and associated refactoring, and the latter > for the sitemap itself. This was by far the hardest part... >> +(autoload 'message-flatten-list "message") >> +(autoload 'dired-tree-lessp "dired-aux") > > I hope we can avoid these. In particular, why are you using > `dired-tree-lessp' instead of `org-publish-compare-directory-files'? AFAIK, org-publish-compare-directory-files can’t be used on its own. It requires variables to be bound around it, e.g. org-publish-sitemap-ignore-case. See org-publish-get-base-files. (I don’t know why the project plist isn’t being passed around.) Anyway, I’m not using neither of these files anymore. Aside: the way ox-publish order files is not super, IMO, as it takes directory into account even if one use a flat list and chronological ordering. That’s a problem for another day, though. >> +(defun org-publish--tree-assoc (key tree) >> +(defun org-pubish--order-files-by-dir-tree (files) > > I don't understand why you need the 2 functions above. You are working > with plain lists, not nested ones. Besides, once the file name are > standardized, isn't tree order equivalent to lexicographic one? Removed. >> +(defun org-publish-find-subtitle (file &optional reset) >> + "Find the title of FILE in project." >> + (org-publish--find-property file :subtitle reset)) > > I don't think this would work. :subtitle is not defined in default > export properties, it is back-end specific. `org-export-get-environment' > without any argument, doesn't catch these. You need to somehow provide > it the back-end. You are right. The "problem" is that the sitemap is done in a before the backend is known. So we can’t do (org-export-get-environment BACKEND). OTOH, only allowing ox.el keywords is too limiting IMO. E.g. a blog sitemap wouldn’t be able to include keywords, though a desirable format for each entry is TITLE DATE KEYWORDS #+INCLUDE: "file.org::lead" But KEYWORDS is specific to ox-html... A couple of workarounds: 1. Guess the backend(s) from the name of :publishing-function. This is not very robust... 2. Find the keyword by search in the file, thus sidestepping org-export-get-environment. It is is not without problems. E.g. if my file contains this, I’d probably only key1. #+Keywords: key1 #+Keywords: key2 3. Go through backend for org-export-get-environment until something is Found. I do this now. Rasmus -- This is the kind of tedious nonsense up with which I will not put
0001-ox-publish-Tiny-refactor.patch
Description: Text Data
0002-ox-publish-Get-property-from-file.patch
Description: Text Data
0003-ox-publish-Optionally-add-dirs-to-project-files.patch
Description: Text Data
0004-ox-publish-More-flexible-sitemap-formatting.patch
Description: Text Data
0005-ox-publish-Sitemap-preamble-and-postamble.patch
Description: Text Data
0006-org.texi-Document-ox-publish-sitemap-changes.patch
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |