瀏覽代碼

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 年之前
父節點
當前提交
a6d9fd82ea
共有 2 個文件被更改,包括 16 次插入3 次删除
  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)))))