Browse Source

tangle checks for COMMENT in parent headlines

* lisp/ob-tangle.el (org-babel-under-commented-heading-p): Check if
  the point is under a commented heading (including parents).
  (org-babel-tangle-collect-blocks): Don't tangle blocks is under a
  commented heading (including parents).
Eric Schulte 4 years ago
parent
commit
af80144976
1 changed files with 10 additions and 1 deletions
  1. 10 1
      lisp/ob-tangle.el

+ 10 - 1
lisp/ob-tangle.el

@@ -355,6 +355,15 @@ that the appropriate major-mode is set.  SPEC has the form:
        insert-comment
        (org-fill-template org-babel-tangle-comment-format-end link-data)))))
 
+(defun org-babel-under-commented-heading-p ()
+  "Return t if currently under a commented heading."
+  (if (string-match (concat "^" org-comment-string)
+		    (nth 4 (org-heading-components)))
+      t
+    (save-excursion
+      (and (org-up-heading-safe)
+	   (org-babel-under-commented-headline-p)))))
+
 (defvar org-comment-string) ;; Defined in org.el
 (defun org-babel-tangle-collect-blocks (&optional language tangle-file)
   "Collect source blocks in the current Org-mode file.
@@ -379,7 +388,7 @@ can be used to limit the collected code blocks by target file."
       (let* ((info (org-babel-get-src-block-info 'light))
 	     (src-lang (nth 0 info))
 	     (src-tfile (cdr (assoc :tangle (nth 2 info)))))
-        (unless (or (string-match (concat "^" org-comment-string) current-heading)
+        (unless (or (org-babel-under-commented-heading-p)
 		    (string= (cdr (assoc :tangle (nth 2 info))) "no")
 		    (and tangle-file (not (equal tangle-file src-tfile))))
           (unless (and language (not (string= language src-lang)))