emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Problems with org-publish w/ #+INCLUDE:


From: Carsten Dominik
Subject: Re: [O] Problems with org-publish w/ #+INCLUDE:
Date: Sun, 16 Oct 2011 20:00:49 +0200

On 16.10.2011, at 18:28, Nick Dokos wrote:

> address@hidden wrote:
> 
>> Hi!
>> 
>> And another problem after an upgrade vom V6.something to a 7.7
>> release: Org-mode version 7.7 (release_7.7.380.g54d7df). When I use the
>> org-publish to produce a set of HTML pages I run into a error. Here is
>> an example:
>> 
> 
> An *exemplary* bug report: an ECM to reproduce the problem and a
> backtrace - what more can one ask for? Thank you!
> 
> I could not reproduce the problem at first, but it turned out that I had
> gone back to org 7.6 to test something and forgot to move forward again.
> On Org-mode version 7.7 (release_7.7.349.g3d835.dirty), I can reproduce
> it: the first time I publish the project I get the error. If I force
> republication, the error does not arise again - I haven't looked at why
> that is, but the initial failure seems to be caused by a change in the
> regexp on line 1109 of org-publish.el: if you look at the argument of
> org-publish-cache-ctime-of-src in the backtrace, you can see that it's
> not just the #+INCLUDE: filename, but some additional lines in the
> including file as well.
> 
> I haven't checked yet but it would seem that the following commit
> introduced the problem:

This should be fixed now, please verify.

- Carsten

