emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Org-jekyll - org-publish-initialize-files-alist
@ 2010-06-29 22:45 Nathan Neff
  2010-06-30  3:27 ` Puneeth
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Nathan Neff @ 2010-06-29 22:45 UTC (permalink / raw)
  To: emacs-orgmode

Some time ago, I set up a blog using org-jekyll.  I recently tried
to publish my blog, but when I run:

org-jekyll-export-blog

I get the message:  Symbol's function definition is void:
org-publish-initialize-files-alist

I grepped for this function, and noticed that it is now defined in
org-protocol.el
using (declare-function org-publish-initilialize-files-alist "org-publish"),
whereas before, the function was declared in org-publish.el

Can anyone help with this problem?

I tried putting this in my emacs, but it didn't work:
(require 'org-protocol.el)
(require 'org-publish)
(require 'org-jekyll)

Thanks,
--Nate

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Org-jekyll - org-publish-initialize-files-alist
  2010-06-29 22:45 Org-jekyll - org-publish-initialize-files-alist Nathan Neff
@ 2010-06-30  3:27 ` Puneeth
  2010-06-30  3:49   ` Nick Dokos
  2010-06-30 11:32 ` Sebastian Rose
  2010-06-30 11:45 ` Sebastian Rose
  2 siblings, 1 reply; 8+ messages in thread
From: Puneeth @ 2010-06-30  3:27 UTC (permalink / raw)
  To: Nathan Neff; +Cc: emacs-orgmode

Hi,

On Wed, Jun 30, 2010 at 4:15 AM, Nathan Neff <nathan.neff@gmail.com> wrote:
[..]
> I tried putting this in my emacs, but it didn't work:
> (require 'org-protocol.el)
> (require 'org-publish)
> (require 'org-jekyll)

I haven't used Jekyll, but should it be just org-protocol and not
org-protocol.el?
(require 'org-protocol)

Thanks
Puneeth

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Org-jekyll - org-publish-initialize-files-alist
  2010-06-30  3:27 ` Puneeth
@ 2010-06-30  3:49   ` Nick Dokos
  0 siblings, 0 replies; 8+ messages in thread
From: Nick Dokos @ 2010-06-30  3:49 UTC (permalink / raw)
  To: Puneeth; +Cc: nicholas.dokos, emacs-orgmode

Puneeth <punchagan@gmail.com> wrote:

> Hi,
> 
> On Wed, Jun 30, 2010 at 4:15 AM, Nathan Neff <nathan.neff@gmail.com> wrote:
> [..]
> > I tried putting this in my emacs, but it didn't work:
> > (require 'org-protocol.el)
> > (require 'org-publish)
> > (require 'org-jekyll)
> 
> I haven't used Jekyll, but should it be just org-protocol and not
> org-protocol.el?
> (require 'org-protocol)
> 

That's true: the first argument of `require' should be the symbol that
is `provide'-ed by the load file. E.g. org-protocol.el ends with

,----
| ...
| (provide 'org-protocol)
`----

