emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Re: [Emacs-orgmode] Problem with org-publish-get-plists


From: David O'Toole
Subject: [Orgmode] Re: [Emacs-orgmode] Problem with org-publish-get-plists
Date: Wed, 06 Sep 2006 16:31:55 -0400
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.50 (gnu/linux)

Sorry for the late reply. 

I have incorporated your bugfix into the latest version of
org-publish.el and will publish the updated code on my website
shortly. 

Thanks so much for your debugging!

"Ed Hirgelt" <address@hidden> writes:

> I was having problems publishing with 2 projects in the project list.
> I tracked it down to the org-publish-files hash table.  All the files
> from both projects were mapped to the same project, the last one.
> This was caused by org-publish-get-plists.  Below is the modified
> version that seems to work nicely for me.
>
> The trick as that plists was getting appended to each time through the
> loop which is great for the return value, but the loop over the
> content of plists assumed that project applied to all.  This change
> uses single to be the current element in plists. The return value
> remains the same.
>
> Hope this helps.
>
> Thanks,
> Ed
> -----------------------------------------------------------------
>
> (defun org-publish-get-plists (&optional project-name)
>  "Return a list of property lists for project PROJECT-NAME.
> When argument is not given, return all property lists for all projects."
>  (let ((alist (if project-name
>                  (list (assoc project-name org-publish-project-alist))
>                org-publish-project-alist))
>       (project nil)
>       (plists nil)
>       (single nil)
>       (components nil))
>
>    ;;
>    ;;
>    (while (setq project (pop alist))
>      ;; what kind of project is it?
>      (if (setq components (plist-get (cdr project) :components))
>         ;; meta project. annotate each plist with name of enclosing project
>         (setq single
>               (apply 'append
>                      (mapcar 'org-publish-get-plists components)))
>       ;; normal project
>       (setq single (list (cdr project))))
>      ;;
>      (setq plists (append plists single))
>      (dolist (p single)
>       (let* ((exclude (plist-get p :exclude))
>              (files (org-publish-get-base-files p exclude)))
>         (dolist (f files)
>           (puthash (file-truename f) (car project) org-publish-files)))))
>    plists))
>
>
> -- 
> Ed Hirgelt
>
> Discovery consists of seeing what everybody has seen
> and thinking what nobody has thought.
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

-- 
David O'Toole 
address@hidden
http://dto.freeshell.org/notebook/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]