From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasmus Subject: Re: ox-koma bug in subtree export Date: Thu, 16 Jul 2015 12:44:26 +0200 Message-ID: <87380oxtyt.fsf@gmx.us> References: <20150715112057.GI18343@chitra.no-ip.org> <87y4ihk5ho.fsf@gmx.us> <20150715211317.GO18343@chitra.no-ip.org> <878uahyr5q.fsf@gmx.us> <20150716085442.GQ18343@chitra.no-ip.org> <87pp3sxwy1.fsf@gmx.us> <20150716102504.GA20500@chitra.no-ip.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45212) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFgec-0000B1-Pe for emacs-orgmode@gnu.org; Thu, 16 Jul 2015 06:44:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZFgeZ-0004r0-HC for emacs-orgmode@gnu.org; Thu, 16 Jul 2015 06:44:38 -0400 Received: from plane.gmane.org ([80.91.229.3]:44955) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFgeZ-0004qr-6h for emacs-orgmode@gnu.org; Thu, 16 Jul 2015 06:44:35 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZFgeX-00047H-QV for emacs-orgmode@gnu.org; Thu, 16 Jul 2015 12:44:33 +0200 Received: from ip5b4025d5.dynamic.kabel-deutschland.de ([91.64.37.213]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Jul 2015 12:44:33 +0200 Received: from rasmus by ip5b4025d5.dynamic.kabel-deutschland.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Jul 2015 12:44:33 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Suvayu Ali writes: > Strange, I tried subtree export with my example, and a normal file > export with yours, neither exports the signature, closing works fine. I think I didnt't run format-patch correctly.... Sorry! I'm trying to get used to do things that I'd normally do from the terminal (like format-patch) from magit. I checked and it work from your previous example. Rasmus -- ⠠⠵ --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-ox-koma-letter-Add-closing-special-heading.patch >From 115d9903c14ff610e86205b834131b38be181697 Mon Sep 17 00:00:00 2001 From: Rasmus Date: Thu, 16 Jul 2015 00:38:06 +0200 Subject: [PATCH] ox-koma-letter: Add closing special heading * ox-koma-letter.el (org-koma-letter-special-tags-in-letter): Add closing. (org-koma-letter-template): Potentially take closing value from closing spcical heading. (org-koma-letter--build-settings): Potentially take signature value from closing special heading. (org-koma-letter-closing): (org-koma-letter-signature): Update docstring. Suggested-by: Suvayu Ali --- contrib/lisp/ox-koma-letter.el | 52 +++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/contrib/lisp/ox-koma-letter.el b/contrib/lisp/ox-koma-letter.el index d0a8109..64f1f7f 100644 --- a/contrib/lisp/ox-koma-letter.el +++ b/contrib/lisp/ox-koma-letter.el @@ -204,13 +204,29 @@ then the opening will be implicitly set as the headline title." (defcustom org-koma-letter-closing "" "Letter's closing, as a string. -This option can also be set with the CLOSING keyword." +This option can also be set with the CLOSING keyword. Moreover, +when: + (1) this value is the empty string; + (2) there's no CLOSING keyword or it is empty; + (3) `org-koma-letter-headline-is-opening-maybe' is non-nil; + (4) the letter contains a headline with the special + tag closing; +then the opening will be set as the title of the closing special +heading." :group 'org-export-koma-letter :type 'string) (defcustom org-koma-letter-signature "" "Signature, as a string. -This option can also be set with the SIGNATURE keyword." +This option can also be set with the SIGNATURE keyword. +Moreover, when: + (1) this value is the empty string; + (2) there's no CLOSING keyword or it is empty; + (3) `org-koma-letter-headline-is-opening-maybe' is non-nil; + (4) the letter contains a headline with the special + tag closing; +then the signature will be set as the content of the +closing special heading." :group 'org-export-koma-letter :type 'string) @@ -358,7 +374,7 @@ e.g. \"title-subject:t\"." :group 'org-export-koma-letter :type 'boolean) -(defconst org-koma-letter-special-tags-in-letter '(to from) +(defconst org-koma-letter-special-tags-in-letter '(to from closing) "Header tags related to the letter itself.") (defconst org-koma-letter-special-tags-after-closing '(ps encl cc) @@ -665,7 +681,17 @@ holding export options." ;; Letter body. contents ;; Closing. - (format "\n\\closing{%s}\n" (org-export-data (plist-get info :closing) info)) + (format "\n\\closing{%s}\n" + (org-export-data + (or (org-string-nw-p (plist-get info :closing)) + (when (plist-get info :with-headline-opening) + (org-element-map (plist-get info :parse-tree) 'headline + (lambda (head) + (when (eq (org-koma-letter--special-tag head info) + 'closing) + (org-element-property :title head))) + info t))) + info)) (org-koma-letter--special-contents-as-macro (plist-get info :with-after-closing)) ;; Letter end. @@ -711,10 +737,20 @@ a communication channel." (format "\\KOMAoption{fromphone}{%s}\n" (if (plist-get info :with-phone) "true" "false"))) ;; Signature. - (let ((signature (plist-get info :signature))) - (and (org-string-nw-p signature) - (funcall check-scope 'signature) - (format "\\setkomavar{signature}{%s}\n" signature))) + (let* ((heading-val + (and (plist-get info :with-headline-opening) + (org-string-nw-p + (org-trim + (org-export-data + (org-koma-letter--get-tagged-contents 'closing) + info))))) + (signature (org-string-nw-p (plist-get info :signature))) + (signature-scope (funcall check-scope 'signature))) + (and (or (and signature signature-scope) + heading-val) + (not (and (eq scope 'global) heading-val)) + (format "\\setkomavar{signature}{%s}\n" + (if signature-scope signature heading-val)))) ;; Back address. (and (funcall check-scope 'with-backaddress) (format "\\KOMAoption{backaddress}{%s}\n" -- 2.4.5 --=-=-=--