ソースを参照

ob-lob: Expand blocks before ingesting them

* lisp/ob-lob.el (org-babel-lob-ingest): Expand blocks before
  ingesting them.

Reported-by: edgar@openmail.cc
<http://lists.gnu.org/archive/html/emacs-orgmode/2017-09/msg00361.html>
Nicolas Goaziou 7 年 前
コミット
c1c5786c8a
1 ファイル変更9 行追加5 行削除
  1. 9 5
      lisp/ob-lob.el

+ 9 - 5
lisp/ob-lob.el

@@ -53,11 +53,15 @@ should not be inherited from a source block.")
       (let* ((info (org-babel-get-src-block-info 'light))
 	     (source-name (nth 4 info)))
 	(when source-name
-	  (setq source-name (intern source-name)
-		org-babel-library-of-babel
-		(cons (cons source-name info)
-		      (assq-delete-all source-name org-babel-library-of-babel))
-		lob-ingest-count (1+ lob-ingest-count)))))
+	  (setf (nth 1 info)
+		(if (org-babel-noweb-p (nth 2 info) :eval)
+		    (org-babel-expand-noweb-references info)
+		  (nth 1 info)))
+	  (let ((source (intern source-name)))
+	    (setq org-babel-library-of-babel
+		  (cons (cons source info)
+			(assq-delete-all source org-babel-library-of-babel))))
+	  (cl-incf lob-ingest-count))))
     (message "%d src block%s added to Library of Babel"
 	     lob-ingest-count (if (> lob-ingest-count 1) "s" ""))
     lob-ingest-count))