Hi,

Recently I wrote an XSL stylesheet that converts DocBook documents to
TWiki (http://www.twiki.org/) format, and it can be used to convert Org
files to TWiki format using DocBook exporter as a bridge.  I have used
it to generate some of my recent TWiki documents at work from Org mode
files, and it worked pretty well.  Now Org-mode can be used as a TWiki
editor.

If you are interested, you can get the stylesheet from

   http://docbook2twiki.googlecode.com

The following Elisp function can be used to export Org file to TWiki
using this stylesheet (the only external tool that you need is
``xsltproc''):

(defun org-export-as-twiki ()
  "Export Org file to TWiki."
  (interactive)
  (message "Exporting to TWiki...")
  (let* ((wconfig (current-window-configuration))
         (docbook-buf (org-export-as-docbook))
         (filename (buffer-file-name docbook-buf))
         (base (file-name-sans-extension filename))
         (twiki-file (concat base ".twiki")))
    (and (file-exists-p twiki-file) (delete-file twiki-file))
    (message "Processing DocBook XML file...")
    (shell-command
     (format "xsltproc --output %s /Users/bcui/docbook2twiki/docbook2twiki.xsl 
%s"
             twiki-file (shell-quote-argument filename)))
    (message "Processing DocBook file...done")
    (if (not (file-exists-p twiki-file))
        (error "TWiki file was not produced")
      (set-window-configuration wconfig)
      (message "Exporting to TWiki...done")
      twiki-file)))

Originally I started with writing Org-to-TWiki exporter in Elisp, but
realized that I had to duplicate a lot of code from the DocBook exporter
after 99% of the work was done.  Writing the stylesheet is little harder
for me, but it proves that DocBook exporter can be helpful in some
case. ;-)

Please let me know if you have any comments.

Thanks,
Baoqiu



_______________________________________________
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 via email to