Hello, Eric Abrahamsen <e...@ericabrahamsen.net> writes:
> I've attached a minimum org file that shows what I'm trying to do: > essentially to attach a hook to the export process that ends up calling > org-map-entries to make alterations to the file just before it's > exported. > > As I've got it now, the hook does change the org buffer, but those > changes are *not* reflected in the exported output. I can only guess > that somehow the export process is able to continue on before the > org-map-entries results are returned? Doesn't seem likely, but... > > This is actually kind of the opposite of what I'd like: to have the > changes *only* reflected in the export, and leave the original buffer > unchanged. On the other hand, I can see what thought and care has gone > into setting up a clone buffer for export (and I do need to rely on > buffer-local variables), so maybe an (undo) is my best solution for > returning the buffer to its pre-export state. > > But I would like the changes to show up in the exported file! The problem is not directly related to the export framework, but to its relationship with `org-map-entries'. If you use the following function: (defun before-export-test (backend) ;; (org-map-entries 'test-map "TODO=\"TODO\"" 'file) (while (re-search-forward "^\\*+ TODO" nil t) (test-map))) it should work. I don't know why `org-map-entries' behaves badly with export. Meanwhile, I suggest to not use this function for export hooks. Regards, -- Nicolas Goaziou