> 
> --8<---------------cut here---------------start------------->8---
> commit 920cf53e686daea4f406aa237b48fe2ef4730426
> Author: Jon Anders Skorpen <address@hidden>
> Date:   Sat Jul 16 17:22:07 2011 +0000
> 
>    org-publish: Fix regexp for include files
> 
>    * org-publish.el (org-publish-cache-file-needs-publishing): Regexp did
>      not find includes with double quoted file names.
> 
>    TINYCHANGE
> 
> diff --git a/lisp/org-publish.el b/lisp/org-publish.el
> index b8e932d..9654a6d 100644
> --- a/lisp/org-publish.el
> +++ b/lisp/org-publish.el
> @@ -1108,7 +1108,7 @@ (defun org-publish-cache-file-needs-publishing 
> (filename &optional pub-dir pub-f
>       (when (equal (file-name-extension filename) "org")
>       (find-file (expand-file-name filename))
>       (goto-char (point-min))
> -     (while (re-search-forward "^#\\+INCLUDE: \\(.+\\)[ ^\t]*$" nil t)
> +     (while (re-search-forward "^#\\+INCLUDE:[ \t]+\"?\\([^ \t\"]*\\)\"?[ 
> \t]*.*$" nil t)
>         (let* ((included-file (expand-file-name (match-string 1))))
>           (add-to-list 'included-files-ctime
>                        (org-publish-cache-ctime-of-src included-file) t)))))
> --8<---------------cut here---------------end--------------->8---
> 
> Nick
> 
> 
>> I have a file "index.org":
>> 
>> --8<--
>> #+TITLE: Foo!
>> #+AUTHOR:    Daniel
>> #+EMAIL:     address@hidden
>> #+DATE:      2011-10-14 Fr
>> #+INCLUDE: include.org
>> 
>> Export it!
>> --8<--
>> 
>> Then I have a file "include.org" with all the options etc. (option
>> template included via C-c C-e t):
>> 
>> --8<--
>> #+DESCRIPTION:
>> #+KEYWORDS:
>> #+LANGUAGE:  en
>> #+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
>> #+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
>> #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http:/=
>> /orgmode.org/org-info.js
>> #+EXPORT_SELECT_TAGS: export
>> #+EXPORT_EXCLUDE_TAGS: noexport
>> #+LINK_UP:=20=20=20
>> #+LINK_HOME:=20
>> #+XSLT:
>> 
>> #+BEGIN_HTML
>>  <h1>Bar</h1>
>> #+END_HTML
>> --8<--
>> 
>> Then I set the org-publish-project-alist:
>> 
>> --8<--
>> (require 'org-publish)
>> (setq org-publish-project-alist
>>      (list (list "foo"
>>                :base-directory "/home/dbr/tmp/omtests"
>>                :base-extension "org"
>>                :publishing-directory "/home/dbr/tmp/omtests/pub"
>>                :publishing-function 'org-publish-org-to-html)))
>> --8<--
>> 
>> Org-publish is from the 7.7 distribution directory. Then I visit
>> index.org and do a C-c C-e P and run in the following error:
>> 
>> --8<--
>> Debugger entered--Lisp error: (wrong-type-argument integerp nil)
>>  lsh(nil 16)
>>  org-publish-cache-ctime-of-src("/home/dbr/tmp/omtests/include.org\n\nExpo=
>> rt")
>>  org-publish-cache-file-needs-publishing("/home/dbr/tmp/omtests/index.org"=
>> "/home/dbr/tmp/omtests/pub/" org-publish-org-to-html)
>>  org-publish-needed-p("/home/dbr/tmp/omtests/index.org" "/home/dbr/tmp/omt=
>> ests/pub/" org-publish-org-to-html "/home/dbr/tmp/omtests/pub/")
>>  org-publish-file("/home/dbr/tmp/omtests/index.org" ("foo" :base-directory=
>> "/home/dbr/tmp/omtests" :base-extension "org" :publishing-directory "/home=
>> /dbr/tmp/omtests/pub" :publishing-function org-publish-org-to-html) t)
>>  #[(project) "address@hidden \"=C7   \"=C7   \"=86=00=1C     \"=86#=CD=C7    
>> \"=86-=0E=
>> =1F  \"=868=0E!\"    \"=15   
>> \"=1D\n\"#=1E$=15=83X=D4!=88=0B=83a=0D\f\"=88#=89=
>> address@hidden       \"=83=92=D9     \"!=88=DB=C7    \"\"#=88=1D=83=9B=D4!=
>> =88 .=0B=87" [project project-plist exclude-regexp sitemap-p sitemap-filena=
>> me sitemap-function org-publish-initialize-cache plist-get :exclude :auto-s=
>> itemap :sitemap-filename "sitemap.org" :sitemap-function org-publish-org-si=
>> temap :sitemap-date-format :sitemap-file-entry-format :preparation-function=
>> :completion-function org-publish-get-base-files nil run-hooks preparation-=
>> function org-publish-file t :makeindex org-publish-index-generate-theindex =
>> :base-directory expand-file-name "theindex.org" completion-function org-pub=
>> lish-write-cache-file org-publish-sitemap-date-format org-sitemap-date-form=
>> at org-publish-sitemap-file-entry-format org-sitemap-file-entry-format file=
>> s file] 6](("foo" :base-directory "/home/dbr/tmp/omtests" :base-extension "=
>> org" :publishing-directory "/home/dbr/tmp/omtests/pub" :publishing-function=
>> org-publish-org-to-html))
>>  mapc(#[(project) "address@hidden    \"=C7   \"=C7   \"=86=00=1C     
>> \"=86#=CD=C7    \"=86-=
>> =0E=1F       \"=868=0E!\"    \"=15   
>> \"=1D\n\"#=1E$=15=83X=D4!=88=0B=83a=0D\f\"=88#=
>> address@hidden       \"=83=92=D9     \"!=88=DB=C7    \"\"#=88=1D=83=9B=
>> =D4!=88 .=0B=87" [project project-plist exclude-regexp sitemap-p sitemap-fi=
>> lename sitemap-function org-publish-initialize-cache plist-get :exclude :au=
>> to-sitemap :sitemap-filename "sitemap.org" :sitemap-function org-publish-or=
>> g-sitemap :sitemap-date-format :sitemap-file-entry-format :preparation-func=
>> tion :completion-function org-publish-get-base-files nil run-hooks preparat=
>> ion-function org-publish-file t :makeindex org-publish-index-generate-thein=
>> dex :base-directory expand-file-name "theindex.org" completion-function org=
>> -publish-write-cache-file org-publish-sitemap-date-format org-sitemap-date-=
>> format org-publish-sitemap-file-entry-format org-sitemap-file-entry-format =
>> files file] 6] (("foo" :base-directory "/home/dbr/tmp/omtests" :base-extens=
>> ion "org" :publishing-directory "/home/dbr/tmp/omtests/pub" :publishing-fun=
>> ction org-publish-org-to-html)))
>>  org-publish-projects((("foo" :base-directory "/home/dbr/tmp/omtests" :bas=
>> e-extension "org" :publishing-directory "/home/dbr/tmp/omtests/pub" :publis=
>> hing-function org-publish-org-to-html)))
>>  byte-code("?=85=00 =C4\n;=83=00\n=0B\"C=82=00\nC!)=87" [force org-publis=
>> h-use-timestamps-flag project org-publish-project-alist org-publish-project=
>> s assoc] 4)
>>  org-publish(("foo" :base-directory "/home/dbr/tmp/omtests" :base-extensio=
>> n "org" :publishing-directory "/home/dbr/tmp/omtests/pub" :publishing-funct=
>> ion org-publish-org-to-html))
>>  byte-code("=C4 \"?=85=0B   =89=84=00=C7 \"=88\n!*=87" [force org-publish-u=
>> se-timestamps-flag project org-publish-get-project-from-filename buffer-fil=
>> e-name up error "File %s is not part of any known project" org-publish] 4)
>>  org-publish-current-project(nil)
>>  call-interactively(org-publish-current-project)
>>  org-export(nil)
>>  call-interactively(org-export nil nil)
>> --8<--
>> 
>> It seemed that due to the #+INCLUDE tag the
>> org-publish-cache-file-need-publishing gets a bit confused with the
>> filename and tries to call org-publish-cache-ctime-of-src with the file
>> name plus a string "\n\nExport" which are the next three lines of the
>> org file index.org.=20
>> 
>> Am I doing something wrong?=20
>> 
>> 
>> Kind regards, Daniel
>> 
>> 
> 




reply via email to

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