emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Re: One org file, multiple exports, is it possible?


From: Nick Dokos
Subject: Re: [Orgmode] Re: One org file, multiple exports, is it possible?
Date: Wed, 26 May 2010 21:40:40 -0400

Thomas S. Dye <address@hidden> wrote:

> On May 26, 2010, at 11:37 AM, Nick Dokos wrote:
>     ...
>     perhaps? But I'm shooting from the hip here, so take it with the 
> appropriate
>     grain of salt.
>    
> 
> Hi Nick,
> 
> The documentation for org-publish-projects-alist suggests that :include wants 
> a list:
> 
>     The :include property may be used to include extra files.  Its
>     value may be a list of filenames to include. The filenames are
>     considered relative to the base directory.
> 
> When I tried :include "index.org" I got this:
> 
> Debugger entered--Lisp error: (wrong-type-argument sequencep 105)
>   concat("~/org/temp/" 105)
>   (expand-file-name (concat base-dir f)) 
>   ...
> 

Yep, shot from the hip and hit my foot. You are right.

> I'm not going to pretend I know what I'm talking about here, but AFAICT the 
> variable i in the following code needs some attention before it goes to
> string-match.  According to the documentation, plist-get just returns the 
> value assigned to a property (or nil) without doing anything to it, so i
> should be a list when it is passed to string-match.  string-match wants 
> REGEXP here, apparently not as a list.  I couldn't persuade emacs to cough up
> the definition of REGEXP, but my brief forays into the emacs and org-mode 
> source code lead me to believe it is probably a string.
> 
>     (defun org-publish-get-project-from-filename (filename &optional up)
>       "Return the project FILENAME belongs."
>       (let* ((filename (expand-file-name filename))
>     project-name)
>    
>         (catch 'p-found
>           (dolist (prj org-publish-project-alist)
>     (unless (plist-get (cdr prj) :components)
>      ;; [[info:org:Selecting%20files]] shows how this is supposed to work:
>      (let* ((r (plist-get (cdr prj) :recursive))
>     (b (expand-file-name (plist-get (cdr prj) :base-directory)))
>     (x (plist-get (cdr prj) :base-extension))
>     (e (plist-get (cdr prj) :exclude))
>     (i (plist-get (cdr prj) :include))
>     (xm (concat "^" b (if r ".+" "[^/]+") "\\.\\(" x "\\)$")))
>        (when (or
>       (and i (string-match i filename))
> 

I think you are right that there is a problem here. Here is an excerpt
from the relevant commit:

,----
| commit 339d6fe4bbf7b9858c6323d01f32d0c73a4cd3a8
| Author: Sebastian Rose <address@hidden>
| Date:   Thu May 13 13:43:53 2010 +0200
| 
|     Publishing, cashing and timestamps
|     
|     Carsten Dominik <address@hidden> writes:
|     > Hi Sebastian,
|     >
|     > sorry for being slow.  Could you do me a favor and send me the cache 
patch one
|     > more time - if possible updated to the current master.
|     >
|     > I am just not sure I have the right patch in my hands.
|     
|     Hi Carsten,
|     
|     no problem. The patch is attached.
|     
|     Here is a list of my ChangeLog entries, redated to today:
|     
|     2010-05-13  Sebastian Rose  <address@hidden>
|     
|         ...
|     
|       * org-publish.el (org-publish-get-project-from-filename) does
|       not depend on a list of files anymore. Instead of laoding all
|       files of all, we walk `org-publish-project-alist' until we
|       find a project, where the properties :base-directory, :recursive,
|       :base-extension, :include and :exclude match.
|     
|         ...
`----

Maybe Sebastian (I added him to the CC:) can take a look? 

Thanks,
Nick




reply via email to

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