diff options
author | Bastien Guerry <bzg@altern.org> | 2011-07-28 11:24:02 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2011-07-28 11:24:02 +0200 |
commit | f0d7acfb7867518529d63fe3d111f5f3cf39a61f (patch) | |
tree | 7a7ec2416c6c8605e9c38b54df68548974ec3298 | |
parent | 3dcb89e2b782123d99493410cf4de964cbdadf84 (diff) | |
download | org-mode-f0d7acfb7867518529d63fe3d111f5f3cf39a61f.tar.gz |
Hide .orgx files and use theindex.org directly.
Deleting .orgx files is an error -- thanks to Carsten for pointing
at this. Instead, we "hide" them by using dotted files: .file.orgx.
Also, use theindex.org directly instead of including theindex.inc in
theindex.org. This prevents a bug about republication of theindex.org
being skipped because the file has not been updated.
* org-publish.el (org-publish-index-generate-theindex): rename
from `org-publish-index-generate-theindex.inc'. Use the file
theindex.org directly instead of including theindex.inc.
(org-publish-projects): Don't delete .orgx files.
(org-publish-aux-preprocess): Use .file.orgx.
-rw-r--r-- | lisp/org-publish.el | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/lisp/org-publish.el b/lisp/org-publish.el index e1dbedd..b210e02 100644 --- a/lisp/org-publish.el +++ b/lisp/org-publish.el @@ -740,14 +740,12 @@ If :makeindex is set, also produce a file theindex.org." (while (setq file (pop files)) (org-publish-file file project t)) (when (plist-get project-plist :makeindex) - (org-publish-index-generate-theindex.inc - ;; (or org-publish-orgx-directory - (plist-get project-plist :base-directory)); ) + (org-publish-index-generate-theindex + (plist-get project-plist :base-directory)) (org-publish-file (expand-file-name "theindex.org" (plist-get project-plist :base-directory)) - project t) - (delete-file (expand-file-name "theindex.orgx"))) + project t)) (when completion-function (run-hooks 'completion-function)) (org-publish-write-cache-file))) (org-publish-expand-projects projects))) @@ -964,11 +962,14 @@ the project." target "")) (push (cons entry target) index))) (with-temp-file - (concat (file-name-sans-extension org-current-export-file) ".orgx") + (concat + (file-name-directory org-current-export-file) "." + (file-name-sans-extension + (file-name-nondirectory org-current-export-file)) ".orgx") (dolist (entry (nreverse index)) (insert (format "INDEX: (%s) %s\n" (cdr entry) (car entry))))))) -(defun org-publish-index-generate-theindex.inc (directory) +(defun org-publish-index-generate-theindex (directory) "Generate the index from all .orgx files in DIRECTORY." (require 'find-lisp) (let* ((fulldir (file-name-as-directory @@ -984,7 +985,7 @@ the project." main last-main letter last-letter file sub link tgext) ;; `files' contains the list of relative file names (dolist (file files) - (setq origfile (substring file 0 -1)) + (setq origfile (substring file 1 -1)) (setq buf (find-file-noselect file)) (with-current-buffer buf (goto-char (point-min)) @@ -993,11 +994,9 @@ the project." entry (match-string 2)) (push (list entry origfile target) index))) (kill-buffer buf)) - ;; delete .orgx files from current directory: - (mapc 'delete-file full-files) (setq index (sort index (lambda (a b) (string< (downcase (car a)) (downcase (car b)))))) - (setq ibuffer (find-file-noselect (expand-file-name "theindex.inc" directory))) + (setq ibuffer (find-file-noselect (expand-file-name "theindex.org" directory))) (with-current-buffer ibuffer (erase-buffer) (insert "* Index\n") @@ -1024,17 +1023,7 @@ the project." (insert " - " link "\n") (insert " - " link "\n"))) (save-buffer)) - (kill-buffer ibuffer) - - (let ((index-file (expand-file-name "theindex.org" directory))) - (unless (file-exists-p index-file) - (setq ibuffer (find-file-noselect index-file)) - (with-current-buffer ibuffer - (erase-buffer) - (insert "\n\n#+include: \"theindex.inc\"\n\n") - (save-buffer)) - (kill-buffer ibuffer))))) - + (kill-buffer ibuffer))) ;; Caching functions: |