summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2013-04-09 16:37:49 +0200
committerBastien Guerry <bzg@altern.org>2013-04-09 16:37:49 +0200
commit330a3762b5caad09379f3c4b8045978d53c28288 (patch)
tree4c6581181c770a691548b7a9d07ee1a7c16d3b4b
parent872e3736d7f9582288e7a53690972d5e1c0cac31 (diff)
downloadorg-mode-330a3762b5caad09379f3c4b8045978d53c28288.tar.gz
org.texi (Adding hyperlink types): New appendix
* org.texi (Adding hyperlink types): New appendix.
-rw-r--r--doc/org.texi36
1 files changed, 34 insertions, 2 deletions
diff --git a/doc/org.texi b/doc/org.texi
index e6a7716..36acb75 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -744,6 +744,7 @@ Hacking
* Hooks:: How to reach into Org's internals
* Add-on packages:: Available extensions
* Adding hyperlink types:: New custom link types
+* Adding export back-ends:: How to write new export back-ends
* Context-sensitive commands:: How to add functionality to such commands
* Tables in arbitrary syntax:: Orgtbl for @LaTeX{} and other programs
* Dynamic blocks:: Automatically filled blocks
@@ -15619,6 +15620,7 @@ Org.
* Hooks:: How to reach into Org's internals
* Add-on packages:: Available extensions
* Adding hyperlink types:: New custom link types
+* Adding export back-ends:: How to write new export back-ends
* Context-sensitive commands:: How to add functionality to such commands
* Tables in arbitrary syntax:: Orgtbl for @LaTeX{} and other programs
* Dynamic blocks:: Automatically filled blocks
@@ -15652,7 +15654,7 @@ documentation about each package, is maintained by the Worg project at
-@node Adding hyperlink types, Context-sensitive commands, Add-on packages, Hacking
+@node Adding hyperlink types, Adding export back-ends, Add-on packages, Hacking
@section Adding hyperlink types
@cindex hyperlinks, adding new types
@@ -15755,7 +15757,37 @@ When it makes sense for your new link type, you may also define a function
support for inserting such a link with @kbd{C-c C-l}. Such a function should
not accept any arguments, and return the full link with prefix.
-@node Context-sensitive commands, Tables in arbitrary syntax, Adding hyperlink types, Hacking
+@node Adding export back-ends, Context-sensitive commands, Adding hyperlink types, Hacking
+@section Adding export back-ends
+@cindex Export, writing back-ends
+
+Org 8.0 comes with a completely rewritten export engine which makes it easy
+to write new export back-ends, either from scratch, or from deriving them
+from existing ones.
+
+Your two entry points are respectively @code{org-export-define-backend} and
+@code{org-export-define-derived-backend}. To grok these functions, you
+should first have a look at @file{ox-latex.el} (for how to define a new
+back-end from scratch) and @file{ox-beamer.el} (for how to derive a new
+back-end from an existing one.
+
+When creating a new back-end from scratch, the basic idea is to set the name
+of the back-end (as a symbol) and an an alist of elements and export
+functions. On top of this, you will need to set additional keywords like
+@code{:menu-entry} (to display the back-end in the export dispatcher),
+@code{:export-block} (to specify what blocks should not be exported by this
+back-end), and @code{:options-alist} (to let the user set export options that
+are specific to this back-end.)
+
+Deriving a new back-end is similar, except that you need to set
+@code{:translate-alist} to an alist of export functions that should be used
+instead of the parent back-end functions.
+
+For a complete reference documentation, see
+@url{http://orgmode.org/worg/dev/org-export-reference.html, the Org Export
+Reference on Worg}.
+
+@node Context-sensitive commands, Tables in arbitrary syntax, Adding export back-ends, Hacking
@section Context-sensitive commands
@cindex context-sensitive commands, hooks
@cindex add-ons, context-sensitive commands