emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Dale Smith <dsmith@vtiinstruments.com>
To: Baoqiu Cui <cbaoqiu@yahoo.com>
Cc: "emacs-orgmode@gnu.org" <emacs-orgmode@gnu.org>
Subject: Re: Re: Custom docbook stylesheets.
Date: Mon, 22 Jun 2009 15:05:11 -0400	[thread overview]
Message-ID: <kpskhs6qe0.fsf@flexo.cle.vtiinstruments.lcl> (raw)
In-Reply-To: <kp1vpc8f4l.fsf@flexo.cle.vtiinstruments.lcl> (Dale Smith's message of "Mon, 22 Jun 2009 10:25:30 -0500")

[-- Attachment #1: Type: text/plain, Size: 1416 bytes --]

Dale Smith <dsmith@vtiinstruments.com> 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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: format-spec.patch --]
[-- Type: text/x-patch, Size: 1866 bytes --]

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")

[-- Attachment #3: Type: text/plain, Size: 913 bytes --]



-- 
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

[-- Attachment #4: Type: text/plain, Size: 204 bytes --]

_______________________________________________
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

  reply	other threads:[~2009-06-22 19:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-27  0:13 Custom docbook stylesheets Dale Smith
2009-05-27  9:39 ` Carsten Dominik
2009-05-27 18:59   ` Baoqiu Cui
2009-05-28  5:31     ` Carsten Dominik
2009-05-28 14:17       ` Dale Smith
2009-06-23 15:29       ` Dale Smith
2009-06-22 15:25     ` Dale Smith
2009-06-22 19:05       ` Dale Smith [this message]
2009-06-23  6:13         ` Baoqiu Cui
2009-06-23 15:10           ` Dale Smith
2010-05-03 19:25           ` Dale P. Smith
2010-05-13  5:39             ` Carsten Dominik
2010-05-13 14:11               ` Dale P. Smith
2010-05-13 18:19                 ` Carsten Dominik
2010-05-13 18:51                   ` Dale P. Smith
2010-05-13 19:45                     ` Baoqiu Cui
2010-05-13 21:09                       ` Dale P. Smith
2010-05-13 23:15                         ` [PATCH] " Baoqiu Cui
2010-05-14 11:39                           ` Carsten Dominik
2010-05-15  4:01                             ` Baoqiu Cui
2010-05-15  6:13                               ` Carsten Dominik
2010-05-13 19:06               ` Baoqiu Cui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=kpskhs6qe0.fsf@flexo.cle.vtiinstruments.lcl \
    --to=dsmith@vtiinstruments.com \
    --cc=cbaoqiu@yahoo.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).