emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [PATCH] lisp/ox-publish.el: Handle includes with searches


From: aman
Subject: Re: [O] [PATCH] lisp/ox-publish.el: Handle includes with searches
Date: Wed, 30 Dec 2015 06:44:25 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Hi,

Nicolas Goaziou <mail <at> nicolasgoaziou.fr> writes:
> 
> Hello,
> 
> aman <aman_yang <at> 163.com> writes:
> 
> >     I was using org-publish which was already applied with this patch.
> >     but I got following error message when I published an org file including
> > another one.
> >     <error message>
> >     org-publish-cache-ctime-of-src: No such file:
> > "/home/emacs/gtd/inbox.org::writing"
> >     </error>
> >     
> >    here's the including block:
> >    <block>
> >    * including file
> >       #+INCLUDE: "../../inbox.org::writing blog" :only-contents t
> >    </block>
> >
> >     This patch works fine if there's spaces between "inbox.org" and
> > "::writing blog".
> 
> Indeed.
> 
> > -                         (string-match "^\\(\".+?\"\\|\\S-+\\)" value)
> > -                         ;; Ignore search suffix.
> > -                         (car (split-string
> > -                               (org-remove-double-quotes
> > -                                (match-string 1 value)))))))))
> > +                         (string-match 
> > "^\\(\".+?\"\\|\\S-+\\)\\(?:\\s-+\\|$\\)" value)
> > +                              (let ((matched (match-string 1 value)))
> > +                                (when (string-match
"\\(::\\(.*?\\)\\)\"?\\'"
> > +                                              matched)
> > +                                  (setq matched
> > +                                        (replace-match "" nil nil
matched 1))
> > +                                  (print matched))
> > +                                (org-remove-double-quotes matched))
> > +                              )))))
> 
> You should remove (print matched). Also, parenthesis should not be alone
> on their own line.
> 
> I suggest to replace it with:
> 
>   (let ((matched (match-string 1 value)))
>     (org-remove-double-quotes
>      (if (string-match "\\(::\\(.*?\\)\\)\"?\\'" matched)
>          (substring matched 0 (match-beginning 0))
>        matched)))
Got it, that's more succinct. 

> 
> >         (when included-file
> > -         (push (org-publish-cache-ctime-of-src
> > +         (push (org-publish-cache-ctime-oef-src
> 
> Typo.
> 
> Eventually, could you provide an appropriate commit message?
> 
> Thank you.
> 
> Regards,
> 

Here's new patch, and hope it helps.

org-publish: Fix get 'included-file' logic.

* lisp/ox-publish.el (org-publish-cache-file-needs-publishing):
  According to the syntax of #+INCLUDE statement in *info* page,
  there's no space between search option and file path.
  Fix it.

diff --git a/lisp/ox-publish.el b/lisp/ox-publish.el
index b49b9d3..9cfa596 100644
--- a/lisp/ox-publish.el
+++ b/lisp/ox-publish.el
@@ -1243,11 +1243,12 @@ the file including them will be republished as well."
           (and (eq (org-element-type element) 'keyword)
                (let ((value (org-element-property :value element)))
              (and value
-                  (string-match "^\\(\".+?\"\\|\\S-+\\)" value)
-                  ;; Ignore search suffix.
-                  (car (split-string
-                    (org-remove-double-quotes
-                     (match-string 1 value)))))))))
+                  (string-match "^\\(\".+?\"\\|\\S-+\\)\\(?:\\s-+\\|$\\)"
value)
+                    (let ((matched (match-string 1 value)))
+                  (org-remove-double-quotes
+                   (if (string-match "\\(::\\(.*?\\)\\)\"?\\'" matched)
+                       (substring matched 0 (match-beginning 0))
+                     matched))))))))
         (when included-file
           (push (org-publish-cache-ctime-of-src
              (expand-file-name included-file))
-- 
1.9.1


Thank You.




reply via email to

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