* lisp/ox-publish.el (org-publish): Ensure asynchronous process
doesn't encounter :components parts in the project, as it may not
know how to expand them.
Reported-by: Julien Cubizolles <j.cubizolles@free.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/92319>
* lisp/ox.el (org-export-async-start): Limit first argument to lambda
expressions.
* lisp/ox-publish.el (org-publish, org-publish-all,
org-publish-current-file): Replace `ignore', per limit stated above.
Due to a hack allowing to provide quasi-quoted lambda expressions,
symbols are not allowed as result handler. This limitation is not
much of a problem as `org-export-async-start' is only meant to be used
internally.
* lisp/ox-publish.el: (org-publish-find-title) (org-publish-find-date)
Make sure to call org-export-get-environment in copy of buffer if
emacs is already visiting. Otherwise, #+bind variables meant for
export can be set in live buffers.
This patch also optimizes the above functions by inhibiting
org-startup on buffers emacs visits temporarily.
* lisp/ox-publish.el: (org-publish-find-title) (org-publish-find-date)
Fix unnecessary invocations of org-mode with
org-inhibit-startup.
The functions above call org-mode with org-inhibit-startup in org
buffers that are already open. The result is that these open buffers
lose some crucial local variables during publishing. For instance,
an open buffer will lose its dir-local-variables-alist setting
during publishing. There is no need to call org-mode here, because
org-mode is a) either already initialized in the buffer or b)
initialized via earlier call to find-file-no-select.
This looks to me like a relic of some past time when these functions were
called in temporary buffers that contained copies of the file's contents.
* lisp/ox-publish.el (org-publish-find-title):
Fix (invalid-read-syntax "#").
Since 8e1386cead,
`org-element-interpret-data' no longer trims text properties attached
to strings. We need to remove them before writing the title into the
cache, as text properties are not readable.
* lisp/ox-publish.el (org-publish-cache-file-needs-publishing):
Correctly extract filename.
This bug was introduced in 6062f9ea72.
Thanks to steckerhalter for reporting it.
* lisp/ox-publish.el (org-publish-after-publishing-hook): New variable.
(org-publish-file): Call hook with file name and output file name as
arguments. Small refactoring.
(org-publish-attachment): Return output file.
* lisp/ox-publish.el (org-publish-cache-ctime-of-src): Return an error
when publishing a non-existent file.
Suggested-by: Arne Babenhauserheide <arne_bab@web.de>
* lisp/ox-publish.el (org-publish-find-title): Fix title when no
#+TITLE property is provided.
* lisp/ox.el (org-export-store-default-title): Remove-function.
(org-export--default-title): Remove variable.
(org-export-options-alist): Do not use a default value.
(org-export--get-buffer-attributes): Store a default title.
(org-export-as): Apply function removal.
(org-export--get-global-options): Do not set a property with an
explicitely nil value.
* lisp/ox-publish.el (org-publish-sitemap-sort-files,
org-publish-sitemap-sort-folders, org-publish-sitemap-ignore-case,
org-publish-sitemap-requested, org-publish-sitemap-date-format,
org-publish-sitemap-file-entry-format): Set prefix to
"org-publish-sitemap" instead of "org-sitemap".
(org-publish-compare-directory-files, org-publish-get-base-files-1,
org-publish-projects, org-publish-format-file-entry): Use new prefix.
* lisp/ox-publish.el (org-publish-find-date): Also return date for
directories.
(org-publish-get-base-files-1): Fix :recursive parameter ignoring
extension restriction.
* lisp/ox-publish.el (org-publish-find-date): Fix "bad timestamp"
error with some DATE values: :date property in communication channel
is no longer a string.
* ox-publish.el (org-publish-org-to)
(org-publish-org-sitemap, org-publish-find-title)
(org-publish-find-date)
(org-publish-cache-file-needs-publishing): Set
`org-inhibit-startup' to t when visiting files for
publication.
Thanks to Samuel Wales for this idea.
* lisp/ox-publish.el (org-publish-resolve-external-fuzzy-link): No
error when resolving external fuzzy links outside publishing. Though
search option for these links will not be resolved.
* lisp/ox-publish.el (org-publish-collect-numbering,
org-publish-resolve-external-fuzzy-link): New functions.
(org-publish-org-to): Add new collecting function to final output
filter. Move index collecting function to the same filter.
(org-publish-collect-index): Called from final output filter.
An external fuzzy link is: [[file.org::*headline search]]
* lisp/ox-publish.el (org-publish-index-generate-theindex): Do not
create an "* Index" headline in "theindex.inc". Though, create an
"Index" title in fallback "theindex.org".