Explorar el Código

Expand attachment links with point in correct place

* lisp/ox-texinfo.el (org-texinfo-link)
* lisp/ox-odt.el (org-odt-link)
* lisp/ox-md.el (org-md-link)
* lisp/ox-man.el (org-man-link)
* lisp/ox-latex.el (org-latex--inline-image, org-latex-link)
* lisp/ox-html.el (org-html-link)
* lisp/ox-ascii.el (org-ascii-link): Move point to the link for
  org-attach-expand to know from which headline to expand the link.
Gustav Wikström hace 5 años
padre
commit
f93020d5e6
Se han modificado 7 ficheros con 24 adiciones y 8 borrados
  1. 3 1
      lisp/ox-ascii.el
  2. 3 1
      lisp/ox-html.el
  3. 6 2
      lisp/ox-latex.el
  4. 3 1
      lisp/ox-man.el
  5. 3 1
      lisp/ox-md.el
  6. 3 1
      lisp/ox-odt.el
  7. 3 1
      lisp/ox-texinfo.el

+ 3 - 1
lisp/ox-ascii.el

@@ -1580,7 +1580,9 @@ INFO is a plist holding contextual information."
 	 (raw-path (org-element-property :path link))
 	 (path (cond
 		((string= raw-type "attachment")
-		 (setq raw-path (file-relative-name (org-attach-expand raw-path)))
+		 (setq raw-path (file-relative-name
+				 (org-with-point-at (org-element-property :begin link)
+				   (org-attach-expand raw-path))))
 		 (concat type ":" raw-path))
 		(t (concat type ":" raw-path)))))
     (cond

+ 3 - 1
lisp/ox-html.el

@@ -3081,7 +3081,9 @@ INFO is a plist holding contextual information.  See
 	    (url-encode-url (concat type ":" raw-path)))
 	   ((string= type "file")
 	    (when (string= raw-type "attachment")
-	      (setq raw-path (file-relative-name (org-attach-expand raw-path))))
+	      (setq raw-path (file-relative-name
+			      (org-with-point-at (org-element-property :begin link)
+				(org-attach-expand raw-path)))))
 	    ;; During publishing, turn absolute file names belonging
 	    ;; to base directory into relative file names.  Otherwise,
 	    ;; append "file" protocol to absolute file name.

+ 6 - 2
lisp/ox-latex.el

@@ -2363,7 +2363,9 @@ used as a communication channel."
   (let* ((parent (org-export-get-parent-element link))
 	 (path (let ((raw-path (org-element-property :path link)))
 		 (when (string= (org-element-property :type link) "attachment")
-		   (setq raw-path (file-relative-name (org-attach-expand raw-path))))
+		   (setq raw-path (file-relative-name
+				   (org-with-point-at (org-element-property :begin link)
+				     (org-attach-expand raw-path)))))
 		 (if (not (file-name-absolute-p raw-path)) raw-path
 		   (expand-file-name raw-path))))
 	 (filetype (file-name-extension path))
@@ -2536,7 +2538,9 @@ INFO is a plist holding contextual information.  See
 		       (concat type ":" raw-path))
 		      ((string= type "file")
 		       (when (string= raw-type "attachment")
-			 (setq raw-path (file-relative-name (org-attach-expand raw-path))))
+			 (setq raw-path (file-relative-name
+					 (org-with-point-at (org-element-property :begin link)
+					   (org-attach-expand raw-path)))))
 		       (org-export-file-uri raw-path))
 		      (t
 		       raw-path)))))

+ 3 - 1
lisp/ox-man.el

@@ -624,7 +624,9 @@ INFO is a plist holding contextual information.  See
                  (concat type ":" raw-path))
                 ((string= type "file")
 		 (when (string= raw-type "attachment")
-		   (setq raw-path (file-relative-name (org-attach-expand raw-path))))
+		   (setq raw-path (file-relative-name
+				   (org-with-point-at (org-element-property :begin link)
+				     (org-attach-expand raw-path)))))
 		 (org-export-file-uri raw-path))
                 (t raw-path))))
     (cond

+ 3 - 1
lisp/ox-md.el

@@ -413,7 +413,9 @@ INFO is a plist holding contextual information.  See
 		 (concat type ":" raw-path))
 		((string= type "file")
 		 (when (string= raw-type "attachment")
-		   (setq raw-path (file-relative-name (org-attach-expand raw-path))))
+		   (setq raw-path (file-relative-name
+				   (org-with-point-at (org-element-property :begin link)
+				     (org-attach-expand raw-path)))))
 		 (org-export-file-uri (funcall link-org-files-as-md raw-path)))
 		(t raw-path))))
     (cond

+ 3 - 1
lisp/ox-odt.el

@@ -2714,7 +2714,9 @@ INFO is a plist holding contextual information.  See
 		 (concat type ":" raw-path))
 		((string= type "file")
 		 (when (string= raw-type "attachment")
-		   (setq raw-path (file-relative-name (org-attach-expand raw-path))))
+		   (setq raw-path (file-relative-name
+				   (org-with-point-at (org-element-property :begin link)
+				     (org-attach-expand raw-path)))))
 		 (org-export-file-uri raw-path))
 		(t raw-path)))
 	 ;; Convert & to & for correct XML representation

+ 3 - 1
lisp/ox-texinfo.el

@@ -1066,7 +1066,9 @@ INFO is a plist holding contextual information.  See
 		 (concat type ":" raw-path))
 		((string= type "file")
 		 (when (string= raw-type "attachment")
-		   (setq raw-path (file-relative-name (org-attach-expand raw-path))))
+		   (setq raw-path (file-relative-name
+				   (org-with-point-at (org-element-property :begin link)
+				(org-attach-expand raw-path)))))
 		 (org-export-file-uri raw-path))
 		(t raw-path))))
     (cond