From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dale Smith Subject: Re: Re: Custom docbook stylesheets. Date: Mon, 22 Jun 2009 15:05:11 -0400 Message-ID: References: <9C2D1FA8-9C92-4B8A-8349-A5B767658FC7@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MIopZ-0003z4-F3 for emacs-orgmode@gnu.org; Mon, 22 Jun 2009 15:05:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MIopU-0003ql-8O for emacs-orgmode@gnu.org; Mon, 22 Jun 2009 15:05:24 -0400 Received: from [199.232.76.173] (port=40634 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MIopU-0003qV-3N for emacs-orgmode@gnu.org; Mon, 22 Jun 2009 15:05:20 -0400 Received: from [66.178.229.162] (port=45702 helo=flexo.vxitech.com) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MIopT-0005wV-EF for emacs-orgmode@gnu.org; Mon, 22 Jun 2009 15:05:19 -0400 In-Reply-To: (Dale Smith's message of "Mon, 22 Jun 2009 10:25:30 -0500") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Baoqiu Cui Cc: "emacs-orgmode@gnu.org" --=-=-= Dale Smith writes: >>>> The current org-export-docbook-xslt-proc-command is a format string, >>>> with a fixed order of arguments (the fo filename and then the input >>>> docbook filname). Thats probably good enough for most (all?) xslt >>>> processors, but things may be more limited when it comes to also >>>> specifying the stylesheet. Do we need to have some kind of special >>>> markers in the format string for where the different options go? >>>> Something like $i $o and $s (for in, out, and stysheet)? >> >> I thought about doing something similar to make the commands easier to >> set, but stopped pursuing that after seeing the format string style >> worked fine. I am not sure if any other Emacs modes/packages have done >> something like this, i.e. using (semi)named arguments. > > Well, it took me a while, but it found it. It's the format-spec > function. (Actually, http://edward.oconnor.cx/2009/06/format-spec > clued me in.) > > I'll have a go at it today and see if I can send in a patch. Ok. This works for me. Docs are not updated. That would push me over the 10 line limit. ;^) Now we can easily add other options, like %s for stylesheets or whatever. Maybe something like %p to set parameters. (As in the --stringparam option to xsltproc). What would be cool is a way to allow the user to *add* custom spec chars to the default set. (hint hint) -Dale --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=format-spec.patch diff --git a/lisp/org-docbook.el b/lisp/org-docbook.el index 8a89675..37851da 100644 --- a/lisp/org-docbook.el +++ b/lisp/org-docbook.el @@ -77,6 +77,7 @@ (require 'org) (require 'org-exp) (require 'org-html) +(require 'format-spec) ;;; Variables: @@ -330,10 +331,10 @@ in a window. A non-interactive call will only return the buffer." "Export as DocBook XML file, and generate PDF file." (interactive "P") (if (or (not org-export-docbook-xslt-proc-command) - (not (string-match "%s.+%s" org-export-docbook-xslt-proc-command))) + (not (string-match "%[io].+%[io]" org-export-docbook-xslt-proc-command))) (error "XSLT processor command is not set correctly")) (if (or (not org-export-docbook-xsl-fo-proc-command) - (not (string-match "%s.+%s" org-export-docbook-xsl-fo-proc-command))) + (not (string-match "%[io].+%[io]" org-export-docbook-xsl-fo-proc-command))) (error "XSL-FO processor command is not set correctly")) (message "Exporting to PDF...") (let* ((wconfig (current-window-configuration)) @@ -345,10 +346,10 @@ in a window. A non-interactive call will only return the buffer." (pdffile (concat base ".pdf"))) (and (file-exists-p pdffile) (delete-file pdffile)) (message "Processing DocBook XML file...") - (shell-command (format org-export-docbook-xslt-proc-command - fofile (shell-quote-argument filename))) - (shell-command (format org-export-docbook-xsl-fo-proc-command - fofile pdffile)) + (shell-command (format-spec org-export-docbook-xslt-proc-command + (format-spec-make ?o fofile ?i (shell-quote-argument filename)))) + (shell-command (format-spec org-export-docbook-xsl-fo-proc-command + (format-spec-make ?i fofile ?o pdffile))) (message "Processing DocBook file...done") (if (not (file-exists-p pdffile)) (error "PDF file was not produced") --=-=-= -- Dale P. Smith dales@vtiinstruments.com 216-447-4059 x2018 216-447-8951 FAX (Company mandated disclaimer follows...) The information in this e-mail and any attachments is intended solely for use by the recipient(s) to whom this e-mail is addressed and may contain confidential and/or privileged information which is exempt from disclosure. If you are not an intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that you have received this e-mail and any attachments in error and that dissemination, distribution, review or copying of this e-mail and its attachments is strictly prohibited. If you have received this e-mail in error, please notify the sender immediately and delete all electronic and paper copies of this e-mail as well as any attachments. Thank you. http://www.vtiinstruments.com/images/vtiemaillogo.gif --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --=-=-=--