>From b500fcb1475b0a2e8eee532f031bb5cd236560fb Mon Sep 17 00:00:00 2001 From: Juan Manuel Macias Date: Mon, 25 Jul 2022 18:48:45 +0200 Subject: [PATCH] lisp/ob-tangle.el: The `org' value for `:comments' is now plain text * org-babel-process-comment-text: `org-babel-export-comment-text-as-plain-text' function is added as a new default value, which exports the raw Org text as plain text. This is useful for removing all org metadata from the source file's comments. --- etc/ORG-NEWS | 6 ++++++ lisp/ob-tangle.el | 25 +++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 478fcf95c..22daa4351 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -375,6 +375,12 @@ purpose of the variable. The replacement variable accepts =listings= and =verbatim= in place of =t= and =nil= (which still work, but are no longer listed as valid options). +*** ~ob-tangle~: the ~org~ value for ~:comments~ is now plain text + +When the value of the header argument ~:comments~ is ~org~, the text +collected in the Org document is exported to ASCII before being passed +to the tangled source file as a comment. + * Version 9.5 ** Important announcements and breaking changes diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index fdba72278..da14aaa5a 100644 --- a/lisp/ob-tangle.el +++ b/lisp/ob-tangle.el @@ -134,11 +134,12 @@ of tangled comments." :group 'org-babel :type 'boolean) -(defcustom org-babel-process-comment-text 'org-remove-indentation - "Function called to process raw Org text collected to be -inserted as comments in tangled source-code files. The function -should take a single string argument and return a string -result. The default value is `org-remove-indentation'." +(defcustom org-babel-process-comment-text 'org-babel-export-comment-text-as-plain-text + + "Function called to process raw Org text collected to be inserted ++as comments in tangled source-code files. The function should ++take a single string argument and return a string result. The ++default value is `org-babel-export-comment-text-as-plain-text'. ++Legacy value is `org-remove-indentation'." :group 'org-babel :version "24.1" :type 'function) @@ -158,6 +159,18 @@ represented in the file." (with-current-buffer (get-file-buffer file) (revert-buffer t t t))) +(defun org-babel-export-comment-text-as-plain-text (text) + "Function to process raw Org TEXT collected to be inserted as +comments in tangled source-code files. This function is the +default value for `org-babel-process-comment-text'." + ;; Ensure that if TEXT is a header it is not numbered. + (let ((text-nonum (with-temp-buffer + (insert text) + (when (not (org-entry-get nil "UNNUMBERED")) + (org-entry-put nil "UNNUMBERED" "t")) + (buffer-string)))) + (org-export-string-as text-nonum 'ascii t))) + (defmacro org-babel-with-temp-filebuffer (file &rest body) "Open FILE into a temporary buffer execute BODY there like `progn', then kill the FILE buffer returning the result of @@ -534,7 +547,7 @@ non-nil, return the full association list to be used by (max (condition-case nil (save-excursion (org-back-to-heading t) ; Sets match data - (match-end 0)) + (match-beginning 0)) (error (point-min))) (save-excursion (if (re-search-backward -- 2.37.1