Undo wrong commit for org-publish.el.

This commit is contained in:
Bastien Guerry 2008-02-29 18:18:45 +00:00
parent 3dfe026818
commit 80c5e09a50
1 changed files with 26 additions and 36 deletions

View File

@ -364,6 +364,8 @@ When argument is not given, return all property lists for all projects."
(plists nil)
(single nil)
(components nil))
;;
;;
(while (setq project (pop alist))
;; what kind of project is it?
@ -384,38 +386,31 @@ When argument is not given, return all property lists for all projects."
plists))
(defun org-publish-get-base-files (plist &optional exclude-regexp)
"Return a list of all files in project defined by PLIST.
If EXCLUDE-REGEXP is set, this will be used to filter out
matching filenames."
(let* ((base-dir (file-name-as-directory (plist-get plist :base-directory)))
(let* ((dir (file-name-as-directory (plist-get plist :base-directory)))
(include-list (plist-get plist :include))
(recursive-p (plist-get plist :recursive))
(extension (or (plist-get plist :base-extension) "org"))
(regexp (concat "^[^\\.].*\\.\\(" extension "\\)$"))
alldirs allfiles files dir)
;; Get all files and directories in base-directory
(setq files (dired-files-attributes base-dir))
;; Get all subdirectories if recursive-p
(setq alldirs
(if recursive-p
(delete nil (mapcar (lambda(f) (if (caaddr f) (cadr f))) files))
(list base-dir)))
(while (setq dir (pop alldirs))
(setq files (directory-files dir t regexp))
;; Exclude files
(setq files
(if (not exclude-regexp)
files
(delq nil
(mapcar (lambda (x)
(if (string-match exclude-regexp x) nil x))
files))))
;; Include extra files
(let ((inc nil))
(while (setq inc (pop include-list))
(setq files (cons (expand-file-name inc dir) files))))
(setq allfiles (append allfiles files)))
(allfiles (directory-files dir t regexp)))
;;
;; exclude files
(setq allfiles
(if (not exclude-regexp)
allfiles
(delq nil
(mapcar (lambda (x)
(if (string-match exclude-regexp x) nil x))
allfiles))))
;;
;; include extra files
(let ((inc nil))
(while (setq inc (pop include-list))
(setq allfiles (cons (expand-file-name inc dir) allfiles))))
allfiles))
@ -439,6 +434,7 @@ nil if not found."
found))
;;;; Pluggable publishing back-end functions
(defun org-publish-org-to-latex (plist filename)
@ -477,21 +473,15 @@ FILENAME is the filename of the file to be published."
;;;; Publishing files, sets of files, and indices
;; eshell mkdir ?
;; IBM mkdir ?
;; FIXME si le nom de fichier n'est pas dans le base-directory
;; alors creer le répertoire intermédiaire
(defun org-publish-file (filename)
"Publish file FILENAME."
(let* ((base-dir (file-name-as-directory (plist-get plist :base-directory)))
(project-name (org-publish-get-project-from-filename filename))
(let* ((project-name (org-publish-get-project-from-filename filename))
(plist (org-publish-get-plist-from-filename filename))
(publishing-function (or (plist-get plist :publishing-function)
'org-publish-org-to-html)))
(publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html)))
(if (not project-name)
(error "File %s is not part of any known project" filename))
(when (org-publish-needed-p filename)
;;; FIXME create a directory, if required the required directory
(if (listp publishing-function)
;; allow chain of publishing functions
(mapc (lambda (f)
@ -505,8 +495,7 @@ FILENAME is the filename of the file to be published."
"Publish all files in set defined by PLIST.
If :auto-index is set, publish the index too."
(let* ((exclude-regexp (plist-get plist :exclude))
(publishing-function (or (plist-get plist :publishing-function)
'org-publish-org-to-html))
(publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html))
(index-p (plist-get plist :auto-index))
(index-filename (or (plist-get plist :index-filename) "index.org"))
(index-function (or (plist-get plist :index-function) 'org-publish-org-index))
@ -609,6 +598,7 @@ With prefix argument, force publish all files."
(mapcar 'org-publish-plist plists))))
(provide 'org-publish)
;; arch-tag: 72807f3c-8af0-4a6b-8dca-c3376eb25adb