Pārlūkot izejas kodu

ox: White spaces after export snippets are never ignored

* lisp/ox.el (org-export-data): White spaces after export snippets are
  never ignored.
* testing/lisp/test-ox.el: Add test.

Back-end developers should pay attention to the fact that white spaces
before and after an ignored export snippet now are accumulated in the
output.
Nicolas Goaziou 12 gadi atpakaļ
vecāks
revīzija
a6d9fd82ea
2 mainītis faili ar 16 papildinājumiem un 3 dzēšanām
  1. 6 2
      lisp/ox.el
  2. 10 1
      testing/lisp/test-ox.el

+ 6 - 2
lisp/ox.el

@@ -2062,8 +2062,12 @@ Return transcoded string."
 			 (eq (plist-get info :with-archived-trees) 'headline)
 			 (org-element-property :archivedp data)))
 		(let ((transcoder (org-export-transcoder data info)))
-		  (and (functionp transcoder)
-		       (funcall transcoder data nil info))))
+		  (or (and (functionp transcoder)
+			   (funcall transcoder data nil info))
+		      ;; Export snippets never return a nil value so
+		      ;; that white spaces following them are never
+		      ;; ignored.
+		      (and (eq type 'export-snippet) ""))))
 	       ;; Element/Object with contents.
 	       (t
 		(let ((transcoder (org-export-transcoder data info)))

+ 10 - 1
testing/lisp/test-ox.el

@@ -871,7 +871,16 @@ body\n")))
       (let ((org-export-snippet-translation-alist nil))
 	(should (equal (org-export-as 'test) "A\n")))
       (let ((org-export-snippet-translation-alist '(("t" . "test"))))
-	(should (equal (org-export-as 'test) "AB\n"))))))
+	(should (equal (org-export-as 'test) "AB\n")))))
+  ;; Ignored export snippets do not remove any blank.
+  (should
+   (equal "begin  end\n"
+	  (org-test-with-parsed-data "begin @@test:A@@ end"
+	    (org-export-data-with-translations
+	     tree
+	     '((paragraph . (lambda (paragraph contents info) contents))
+	       (section . (lambda (section contents info) contents)))
+	     info)))))