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: Tue, 29 Dec 2015 01:35:10 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Nicolas Goaziou <mail <at> nicolasgoaziou.fr> writes:

> 
> Hello,
> 
> Nick Gunn <nick <at> ausimian.net> writes:
> 
> > * lisp/ox-publish.el (org-publish-cache-file-needs-publishing): Ignore
> >   any link search suffix on an include so that the path represents a
> >   valid file during the publishing check.
> 
> Applied. Thank you.
> 
> Regards,
> 


Hi,
    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".

    And I found that org-export-expand-include-keyword, invoked by`C-c '` at
INCLUDE statement, awalys get right file name.

    I copied some logic from org-export-expand-include-keyword to make it
works for me. 

--- a/lisp/ox-publish.el
+++ b/lisp/ox-publish.el
@@ -1243,13 +1243,17 @@ 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)))
+                                (when (string-match "\\(::\\(.*?\\)\\)\"?\\'"
+                                                  matched)
+                                  (setq matched
+                                        (replace-match "" nil nil matched 1))
+                                  (print matched))
+                                (org-remove-double-quotes matched))
+                              )))))
            (when included-file
-             (push (org-publish-cache-ctime-of-src
+             (push (org-publish-cache-ctime-oef-src
                     (expand-file-name included-file))
                    included-files-ctime)))))
       (unless visiting (kill-buffer buf)))







reply via email to

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