so the `require' form should indeed be 

 (require 'org-protocol)

- and there is an additional convention that the filename should then be
the printname of the `provide'-ed symbol, with ".el" appended:
org-protocol.el in this case (but the convention can be overridden - see
the documentation of `require' for details).

The function that Nathan was asking about was originally defined in
org-publish.el which does

,----
| ...
| 
| (provide 'org-publish)
`----

so normally, doing

   (require 'org-publish)

would be enough to load the file and therefore define the function.
However, nothing is going to help in this case, because the function,
even though it is declared and used in org-protocol.el, was deleted from
org-publish.el with this commit:

,----
| commit 339d6fe4bbf7b9858c6323d01f32d0c73a4cd3a8
| Author: Sebastian Rose <sebastian_rose@gmx.de>
| Date:   Thu May 13 13:43:53 2010 +0200
| 
|     Publishing, cashing and timestamps
|     
|     Carsten Dominik <carsten.dominik@gmail.com> 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  <sebastian_rose@gmx.de>
|     
|     	* org-publish.el (org-publish-cache): Use one big hashmap for
|     	each project defined in `org-publish-project-alist'. The
|     	hashmap will hold pairs of our timestamp-filenames and
|     	timestamps, as well as pairs of source-paths and associated
|     	plists for arbitrary values. Currently only the files title is
|     	stored there.
|     
|     	The caching feature writes the information gathered during
|     	publishing to disk and re-loads it from there the next time we
|     	publish the same project.  All those informations will hence
|     	survive a restart of emacs.
|     
|     	One cache file per publishing project is used. The contents of
|     	that file is the elisp that fills the new variable
|     	`org-publish-cache'.  The cache file is named according to the
|     	project with `.cache' added and lives in
|     	`org-timestamp-directory'.
|     
|     	* org-publish.el (initialize-files-alist): This function and
|     	the variable `org-publish-files-alist' are not used anymore in
|     	favour of the reloadable cache and the functions for handling
|     	it. Removed therefor.
|  
|         ...
| 
`----

(hence the cc: to Sebastian). Either the function will have to be put
back, or the calls to the function in org-protocol.el will have to be
replaced by something else.

Nick

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Org-jekyll - org-publish-initialize-files-alist
  2010-06-29 22:45 Org-jekyll - org-publish-initialize-files-alist Nathan Neff
  2010-06-30  3:27 ` Puneeth
@ 2010-06-30 11:32 ` Sebastian Rose
  2010-06-30 11:45 ` Sebastian Rose
  2 siblings, 0 replies; 8+ messages in thread
From: Sebastian Rose @ 2010-06-30 11:32 UTC (permalink / raw)
  To: Nathan Neff; +Cc: emacs-orgmode

Nathan Neff <nathan.neff@gmail.com> writes:
> Some time ago, I set up a blog using org-jekyll.  I recently tried
> to publish my blog, but when I run:
>
> org-jekyll-export-blog
>
> I get the message:  Symbol's function definition is void:
> org-publish-initialize-files-alist
>
> I grepped for this function, and noticed that it is now defined in
> org-protocol.el
> using (declare-function org-publish-initilialize-files-alist "org-publish"),
> whereas before, the function was declared in org-publish.el
>
> Can anyone help with this problem?
>
> I tried putting this in my emacs, but it didn't work:
> (require 'org-protocol.el)
> (require 'org-publish)
> (require 'org-jekyll)



Hi Nathan,


glad you pointed out this one.

No, that function does not exist anymore!

It is still declared in org-protocol.el but that's obsolete.  I'll have
to remove that from org-protocol.el.


The list of files in a project is now stored as elisp code in cache
files. You can find all the functions in questions by either searching
`(defun org-publish-cache' in org-publish.el, or simply doing

    C-h f org-publish-cache TAB TAB





Best wishes

  Sebastian

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Org-jekyll - org-publish-initialize-files-alist
  2010-06-29 22:45 Org-jekyll - org-publish-initialize-files-alist Nathan Neff
  2010-06-30  3:27 ` Puneeth
  2010-06-30 11:32 ` Sebastian Rose
@ 2010-06-30 11:45 ` Sebastian Rose
  2010-06-30 14:27   ` Nathan Neff
  2 siblings, 1 reply; 8+ messages in thread
From: Sebastian Rose @ 2010-06-30 11:45 UTC (permalink / raw)
  To: Nathan Neff; +Cc: emacs-orgmode

Nathan Neff <nathan.neff@gmail.com> writes:
> Some time ago, I set up a blog using org-jekyll.  I recently tried
> to publish my blog, but when I run:
>
> org-jekyll-export-blog
>
> I get the message:  Symbol's function definition is void:
> org-publish-initialize-files-alist
>
> I grepped for this function, and noticed that it is now defined in
> org-protocol.el
> using (declare-function org-publish-initilialize-files-alist "org-publish"),
> whereas before, the function was declared in org-publish.el
>
> Can anyone help with this problem?
>
> I tried putting this in my emacs, but it didn't work:
> (require 'org-protocol.el)
> (require 'org-publish)
> (require 'org-jekyll)
>
> Thanks,
> --Nate


Nathan,

I cannot find a file named org-jekyll.el or similar.

But I guess `org-publish-initialize-files-alist' is just called to find
a project the current files belongs to.
If that is the case, you simply remove the call to that function and use

  (let ((project
         (org-publish-get-project-from-filename buffer-file-name)))
   ....


If you encounter any problems, I'll be glad to help.



   Sebastian

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Org-jekyll - org-publish-initialize-files-alist
  2010-06-30 11:45 ` Sebastian Rose
@ 2010-06-30 14:27   ` Nathan Neff
  2010-06-30 19:04     ` Sebastian Rose
  0 siblings, 1 reply; 8+ messages in thread
From: Nathan Neff @ 2010-06-30 14:27 UTC (permalink / raw)
  To: Sebastian Rose; +Cc: emacs-orgmode

On Wed, Jun 30, 2010 at 6:45 AM, Sebastian Rose <sebastian_rose@gmx.de> wrote:
> Nathan Neff <nathan.neff@gmail.com> writes:
>> Some time ago, I set up a blog using org-jekyll.  I recently tried
>> to publish my blog, but when I run:
>>
>> org-jekyll-export-blog
>>
>> I get the message:  Symbol's function definition is void:
>> org-publish-initialize-files-alist
>>
>> I grepped for this function, and noticed that it is now defined in
>> org-protocol.el
>> using (declare-function org-publish-initilialize-files-alist "org-publish"),
>> whereas before, the function was declared in org-publish.el
>>
>> Can anyone help with this problem?
>>
>> I tried putting this in my emacs, but it didn't work:
>> (require 'org-protocol.el)
>> (require 'org-publish)
>> (require 'org-jekyll)
>>
>> Thanks,
>> --Nate
>
>
> Nathan,
>
> I cannot find a file named org-jekyll.el or similar.
>
> But I guess `org-publish-initialize-files-alist' is just called to find
> a project the current files belongs to.
> If that is the case, you simply remove the call to that function and use
>
>  (let ((project
>         (org-publish-get-project-from-filename buffer-file-name)))
>   ....
>
>
> If you encounter any problems, I'll be glad to help.
>
>
>
>   Sebastian
>

Thanks for your replies -- I don't know too much about the inner workings of
org-jekyll, so I might forward this to the author.  In the meantine,
if anyone wants to take a poke at this, I would appreciate it.  I can
always revert to a prior version of org when I want to publish, so I'm
not being held back.

Below is the code where org-publish-initialize-files-alist is called
in org-jekyll.
It looks like in both cases, the code is trying to figure out what
project the current
file belongs to.  Can anyone suggest a fix?  I don't mean to push this
on anyone, but I really don't know lisp that well.

(defun org-jekyll-export-current-entry ()
  (interactive)
  (save-excursion
    (org-publish-initialize-files-alist) ; <----------------here
    (let ((project-name (cdr (assoc (expand-file-name (buffer-file-name))
                                    org-publish-files-alist))))
      (org-back-to-heading t)
      (org-jekyll-export-entry project-name))))

And another time here:

(defun org-jekyll-export-blog ()
  "Export all entries in project files that have a :blog: keyword
and an :on: datestamp.  Property drawers are exported as
front-matters, outline entry title is the exported document
title. "
  (interactive)
  (save-excursion
    (org-publish-initialize-files-alist) ;; < -------------- here
    (setq org-jekyll-new-buffers nil)
    (mapc
     (lambda (jfile-project)
       (let ((jfile (car jfile-project))
             (project (cdr jfile-project)))
         (if (string= (file-name-extension jfile) "org")
             (with-current-buffer (org-get-jekyll-file-buffer jfile)
               (org-map-entries (lambda () (org-jekyll-export-entry project))
                                "blog|BLOG")))))
     (org-publish-get-files (org-publish-expand-projects
                             (list (org-publish-get-project-from-filename
                                    (buffer-file-name) 'up)))))
    (org-release-buffers org-jekyll-new-buffers)))

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Org-jekyll - org-publish-initialize-files-alist
  2010-06-30 14:27   ` Nathan Neff
@ 2010-06-30 19:04     ` Sebastian Rose
  2010-07-02 14:25       ` Juan Reyero
  0 siblings, 1 reply; 8+ messages in thread
From: Sebastian Rose @ 2010-06-30 19:04 UTC (permalink / raw)
  To: Nathan Neff; +Cc: emacs-orgmode

Nathan Neff <nathan.neff@gmail.com> writes:
> ...
> Below is the code where org-publish-initialize-files-alist is called
> in org-jekyll.
> It looks like in both cases, the code is trying to figure out what
> project the current
> file belongs to.  Can anyone suggest a fix?  I don't mean to push this
> on anyone, but I really don't know lisp that well.

> ...

> (defun org-jekyll-export-current-entry ()
>   (interactive)
>   (save-excursion
>     (org-publish-initialize-files-alist) ; <----------------here
>     (let ((project-name (cdr (assoc (expand-file-name (buffer-file-name))
>                                     org-publish-files-alist))))
>       (org-back-to-heading t)
>       (org-jekyll-export-entry project-name))))

I suppose `project-name' shall be the name of the project, i.e. a
string?


;; Evtl. needed to keep compiler happy:
(declare-function org-publish-get-project-from-filename "org-publish"
		  (filename &optional up))

(defun org-jekyll-export-current-entry ()
  (interactive)
  (save-excursion
    (let ((project-name (org-publish-get-project-from-filename buffer-file-name)))
      (org-back-to-heading t)
      (org-jekyll-export-entry project-name))))





> (defun org-jekyll-export-blog ()
>   "Export all entries in project files that have a :blog: keyword
> and an :on: datestamp.  Property drawers are exported as
> front-matters, outline entry title is the exported document
> title. "
>   (interactive)
>   (save-excursion
>     (org-publish-initialize-files-alist) ;; < -------------- here
>     (setq org-jekyll-new-buffers nil)
>     (mapc
>      (lambda (jfile-project)
>        (let ((jfile (car jfile-project))
>              (project (cdr jfile-project)))
>          (if (string= (file-name-extension jfile) "org")
>              (with-current-buffer (org-get-jekyll-file-buffer jfile)
>                (org-map-entries (lambda () (org-jekyll-export-entry project))
>                                 "blog|BLOG")))))
>      (org-publish-get-files (org-publish-expand-projects
>                              (list (org-publish-get-project-from-filename
>                                     (buffer-file-name) 'up)))))
>     (org-release-buffers org-jekyll-new-buffers)))


(defun org-jekyll-export-blog ()
  "Export all entries in project files that have a :blog: keyword
and an :on: datestamp.  Property drawers are exported as
front-matters, outline entry title is the exported document
title. "
  (interactive)
  (save-excursion
    (setq org-jekyll-new-buffers nil)
    (mapc
     (lambda (jfile-project)
       (let ((jfile (car jfile-project))
             (project (cdr jfile-project)))
         (if (string= (file-name-extension jfile) "org")
             (with-current-buffer (org-get-jekyll-file-buffer jfile)
               (org-map-entries (lambda () (org-jekyll-export-entry project))
                                "blog|BLOG")))))

     ;; NOT SURE IF THIS WILL WORK HERE:
     (org-publish-get-base-files 
       (list (org-publish-get-project-from-filename (buffer-file-name) 'up))))
    (org-release-buffers org-jekyll-new-buffers)))



HTH

   Sebastian

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Org-jekyll - org-publish-initialize-files-alist
  2010-06-30 19:04     ` Sebastian Rose
@ 2010-07-02 14:25       ` Juan Reyero
  0 siblings, 0 replies; 8+ messages in thread
From: Juan Reyero @ 2010-07-02 14:25 UTC (permalink / raw)
  To: emacs-orgmode

Nathan,

I've just pushed a version of org-jekyll that should solve the
problem, following Sebastian's suggestions, and it's available at
http://github.com/juanre/org-jekyll.  Sorry it's taken me so long to
respond; I am pretty much off-line lately for personal reasons.  And
thanks for bringing it out.

Best,

jm
--
http://juanreyero.com

On Wed, Jun 30, 2010 at 9:04 PM, Sebastian Rose <sebastian_rose@gmx.de> wrote:
>
> Nathan Neff <nathan.neff@gmail.com> writes:
> > ...
> > Below is the code where org-publish-initialize-files-alist is called
> > in org-jekyll.
> > It looks like in both cases, the code is trying to figure out what
> > project the current
> > file belongs to.  Can anyone suggest a fix?  I don't mean to push this
> > on anyone, but I really don't know lisp that well.
>
> > ...
>
> > (defun org-jekyll-export-current-entry ()
> >   (interactive)
> >   (save-excursion
> >     (org-publish-initialize-files-alist) ; <----------------here
> >     (let ((project-name (cdr (assoc (expand-file-name (buffer-file-name))
> >                                     org-publish-files-alist))))
> >       (org-back-to-heading t)
> >       (org-jekyll-export-entry project-name))))
>
> I suppose `project-name' shall be the name of the project, i.e. a
> string?
>
>
> ;; Evtl. needed to keep compiler happy:
> (declare-function org-publish-get-project-from-filename "org-publish"
>                  (filename &optional up))
>
> (defun org-jekyll-export-current-entry ()
>  (interactive)
>  (save-excursion
>    (let ((project-name (org-publish-get-project-from-filename buffer-file-name)))
>      (org-back-to-heading t)
>      (org-jekyll-export-entry project-name))))
>
>
>
>
>
> > (defun org-jekyll-export-blog ()
> >   "Export all entries in project files that have a :blog: keyword
> > and an :on: datestamp.  Property drawers are exported as
> > front-matters, outline entry title is the exported document
> > title. "
> >   (interactive)
> >   (save-excursion
> >     (org-publish-initialize-files-alist) ;; < -------------- here
> >     (setq org-jekyll-new-buffers nil)
> >     (mapc
> >      (lambda (jfile-project)
> >        (let ((jfile (car jfile-project))
> >              (project (cdr jfile-project)))
> >          (if (string= (file-name-extension jfile) "org")
> >              (with-current-buffer (org-get-jekyll-file-buffer jfile)
> >                (org-map-entries (lambda () (org-jekyll-export-entry project))
> >                                 "blog|BLOG")))))
> >      (org-publish-get-files (org-publish-expand-projects
> >                              (list (org-publish-get-project-from-filename
> >                                     (buffer-file-name) 'up)))))
> >     (org-release-buffers org-jekyll-new-buffers)))
>
>
> (defun org-jekyll-export-blog ()
>  "Export all entries in project files that have a :blog: keyword
> and an :on: datestamp.  Property drawers are exported as
> front-matters, outline entry title is the exported document
> title. "
>  (interactive)
>  (save-excursion
>    (setq org-jekyll-new-buffers nil)
>    (mapc
>     (lambda (jfile-project)
>       (let ((jfile (car jfile-project))
>             (project (cdr jfile-project)))
>         (if (string= (file-name-extension jfile) "org")
>             (with-current-buffer (org-get-jekyll-file-buffer jfile)
>               (org-map-entries (lambda () (org-jekyll-export-entry project))
>                                "blog|BLOG")))))
>
>     ;; NOT SURE IF THIS WILL WORK HERE:
>     (org-publish-get-base-files
>       (list (org-publish-get-project-from-filename (buffer-file-name) 'up))))
>    (org-release-buffers org-jekyll-new-buffers)))
>
>
>
> HTH
>
>   Sebastian
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode



--
http://juanreyero.com/
http://unarueda.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-07-02 14:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-29 22:45 Org-jekyll - org-publish-initialize-files-alist Nathan Neff
2010-06-30  3:27 ` Puneeth
2010-06-30  3:49   ` Nick Dokos
2010-06-30 11:32 ` Sebastian Rose
2010-06-30 11:45 ` Sebastian Rose
2010-06-30 14:27   ` Nathan Neff
2010-06-30 19:04     ` Sebastian Rose
2010-07-02 14:25       ` Juan Reyero

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).