summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2011-07-28 11:24:02 +0200
committerBastien Guerry <bzg@altern.org>2011-07-28 11:24:02 +0200
commitf0d7acfb7867518529d63fe3d111f5f3cf39a61f (patch)
tree7a7ec2416c6c8605e9c38b54df68548974ec3298
parent3dcb89e2b782123d99493410cf4de964cbdadf84 (diff)
downloadorg-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.el33
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: