mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-29 20:37:51 +00:00
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.
This commit is contained in:
parent
3dcb89e2b7
commit
f0d7acfb78
|
@ -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:
|
||||
|
||||
|
|
Loading…
Reference in a new issue