Matt Lundin writes: > Bastien writes: > >> Matt Lundin writes: >> >>> So to be safe, we could do the following in org-publish-find-date and >>> org-publish-find-title... >>> >>> (org-export-with-buffer-copy (org-export-get-environment)) >>> >>> What do you think? >> >> Yes, this sounds right, please go ahead. >> >> I applied your fix in the maint branch, so if you need to revert it >> please do the revert from there first. > > Here's the patch. There's no need to revert anything, as this builds > upon my previous commit. > > From 72217e53103a82e0397d1435331e3eed10f0fbd5 Mon Sep 17 00:00:00 2001 > From: Matt Lundin > Date: Tue, 29 Jul 2014 10:39:57 -0500 > Subject: [PATCH 1/2] Call org-export-get-environment in buffer copy > > * lisp/ox-publish.el: (org-publish-find-title) (org-publish-find-date) > Make sure to call org-export-get-environment in copy of > buffer. Otherwise, #+bind variables meant for export can be set in > live buffers. Please *do not apply* the previous patch. Instead, I've attached an optimized version. All in all this patch + commit 507244d56b055e7595ba94fe89d45c7ddb2559df modestly improves the performance of org-publish-org-sitemap. On a directory of 104 files, it used to take this long... org-publish-org-sitemap 1 10.508871433 10.508871433 ...to generate a sitemap. With this patch and commit 507244d, it takes this long... org-publish-org-sitemap 1 7.700290794 7.700290794 Clearly, this is still very inadequate, but it is an improvement. I would love to use the built in site-map functions, but they are simply to slow for any larger projects. Could we do something like this to speed it up? --8<---------------cut here---------------start------------->8--- (with-temp-buffer (insert-file-contents file) (goto-char (point-min)) (when (re-search-forward "^#\\+TITLE:" nil t) (org-element-at-point))) --8<---------------cut here---------------end--------------->8--- Until then, here's the patch.