--- /dev/null
+;;; ox-pandoc-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*-
+;;
+;;; Code:
+
+(add-to-list 'load-path (directory-file-name
+ (or (file-name-directory #$) (car load-path))))
+
+\f
+;;;### (autoloads nil "ox-pandoc" "ox-pandoc.el" (0 0 0 0))
+;;; Generated autoloads from ox-pandoc.el
+
+(autoload 'org-pandoc-export-to-asciidoc "ox-pandoc" "\
+Export to asciidoc.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-asciidoc-and-open "ox-pandoc" "\
+Export to asciidoc and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-asciidoc "ox-pandoc" "\
+Export as asciidoc.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-beamer "ox-pandoc" "\
+Export to beamer.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-beamer-and-open "ox-pandoc" "\
+Export to beamer and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-beamer "ox-pandoc" "\
+Export as beamer.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-beamer-pdf "ox-pandoc" "\
+Export to beamer-pdf.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-beamer-pdf-and-open "ox-pandoc" "\
+Export to beamer-pdf and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-commonmark "ox-pandoc" "\
+Export to commonmark.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-commonmark-and-open "ox-pandoc" "\
+Export to commonmark and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-commonmark "ox-pandoc" "\
+Export as commonmark.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-context "ox-pandoc" "\
+Export to context.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-context-and-open "ox-pandoc" "\
+Export to context and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-context "ox-pandoc" "\
+Export as context.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-context-pdf "ox-pandoc" "\
+Export to context-pdf.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-context-pdf-and-open "ox-pandoc" "\
+Export to context-pdf and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-docbook4 "ox-pandoc" "\
+Export to docbook4.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-docbook4-and-open "ox-pandoc" "\
+Export to docbook4 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-docbook4 "ox-pandoc" "\
+Export as docbook4.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-docbook5 "ox-pandoc" "\
+Export to docbook5.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-docbook5-and-open "ox-pandoc" "\
+Export to docbook5 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-docbook5 "ox-pandoc" "\
+Export as docbook5.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-docx "ox-pandoc" "\
+Export to docx.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-docx-and-open "ox-pandoc" "\
+Export to docx and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-dokuwiki "ox-pandoc" "\
+Export to dokuwiki.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-dokuwiki-and-open "ox-pandoc" "\
+Export to dokuwiki and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-dokuwiki "ox-pandoc" "\
+Export as dokuwiki.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-dzslides "ox-pandoc" "\
+Export to dzslides.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-dzslides-and-open "ox-pandoc" "\
+Export to dzslides and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-dzslides "ox-pandoc" "\
+Export as dzslides.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-epub2 "ox-pandoc" "\
+Export to epub2.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-epub2-and-open "ox-pandoc" "\
+Export to epub2 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-epub3 "ox-pandoc" "\
+Export to epub3.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-epub3-and-open "ox-pandoc" "\
+Export to epub3 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-fb2 "ox-pandoc" "\
+Export to fb2.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-fb2-and-open "ox-pandoc" "\
+Export to fb2 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-fb2 "ox-pandoc" "\
+Export as fb2.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-gfm "ox-pandoc" "\
+Export to gfm.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-gfm-and-open "ox-pandoc" "\
+Export to gfm and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-gfm "ox-pandoc" "\
+Export as gfm.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-haddock "ox-pandoc" "\
+Export to haddock.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-haddock-and-open "ox-pandoc" "\
+Export to haddock and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-haddock "ox-pandoc" "\
+Export as haddock.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-html4 "ox-pandoc" "\
+Export to html4.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-html4-and-open "ox-pandoc" "\
+Export to html4 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-html4 "ox-pandoc" "\
+Export as html4.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-html5 "ox-pandoc" "\
+Export to html5.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-html5-and-open "ox-pandoc" "\
+Export to html5 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-html5 "ox-pandoc" "\
+Export as html5.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-html5-pdf "ox-pandoc" "\
+Export to html5-pdf.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-html5-pdf-and-open "ox-pandoc" "\
+Export to html5-pdf and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-icml "ox-pandoc" "\
+Export to icml.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-icml-and-open "ox-pandoc" "\
+Export to icml and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-icml "ox-pandoc" "\
+Export as icml.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-jats "ox-pandoc" "\
+Export to jats.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-jats-and-open "ox-pandoc" "\
+Export to jats and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-jats "ox-pandoc" "\
+Export as jats.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-jira "ox-pandoc" "\
+Export to jira.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-jira "ox-pandoc" "\
+Export as jira.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-json "ox-pandoc" "\
+Export to json.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-json-and-open "ox-pandoc" "\
+Export to json and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-json "ox-pandoc" "\
+Export as json.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-latex "ox-pandoc" "\
+Export to latex.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-latex-and-open "ox-pandoc" "\
+Export to latex and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-latex "ox-pandoc" "\
+Export as latex.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-latex-pdf "ox-pandoc" "\
+Export to latex-pdf.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-latex-pdf-and-open "ox-pandoc" "\
+Export to latex-pdf and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-man "ox-pandoc" "\
+Export to man.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-man-and-open "ox-pandoc" "\
+Export to man and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-man "ox-pandoc" "\
+Export as man.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown "ox-pandoc" "\
+Export to markdown.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown-and-open "ox-pandoc" "\
+Export to markdown and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-markdown "ox-pandoc" "\
+Export as markdown.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown_mmd "ox-pandoc" "\
+Export to markdown_mmd.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown_mmd-and-open "ox-pandoc" "\
+Export to markdown_mmd and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-markdown_mmd "ox-pandoc" "\
+Export as markdown_mmd.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown_phpextra "ox-pandoc" "\
+Export to markdown_phpextra.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown_phpextra-and-open "ox-pandoc" "\
+Export to markdown_phpextra and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-markdown_phpextra "ox-pandoc" "\
+Export as markdown_phpextra.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown_strict "ox-pandoc" "\
+Export to markdown_strict.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-markdown_strict-and-open "ox-pandoc" "\
+Export to markdown_strict and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-markdown_strict "ox-pandoc" "\
+Export as markdown_strict.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-mediawiki "ox-pandoc" "\
+Export to mediawiki.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-mediawiki-and-open "ox-pandoc" "\
+Export to mediawiki and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-mediawiki "ox-pandoc" "\
+Export as mediawiki.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-ms "ox-pandoc" "\
+Export to ms.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-ms-and-open "ox-pandoc" "\
+Export to ms and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-ms "ox-pandoc" "\
+Export as ms.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-ms-pdf "ox-pandoc" "\
+Export to ms-pdf.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-ms-pdf-and-open "ox-pandoc" "\
+Export to ms-pdf and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-muse "ox-pandoc" "\
+Export to muse.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-muse-and-open "ox-pandoc" "\
+Export to muse and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-muse "ox-pandoc" "\
+Export as muse.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-native "ox-pandoc" "\
+Export to native.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-native-and-open "ox-pandoc" "\
+Export to native and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-native "ox-pandoc" "\
+Export as native.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-odt "ox-pandoc" "\
+Export to odt.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-odt-and-open "ox-pandoc" "\
+Export to odt and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-opendocument "ox-pandoc" "\
+Export to opendocument.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-opendocument-and-open "ox-pandoc" "\
+Export to opendocument and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-opendocument "ox-pandoc" "\
+Export as opendocument.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-opml "ox-pandoc" "\
+Export to opml.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-opml-and-open "ox-pandoc" "\
+Export to opml and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-opml "ox-pandoc" "\
+Export as opml.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-org "ox-pandoc" "\
+Export to org.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-org-and-open "ox-pandoc" "\
+Export to org and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-org "ox-pandoc" "\
+Export as org.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-plain "ox-pandoc" "\
+Export to plain.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-plain-and-open "ox-pandoc" "\
+Export to plain and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-plain "ox-pandoc" "\
+Export as plain.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-pptx "ox-pandoc" "\
+Export to pptx.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-pptx-and-open "ox-pandoc" "\
+Export to pptx and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-revealjs "ox-pandoc" "\
+Export to revealjs.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-revealjs-and-open "ox-pandoc" "\
+Export to revealjs and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-revealjs "ox-pandoc" "\
+Export as revealjs.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-rst "ox-pandoc" "\
+Export to rst.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-rst-and-open "ox-pandoc" "\
+Export to rst and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-rst "ox-pandoc" "\
+Export as rst.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-rtf "ox-pandoc" "\
+Export to rtf.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-rtf-and-open "ox-pandoc" "\
+Export to rtf and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-rtf "ox-pandoc" "\
+Export as rtf.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-s5 "ox-pandoc" "\
+Export to s5.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-s5-and-open "ox-pandoc" "\
+Export to s5 and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-s5 "ox-pandoc" "\
+Export as s5.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-slideous "ox-pandoc" "\
+Export to slideous.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-slideous-and-open "ox-pandoc" "\
+Export to slideous and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-slideous "ox-pandoc" "\
+Export as slideous.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-slidy "ox-pandoc" "\
+Export to slidy.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-slidy-and-open "ox-pandoc" "\
+Export to slidy and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-slidy "ox-pandoc" "\
+Export as slidy.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-tei "ox-pandoc" "\
+Export to tei.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-tei-and-open "ox-pandoc" "\
+Export to tei and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-tei "ox-pandoc" "\
+Export as tei.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-texinfo "ox-pandoc" "\
+Export to texinfo.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-texinfo-and-open "ox-pandoc" "\
+Export to texinfo and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-texinfo "ox-pandoc" "\
+Export as texinfo.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-textile "ox-pandoc" "\
+Export to textile.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-textile-and-open "ox-pandoc" "\
+Export to textile and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-textile "ox-pandoc" "\
+Export as textile.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-zimwiki "ox-pandoc" "\
+Export to zimwiki.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-to-zimwiki-and-open "ox-pandoc" "\
+Export to zimwiki and open.
+
+\(fn &optional A S V B E)" t nil)
+
+(autoload 'org-pandoc-export-as-zimwiki "ox-pandoc" "\
+Export as zimwiki.
+
+\(fn &optional A S V B E)" t nil)
+
+(register-definition-prefixes "ox-pandoc" '("org-pandoc-"))
+
+;;;***
+\f
+;; Local Variables:
+;; version-control: never
+;; no-byte-compile: t
+;; no-update-autoloads: t
+;; coding: utf-8
+;; End:
+;;; ox-pandoc-autoloads.el ends here
--- /dev/null
+;;; ox-pandoc.el --- An Org-mode exporter using pandoc -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2014-2017 KAWABATA, Taichi
+;; Copyright (C) 2021 FENTON, Alex
+
+;; Filename: ox-pandoc.el
+;; Description: Another org exporter for Pandoc
+;; Author: KAWABATA, Taichi <kawabata.taichiNOSPAMgmail.com>
+;; FENTON, Alex <a-fent@github>
+;; Maintainer: FENTON, Alex <a-fent@github>
+;; Created: 2014-07-20
+;; Version: 1.210925
+;; Package-Version: 20220705.1036
+;; Package-Commit: f8eac5e5692fc44a4724ada43191e7c28a1ccf30
+;; Package-Requires: ((org "8.2") (emacs "24.4") (dash "2.8") (ht "2.0"))
+;; Keywords: tools
+;; URL: https://github.com/a-fent/ox-pandoc
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This is another exporter for org-mode that translates Org-mode file
+;; to various other formats via Pandoc. You need org-mode version 8.2
+;; or later, and Pandoc 2.0 or later, to use this package. For
+;; details, please refer https://github.com/a-fent/ox-pandoc.
+
+;;; Code:
+(require 'ox-org)
+(require 'dash)
+(require 'ht)
+(require 'cl-lib)
+(require 'ox-html) ; from `org', needed for `org-html-standalone-image-p'
+
+(defgroup org-pandoc nil
+ "Options specific to Pandoc export back-end."
+ :tag "Org Pandoc"
+ :group 'org-export)
+
+(defconst org-pandoc-valid-options
+ '(abbreviations ascii atx-headers base-header-level bash-completion
+ biblatex bibliography citation-abbreviations citeproc columns csl css
+ data-dir default-image-extension defaults dpi dump-args email-obfuscation eol
+ epub-chapter-level epub-cover-image epub-embed-font epub-metadata
+ epub-subdirectory extract-media fail-if-warnings file-scope filter
+ highlight-style html-q-tags id-prefix ignore-args include-after-body
+ include-before-body include-in-header incremental
+ indented-code-classes katex list-extensions list-highlight-languages
+ list-highlight-styles listings log lua-filter mathjax mathml
+ metadata natbib no-highlight number-offset number-sections
+ pdf-engine-opt pdf-engine preserve-tabs print-default-data-file
+ print-default-template quiet reference-doc reference-links
+ reference-location resource-path section-divs self-contained
+ shift-heading-level-by slide-level standalone strip-comments
+ syntax-definition tab-stop table-of-contents template title-prefix
+ toc top-level-division toc-depth trace track-changes variable
+ verbose version webtex wrap))
+
+(defconst org-pandoc-colon-separated-options
+ '(abbreviations css include-in-header include-before-body
+ include-after-body pdf-engine-opt epub-embed-font bibliography
+ filter lua-filter))
+
+(defconst org-pandoc-file-options
+ '(abbreviations bibliography citation-abbreviations csl defaults
+ epub-cover-image epub-embed-font epub-metadata include-after-body
+ include-before-body include-in-header log lue-filter
+ print-default-data-file reference-doc syntax-definition))
+
+(defconst org-pandoc-extensions
+ '((asciidoc . txt) (beamer . tex)
+ (commonmark . md) (context . tex)
+ (docbook4 . dbk) (docbook5 . dbk) (dokuwiki . doku)
+ (dzslides . html) (epub2 . epub) (epub3 . epub) (gfm . md)
+ (haddock . hs) (html4 . html) (html5 . html) (jira . md) (latex . tex)
+ (markdown . md)
+ (markdown_mmd . md) (markdown_phpextra . md)
+ (markdown_strict . md) (native . hs)
+ (opendocument . xml) (plain . txt) (revealjs . html) (s5 . html)
+ (slideous . html) (slidy . html) (texinfo . texi)
+ (zimwiki . zim)))
+
+(defconst org-pandoc-option-type
+ `(choice (const t) (const nil)
+ (alist :key-type (choice ,@(--map `(const ,it) org-pandoc-valid-options))
+ :value-type (choice (const t) (const nil) string))))
+
+(defcustom org-pandoc-options '((standalone . t)) ;; (mathjax . t) (parse-raw . t)
+ "Pandoc options."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-format-extensions nil
+ "List of Pandoc format extensions for specific output format.
+For example, if you want to specify markdown to have footnotes extension,
+set as `(markdown_strict+footnotes)'."
+ :group 'org-pandoc
+ :type '(repeat symbol))
+
+(defcustom org-pandoc-command "pandoc"
+ "Pandoc command."
+ :group 'org-pandoc
+ :type 'string)
+
+(defcustom org-pandoc-check-version t
+ "Whether to check for a pandoc executable and its version on loading.
+If true, will warn if no pandoc can be found, or if it is an older
+version. If nil, no checks are performed and no warnings generated."
+ :group 'org-pandoc
+ :type 'boolean)
+
+(defcustom org-pandoc-menu-entry
+ '(
+ ;;(?0 "to jats." org-pandoc-export-to-jats)
+ ;;(?0 "to jats and open." org-pandoc-export-to-jats-and-open)
+ ;;(? "as jats." org-pandoc-export-as-jats)
+ ;;(?1 "to epub2 and open." org-pandoc-export-to-epub2-and-open)
+ ;;(?! "to epub2." org-pandoc-export-to-epub2)
+ ;;(?2 "to tei." org-pandoc-export-to-tei)
+ ;;(?2 "to tei and open." org-pandoc-export-to-tei-and-open)
+ ;;(?" "as tei." org-pandoc-export-as-tei)
+ ;;(?3 "to markdown_mmd." org-pandoc-export-to-markdown_mmd)
+ ;;(?3 "to markdown_mmd and open." org-pandoc-export-to-markdown_mmd-and-open)
+ ;;(?# "as markdown_mmd." org-pandoc-export-as-markdown_mmd)
+ ;;(?4 "to html5." org-pandoc-export-to-html5)
+ (?4 "to html5 and open." org-pandoc-export-to-html5-and-open)
+ (?$ "as html5." org-pandoc-export-as-html5)
+ (?5 "to html5-pdf and open." org-pandoc-export-to-html5-pdf-and-open)
+ (?% "to html5-pdf." org-pandoc-export-to-html5-pdf)
+ ;;(?6 "to markdown_phpextra." org-pandoc-export-to-markdown_phpextra)
+ ;;(?6 "to markdown_phpextra and open." org-pandoc-export-to-markdown_phpextra-and-open)
+ ;;(?& "as markdown_phpextra." org-pandoc-export-as-markdown_phpextra)
+ ;;(?7 "to markdown_strict." org-pandoc-export-to-markdown_strict)
+ ;;(?7 "to markdown_strict and open." org-pandoc-export-to-markdown_strict-and-open)
+ ;;(?' "as markdown_strict." org-pandoc-export-as-markdown_strict)
+ ;;(?8 "to opendocument." org-pandoc-export-to-opendocument)
+ ;;(?8 "to opendocument and open." org-pandoc-export-to-opendocument-and-open)
+ ;;(?( "as opendocument." org-pandoc-export-as-opendocument)
+ ;;(?9 "to opml." org-pandoc-export-to-opml)
+ ;;(?9 "to opml and open." org-pandoc-export-to-opml-and-open)
+ ;;(?) "as opml." org-pandoc-export-as-opml)
+ ;;(?: "to rst." org-pandoc-export-to-rst)
+ ;;(?: "to rst and open." org-pandoc-export-to-rst-and-open)
+ ;;(?* "as rst." org-pandoc-export-as-rst)
+ ;;(?< "to slideous." org-pandoc-export-to-slideous)
+ ;; (?\[ "to jira." org-pandoc-export-to-jira)
+ ;; (?\[ "as jira." org-pandoc-export-as-jira)
+ ;; (?< "to slideous and open." org-pandoc-export-to-slideous-and-open)
+ ;; (?, "as slideous." org-pandoc-export-as-slideous)
+ (?= "to ms-pdf and open." org-pandoc-export-to-ms-pdf-and-open)
+ (?- "to ms-pdf." org-pandoc-export-to-ms-pdf)
+ ;;(?> "to textile." org-pandoc-export-to-textile)
+ ;;(?> "to textile and open." org-pandoc-export-to-textile-and-open)
+ ;;(?. "as textile." org-pandoc-export-as-textile)
+ ;;(?a "to asciidoc." org-pandoc-export-to-asciidoc)
+ ;;(?a "to asciidoc and open." org-pandoc-export-to-asciidoc-and-open)
+ ;;(?A "as asciidoc." org-pandoc-export-as-asciidoc)
+ (?b "to beamer-pdf and open." org-pandoc-export-to-beamer-pdf-and-open)
+ (?B "to beamer-pdf." org-pandoc-export-to-beamer-pdf)
+ ;; (?c "to context-pdf and open." org-pandoc-export-to-context-pdf-and-open)
+ ;; (?C "to context-pdf." org-pandoc-export-to-context-pdf)
+ ;;(?d "to docbook5." org-pandoc-export-to-docbook5)
+ (?d "to docbook5 and open." org-pandoc-export-to-docbook5-and-open)
+ (?D "as docbook5." org-pandoc-export-as-docbook5)
+ ;; (?e "to epub3 and open." org-pandoc-export-to-epub3-and-open)
+ ;; (?E "to epub3." org-pandoc-export-to-epub3)
+ ;;(?f "to fb2." org-pandoc-export-to-fb2)
+ ;;(?f "to fb2 and open." org-pandoc-export-to-fb2-and-open)
+ ;;(?F "as fb2." org-pandoc-export-as-fb2)
+ ;;(?g "to gfm." org-pandoc-export-to-gfm)
+ (?g "to gfm and open." org-pandoc-export-to-gfm-and-open)
+ (?G "as gfm." org-pandoc-export-as-gfm)
+ ;;(?h "to html4." org-pandoc-export-to-html4)
+ (?h "to html4 and open." org-pandoc-export-to-html4-and-open)
+ (?H "as html4." org-pandoc-export-as-html4)
+ ;;(?i "to icml." org-pandoc-export-to-icml)
+ ;; (?i "to icml and open." org-pandoc-export-to-icml-and-open)
+ ;; (?I "as icml." org-pandoc-export-as-icml)
+ ;;(?j "to json." org-pandoc-export-to-json)
+ (?j "to json and open." org-pandoc-export-to-json-and-open)
+ (?J "as json." org-pandoc-export-as-json)
+ ;;(?k "to markdown." org-pandoc-export-to-markdown)
+ ;;(?k "to markdown and open." org-pandoc-export-to-markdown-and-open)
+ ;;(?K "as markdown." org-pandoc-export-as-markdown)
+ (?l "to latex-pdf and open." org-pandoc-export-to-latex-pdf-and-open)
+ (?L "to latex-pdf." org-pandoc-export-to-latex-pdf)
+ ;;(?m "to man." org-pandoc-export-to-man)
+ (?m "to man and open." org-pandoc-export-to-man-and-open)
+ (?M "as man." org-pandoc-export-as-man)
+ ;;(?n "to native." org-pandoc-export-to-native)
+ (?n "to native and open." org-pandoc-export-to-native-and-open)
+ (?N "as native." org-pandoc-export-as-native)
+ (?o "to odt and open." org-pandoc-export-to-odt-and-open)
+ (?O "to odt." org-pandoc-export-to-odt)
+ (?p "to pptx and open." org-pandoc-export-to-pptx-and-open)
+ (?P "to pptx." org-pandoc-export-to-pptx)
+ ;;(?q "to commonmark." org-pandoc-export-to-commonmark)
+ ;;(?q "to commonmark and open." org-pandoc-export-to-commonmark-and-open)
+ ;;(?Q "as commonmark." org-pandoc-export-as-commonmark)
+ ;;(?r "to rtf." org-pandoc-export-to-rtf)
+ (?r "to rtf and open." org-pandoc-export-to-rtf-and-open)
+ (?R "as rtf." org-pandoc-export-as-rtf)
+ ;;(?s "to s5." org-pandoc-export-to-s5)
+ ;;(?s "to s5 and open." org-pandoc-export-to-s5-and-open)
+ ;;(?S "as s5." org-pandoc-export-as-s5)
+ ;;(?t "to texinfo." org-pandoc-export-to-texinfo)
+ ;;(?t "to texinfo and open." org-pandoc-export-to-texinfo-and-open)
+ ;;(?T "as texinfo." org-pandoc-export-as-texinfo)
+ ;;(?u "to dokuwiki." org-pandoc-export-to-dokuwiki)
+ ;; (?u "to dokuwiki and open." org-pandoc-export-to-dokuwiki-and-open)
+ ;; (?U "as dokuwiki." org-pandoc-export-as-dokuwiki)
+ ;;(?v "to revealjs." org-pandoc-export-to-revealjs)
+ ;; (?v "to revealjs and open." org-pandoc-export-to-revealjs-and-open)
+ ;; (?V "as revealjs." org-pandoc-export-as-revealjs)
+ ;;(?w "to mediawiki." org-pandoc-export-to-mediawiki)
+ ;; (?w "to mediawiki and open." org-pandoc-export-to-mediawiki-and-open)
+ ;; (?W "as mediawiki." org-pandoc-export-as-mediawiki)
+ (?x "to docx and open." org-pandoc-export-to-docx-and-open)
+ (?X "to docx." org-pandoc-export-to-docx)
+ ;;(?y "to slidy." org-pandoc-export-to-slidy)
+ ;; (?y "to slidy and open." org-pandoc-export-to-slidy-and-open)
+ ;; (?Y "as slidy." org-pandoc-export-as-slidy)
+ ;;(?z "to dzslides." org-pandoc-export-to-dzslides)
+ ;; (?z "to dzslides and open." org-pandoc-export-to-dzslides-and-open)
+ ;; (?Z "as dzslides." org-pandoc-export-as-dzslides)
+ ;;(?{ "to muse." org-pandoc-export-to-muse)
+ ;;(?{ "to muse and open." org-pandoc-export-to-muse-and-open)
+ ;;(?[ "as muse." org-pandoc-export-as-muse)
+ ;;(?} "to zimwiki." org-pandoc-export-to-zimwiki)
+ ;;(?} "to zimwiki and open." org-pandoc-export-to-zimwiki-and-open)
+ ;;(?] "as zimwiki." org-pandoc-export-as-zimwiki)
+ ;;(?~ "to haddock." org-pandoc-export-to-haddock)
+ ;;(?~ "to haddock and open." org-pandoc-export-to-haddock-and-open)
+ ;;(?^ "as haddock." org-pandoc-export-as-haddock)
+ )
+ "Pandoc menu-entry."
+ :group 'org-pandoc
+ :type 'list)
+
+(org-export-define-derived-backend 'pandoc 'org
+ :translate-alist '((entity . org-pandoc-entity)
+ (export-block . org-pandoc-export-block)
+ (export-snippet . org-pandoc-export-snippet)
+ (latex-environment . org-pandoc-latex-environ)
+ (link . org-pandoc-link)
+ (paragraph . org-pandoc-paragraph)
+ (src-block . org-pandoc-src-block)
+ (table . org-pandoc-table)
+ (template . org-pandoc-template))
+ ;; :export-block "PANDOC"
+ :menu-entry
+ `(?p "export via pandoc"
+ ,org-pandoc-menu-entry)
+ :options-alist
+ '((:pandoc-options "PANDOC_OPTIONS" nil nil space)
+ (:pandoc-extensions "PANDOC_EXTENSIONS" nil nil space)
+ (:pandoc-metadata "PANDOC_METADATA" nil nil space)
+ (:pandoc-variables "PANDOC_VARIABLES" nil nil space)
+ (:epub-chapter-level "EPUB_CHAPTER_LEVEL" nil nil t)
+ (:epub-cover-image "EPUB_COVER" nil nil t)
+ (:epub-stylesheet "EPUB_STYLESHEET" nil nil t)
+ (:epub-embed-font "EPUB_EMBED_FONT" nil nil newline)
+ (:epub-meta "EPUB_META" nil nil newline)
+ (:epub-css "EPUB_CSS" nil nil newline)
+ (:epub-rights "EPUB_RIGHTS" nil nil newline)
+ (:bibliography "BIBLIOGRAPHY")))
+
+(defcustom org-pandoc-epub-rights
+ (concat "Copyright " (format-time-string "%Y")
+ (if user-full-name (concat " " user-full-name))
+ (if user-mail-address (concat " <" user-mail-address ">")))
+ "Pandoc option for EPUB copyrihgt statement."
+ :group 'org-pandoc
+ :type 'string)
+
+;;; each backend processor
+
+(defcustom org-pandoc-options-for-asciidoc nil
+ "Pandoc options for asciidoc."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-asciidoc-hook nil
+ "Hook called after processing asciidoc."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-asciidoc (&optional a s v b e)
+ "Export to asciidoc."
+ (interactive) (org-pandoc-export 'asciidoc a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-asciidoc-and-open (&optional a s v b e)
+ "Export to asciidoc and open."
+ (interactive) (org-pandoc-export 'asciidoc a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-asciidoc (&optional a s v b e)
+ "Export as asciidoc."
+ (interactive) (org-pandoc-export 'asciidoc a s v b e t))
+
+(defcustom org-pandoc-options-for-beamer nil
+ "Pandoc options for beamer."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-beamer-hook nil
+ "Hook called after processing beamer."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-beamer (&optional a s v b e)
+ "Export to beamer."
+ (interactive) (org-pandoc-export 'beamer a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-beamer-and-open (&optional a s v b e)
+ "Export to beamer and open."
+ (interactive) (org-pandoc-export 'beamer a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-beamer (&optional a s v b e)
+ "Export as beamer."
+ (interactive) (org-pandoc-export 'beamer a s v b e t))
+
+(defcustom org-pandoc-options-for-beamer-pdf nil
+ "Pandoc options for beamer-pdf."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-beamer-pdf (&optional a s v b e)
+ "Export to beamer-pdf."
+ (interactive) (org-pandoc-export 'beamer-pdf a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-beamer-pdf-and-open (&optional a s v b e)
+ "Export to beamer-pdf and open."
+ (interactive) (org-pandoc-export 'beamer-pdf a s v b e 0))
+
+(defcustom org-pandoc-options-for-commonmark nil
+ "Pandoc options for commonmark."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-commonmark-hook nil
+ "Hook called after processing commonmark."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-commonmark (&optional a s v b e)
+ "Export to commonmark."
+ (interactive) (org-pandoc-export 'commonmark a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-commonmark-and-open (&optional a s v b e)
+ "Export to commonmark and open."
+ (interactive) (org-pandoc-export 'commonmark a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-commonmark (&optional a s v b e)
+ "Export as commonmark."
+ (interactive) (org-pandoc-export 'commonmark a s v b e t))
+
+(defcustom org-pandoc-options-for-context nil
+ "Pandoc options for context."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-context-hook nil
+ "Hook called after processing context."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-context (&optional a s v b e)
+ "Export to context."
+ (interactive) (org-pandoc-export 'context a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-context-and-open (&optional a s v b e)
+ "Export to context and open."
+ (interactive) (org-pandoc-export 'context a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-context (&optional a s v b e)
+ "Export as context."
+ (interactive) (org-pandoc-export 'context a s v b e t))
+
+(defcustom org-pandoc-options-for-context-pdf nil
+ "Pandoc options for context-pdf."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-context-pdf (&optional a s v b e)
+ "Export to context-pdf."
+ (interactive) (org-pandoc-export 'context-pdf a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-context-pdf-and-open (&optional a s v b e)
+ "Export to context-pdf and open."
+ (interactive) (org-pandoc-export 'context-pdf a s v b e 0))
+
+(defcustom org-pandoc-options-for-docbook4 nil
+ "Pandoc options for docbook4."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-docbook4-hook nil
+ "Hook called after processing docbook4."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-docbook4 (&optional a s v b e)
+ "Export to docbook4."
+ (interactive) (org-pandoc-export 'docbook4 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-docbook4-and-open (&optional a s v b e)
+ "Export to docbook4 and open."
+ (interactive) (org-pandoc-export 'docbook4 a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-docbook4 (&optional a s v b e)
+ "Export as docbook4."
+ (interactive) (org-pandoc-export 'docbook4 a s v b e t))
+
+(defcustom org-pandoc-options-for-docbook5 nil
+ "Pandoc options for docbook5."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-docbook5-hook nil
+ "Hook called after processing docbook5."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-docbook5 (&optional a s v b e)
+ "Export to docbook5."
+ (interactive) (org-pandoc-export 'docbook5 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-docbook5-and-open (&optional a s v b e)
+ "Export to docbook5 and open."
+ (interactive) (org-pandoc-export 'docbook5 a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-docbook5 (&optional a s v b e)
+ "Export as docbook5."
+ (interactive) (org-pandoc-export 'docbook5 a s v b e t))
+
+(defcustom org-pandoc-options-for-docx nil
+ "Pandoc options for docx."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-docx (&optional a s v b e)
+ "Export to docx."
+ (interactive) (org-pandoc-export 'docx a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-docx-and-open (&optional a s v b e)
+ "Export to docx and open."
+ (interactive) (org-pandoc-export 'docx a s v b e 0))
+
+(defcustom org-pandoc-options-for-dokuwiki nil
+ "Pandoc options for dokuwiki."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-dokuwiki-hook nil
+ "Hook called after processing dokuwiki."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-dokuwiki (&optional a s v b e)
+ "Export to dokuwiki."
+ (interactive) (org-pandoc-export 'dokuwiki a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-dokuwiki-and-open (&optional a s v b e)
+ "Export to dokuwiki and open."
+ (interactive) (org-pandoc-export 'dokuwiki a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-dokuwiki (&optional a s v b e)
+ "Export as dokuwiki."
+ (interactive) (org-pandoc-export 'dokuwiki a s v b e t))
+
+(defcustom org-pandoc-options-for-dzslides nil
+ "Pandoc options for dzslides."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-dzslides-hook nil
+ "Hook called after processing dzslides."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-dzslides (&optional a s v b e)
+ "Export to dzslides."
+ (interactive) (org-pandoc-export 'dzslides a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-dzslides-and-open (&optional a s v b e)
+ "Export to dzslides and open."
+ (interactive) (org-pandoc-export 'dzslides a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-dzslides (&optional a s v b e)
+ "Export as dzslides."
+ (interactive) (org-pandoc-export 'dzslides a s v b e t))
+
+(defcustom org-pandoc-options-for-epub2 nil
+ "Pandoc options for epub2."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-epub2 (&optional a s v b e)
+ "Export to epub2."
+ (interactive) (org-pandoc-export 'epub2 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-epub2-and-open (&optional a s v b e)
+ "Export to epub2 and open."
+ (interactive) (org-pandoc-export 'epub2 a s v b e 0))
+
+(defcustom org-pandoc-options-for-epub3 nil
+ "Pandoc options for epub3."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-epub3 (&optional a s v b e)
+ "Export to epub3."
+ (interactive) (org-pandoc-export 'epub3 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-epub3-and-open (&optional a s v b e)
+ "Export to epub3 and open."
+ (interactive) (org-pandoc-export 'epub3 a s v b e 0))
+
+(defcustom org-pandoc-options-for-fb2 nil
+ "Pandoc options for fb2."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-fb2-hook nil
+ "Hook called after processing fb2."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-fb2 (&optional a s v b e)
+ "Export to fb2."
+ (interactive) (org-pandoc-export 'fb2 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-fb2-and-open (&optional a s v b e)
+ "Export to fb2 and open."
+ (interactive) (org-pandoc-export 'fb2 a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-fb2 (&optional a s v b e)
+ "Export as fb2."
+ (interactive) (org-pandoc-export 'fb2 a s v b e t))
+
+(defcustom org-pandoc-options-for-gfm nil
+ "Pandoc options for gfm."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-gfm-hook nil
+ "Hook called after processing gfm."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-gfm (&optional a s v b e)
+ "Export to gfm."
+ (interactive) (org-pandoc-export 'gfm a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-gfm-and-open (&optional a s v b e)
+ "Export to gfm and open."
+ (interactive) (org-pandoc-export 'gfm a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-gfm (&optional a s v b e)
+ "Export as gfm."
+ (interactive) (org-pandoc-export 'gfm a s v b e t))
+
+(defcustom org-pandoc-options-for-haddock nil
+ "Pandoc options for haddock."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-haddock-hook nil
+ "Hook called after processing haddock."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-haddock (&optional a s v b e)
+ "Export to haddock."
+ (interactive) (org-pandoc-export 'haddock a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-haddock-and-open (&optional a s v b e)
+ "Export to haddock and open."
+ (interactive) (org-pandoc-export 'haddock a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-haddock (&optional a s v b e)
+ "Export as haddock."
+ (interactive) (org-pandoc-export 'haddock a s v b e t))
+
+(defcustom org-pandoc-options-for-html4 nil
+ "Pandoc options for html4."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-html4-hook nil
+ "Hook called after processing html4."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-html4 (&optional a s v b e)
+ "Export to html4."
+ (interactive) (org-pandoc-export 'html4 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-html4-and-open (&optional a s v b e)
+ "Export to html4 and open."
+ (interactive) (org-pandoc-export 'html4 a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-html4 (&optional a s v b e)
+ "Export as html4."
+ (interactive) (org-pandoc-export 'html4 a s v b e t))
+
+(defcustom org-pandoc-options-for-html5 nil
+ "Pandoc options for html5."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-html5-hook nil
+ "Hook called after processing html5."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-html5 (&optional a s v b e)
+ "Export to html5."
+ (interactive) (org-pandoc-export 'html5 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-html5-and-open (&optional a s v b e)
+ "Export to html5 and open."
+ (interactive) (org-pandoc-export 'html5 a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-html5 (&optional a s v b e)
+ "Export as html5."
+ (interactive) (org-pandoc-export 'html5 a s v b e t))
+
+(defcustom org-pandoc-options-for-html5-pdf nil
+ "Pandoc options for html5-pdf."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-html5-pdf (&optional a s v b e)
+ "Export to html5-pdf."
+ (interactive) (org-pandoc-export 'html5-pdf a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-html5-pdf-and-open (&optional a s v b e)
+ "Export to html5-pdf and open."
+ (interactive) (org-pandoc-export 'html5-pdf a s v b e 0))
+
+(defcustom org-pandoc-options-for-icml nil
+ "Pandoc options for icml."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-icml-hook nil
+ "Hook called after processing icml."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-icml (&optional a s v b e)
+ "Export to icml."
+ (interactive) (org-pandoc-export 'icml a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-icml-and-open (&optional a s v b e)
+ "Export to icml and open."
+ (interactive) (org-pandoc-export 'icml a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-icml (&optional a s v b e)
+ "Export as icml."
+ (interactive) (org-pandoc-export 'icml a s v b e t))
+
+(defcustom org-pandoc-options-for-jats nil
+ "Pandoc options for jats."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-jats-hook nil
+ "Hook called after processing jats."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-jats (&optional a s v b e)
+ "Export to jats."
+ (interactive) (org-pandoc-export 'jats a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-jats-and-open (&optional a s v b e)
+ "Export to jats and open."
+ (interactive) (org-pandoc-export 'jats a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-jats (&optional a s v b e)
+ "Export as jats."
+ (interactive) (org-pandoc-export 'jats a s v b e t))
+
+(defcustom org-pandoc-options-for-jira nil
+ "Pandoc options for jira."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-jira-hook nil
+ "Hook called after processing jira."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-jira (&optional a s v b e)
+ "Export to jira."
+ (interactive) (org-pandoc-export 'jira a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-as-jira (&optional a s v b e)
+ "Export as jira."
+ (interactive) (org-pandoc-export 'jira a s v b e t))
+
+(defcustom org-pandoc-options-for-json nil
+ "Pandoc options for json."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-json-hook nil
+ "Hook called after processing json."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-json (&optional a s v b e)
+ "Export to json."
+ (interactive) (org-pandoc-export 'json a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-json-and-open (&optional a s v b e)
+ "Export to json and open."
+ (interactive) (org-pandoc-export 'json a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-json (&optional a s v b e)
+ "Export as json."
+ (interactive) (org-pandoc-export 'json a s v b e t))
+
+(defcustom org-pandoc-options-for-latex nil
+ "Pandoc options for latex."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-latex-hook nil
+ "Hook called after processing latex."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-latex (&optional a s v b e)
+ "Export to latex."
+ (interactive) (org-pandoc-export 'latex a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-latex-and-open (&optional a s v b e)
+ "Export to latex and open."
+ (interactive) (org-pandoc-export 'latex a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-latex (&optional a s v b e)
+ "Export as latex."
+ (interactive) (org-pandoc-export 'latex a s v b e t))
+
+(defcustom org-pandoc-options-for-latex-pdf nil
+ "Pandoc options for latex-pdf."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-latex-pdf (&optional a s v b e)
+ "Export to latex-pdf."
+ (interactive) (org-pandoc-export 'latex-pdf a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-latex-pdf-and-open (&optional a s v b e)
+ "Export to latex-pdf and open."
+ (interactive) (org-pandoc-export 'latex-pdf a s v b e 0))
+
+(defcustom org-pandoc-options-for-man nil
+ "Pandoc options for man."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-man-hook nil
+ "Hook called after processing man."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-man (&optional a s v b e)
+ "Export to man."
+ (interactive) (org-pandoc-export 'man a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-man-and-open (&optional a s v b e)
+ "Export to man and open."
+ (interactive) (org-pandoc-export 'man a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-man (&optional a s v b e)
+ "Export as man."
+ (interactive) (org-pandoc-export 'man a s v b e t))
+
+(defcustom org-pandoc-options-for-markdown nil
+ "Pandoc options for markdown."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-markdown-hook nil
+ "Hook called after processing markdown."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown (&optional a s v b e)
+ "Export to markdown."
+ (interactive) (org-pandoc-export 'markdown a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown-and-open (&optional a s v b e)
+ "Export to markdown and open."
+ (interactive) (org-pandoc-export 'markdown a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-markdown (&optional a s v b e)
+ "Export as markdown."
+ (interactive) (org-pandoc-export 'markdown a s v b e t))
+
+(defcustom org-pandoc-options-for-markdown_mmd nil
+ "Pandoc options for markdown_mmd."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-markdown_mmd-hook nil
+ "Hook called after processing markdown_mmd."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown_mmd (&optional a s v b e)
+ "Export to markdown_mmd."
+ (interactive) (org-pandoc-export 'markdown_mmd a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown_mmd-and-open (&optional a s v b e)
+ "Export to markdown_mmd and open."
+ (interactive) (org-pandoc-export 'markdown_mmd a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-markdown_mmd (&optional a s v b e)
+ "Export as markdown_mmd."
+ (interactive) (org-pandoc-export 'markdown_mmd a s v b e t))
+
+(defcustom org-pandoc-options-for-markdown_phpextra nil
+ "Pandoc options for markdown_phpextra."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-markdown_phpextra-hook nil
+ "Hook called after processing markdown_phpextra."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown_phpextra (&optional a s v b e)
+ "Export to markdown_phpextra."
+ (interactive) (org-pandoc-export 'markdown_phpextra a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown_phpextra-and-open (&optional a s v b e)
+ "Export to markdown_phpextra and open."
+ (interactive) (org-pandoc-export 'markdown_phpextra a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-markdown_phpextra (&optional a s v b e)
+ "Export as markdown_phpextra."
+ (interactive) (org-pandoc-export 'markdown_phpextra a s v b e t))
+
+(defcustom org-pandoc-options-for-markdown_strict nil
+ "Pandoc options for markdown_strict."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-markdown_strict-hook nil
+ "Hook called after processing markdown_strict."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown_strict (&optional a s v b e)
+ "Export to markdown_strict."
+ (interactive) (org-pandoc-export 'markdown_strict a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-markdown_strict-and-open (&optional a s v b e)
+ "Export to markdown_strict and open."
+ (interactive) (org-pandoc-export 'markdown_strict a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-markdown_strict (&optional a s v b e)
+ "Export as markdown_strict."
+ (interactive) (org-pandoc-export 'markdown_strict a s v b e t))
+
+(defcustom org-pandoc-options-for-mediawiki nil
+ "Pandoc options for mediawiki."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-mediawiki-hook nil
+ "Hook called after processing mediawiki."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-mediawiki (&optional a s v b e)
+ "Export to mediawiki."
+ (interactive) (org-pandoc-export 'mediawiki a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-mediawiki-and-open (&optional a s v b e)
+ "Export to mediawiki and open."
+ (interactive) (org-pandoc-export 'mediawiki a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-mediawiki (&optional a s v b e)
+ "Export as mediawiki."
+ (interactive) (org-pandoc-export 'mediawiki a s v b e t))
+
+(defcustom org-pandoc-options-for-ms nil
+ "Pandoc options for ms."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-ms-hook nil
+ "Hook called after processing ms."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-ms (&optional a s v b e)
+ "Export to ms."
+ (interactive) (org-pandoc-export 'ms a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-ms-and-open (&optional a s v b e)
+ "Export to ms and open."
+ (interactive) (org-pandoc-export 'ms a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-ms (&optional a s v b e)
+ "Export as ms."
+ (interactive) (org-pandoc-export 'ms a s v b e t))
+
+(defcustom org-pandoc-options-for-ms-pdf nil
+ "Pandoc options for ms-pdf."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-ms-pdf (&optional a s v b e)
+ "Export to ms-pdf."
+ (interactive) (org-pandoc-export 'ms-pdf a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-ms-pdf-and-open (&optional a s v b e)
+ "Export to ms-pdf and open."
+ (interactive) (org-pandoc-export 'ms-pdf a s v b e 0))
+
+(defcustom org-pandoc-options-for-muse nil
+ "Pandoc options for muse."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-muse-hook nil
+ "Hook called after processing muse."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-muse (&optional a s v b e)
+ "Export to muse."
+ (interactive) (org-pandoc-export 'muse a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-muse-and-open (&optional a s v b e)
+ "Export to muse and open."
+ (interactive) (org-pandoc-export 'muse a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-muse (&optional a s v b e)
+ "Export as muse."
+ (interactive) (org-pandoc-export 'muse a s v b e t))
+
+(defcustom org-pandoc-options-for-native nil
+ "Pandoc options for native."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-native-hook nil
+ "Hook called after processing native."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-native (&optional a s v b e)
+ "Export to native."
+ (interactive) (org-pandoc-export 'native a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-native-and-open (&optional a s v b e)
+ "Export to native and open."
+ (interactive) (org-pandoc-export 'native a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-native (&optional a s v b e)
+ "Export as native."
+ (interactive) (org-pandoc-export 'native a s v b e t))
+
+(defcustom org-pandoc-options-for-odt nil
+ "Pandoc options for odt."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-odt (&optional a s v b e)
+ "Export to odt."
+ (interactive) (org-pandoc-export 'odt a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-odt-and-open (&optional a s v b e)
+ "Export to odt and open."
+ (interactive) (org-pandoc-export 'odt a s v b e 0))
+
+(defcustom org-pandoc-options-for-opendocument nil
+ "Pandoc options for opendocument."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-opendocument-hook nil
+ "Hook called after processing opendocument."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-opendocument (&optional a s v b e)
+ "Export to opendocument."
+ (interactive) (org-pandoc-export 'opendocument a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-opendocument-and-open (&optional a s v b e)
+ "Export to opendocument and open."
+ (interactive) (org-pandoc-export 'opendocument a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-opendocument (&optional a s v b e)
+ "Export as opendocument."
+ (interactive) (org-pandoc-export 'opendocument a s v b e t))
+
+(defcustom org-pandoc-options-for-opml nil
+ "Pandoc options for opml."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-opml-hook nil
+ "Hook called after processing opml."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-opml (&optional a s v b e)
+ "Export to opml."
+ (interactive) (org-pandoc-export 'opml a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-opml-and-open (&optional a s v b e)
+ "Export to opml and open."
+ (interactive) (org-pandoc-export 'opml a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-opml (&optional a s v b e)
+ "Export as opml."
+ (interactive) (org-pandoc-export 'opml a s v b e t))
+
+(defcustom org-pandoc-options-for-org nil
+ "Pandoc options for org."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-org-hook nil
+ "Hook called after processing org."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-org (&optional a s v b e)
+ "Export to org."
+ (interactive) (org-pandoc-export 'org a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-org-and-open (&optional a s v b e)
+ "Export to org and open."
+ (interactive) (org-pandoc-export 'org a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-org (&optional a s v b e)
+ "Export as org."
+ (interactive) (org-pandoc-export 'org a s v b e t))
+
+(defcustom org-pandoc-options-for-plain nil
+ "Pandoc options for plain."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-plain-hook nil
+ "Hook called after processing plain."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-plain (&optional a s v b e)
+ "Export to plain."
+ (interactive) (org-pandoc-export 'plain a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-plain-and-open (&optional a s v b e)
+ "Export to plain and open."
+ (interactive) (org-pandoc-export 'plain a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-plain (&optional a s v b e)
+ "Export as plain."
+ (interactive) (org-pandoc-export 'plain a s v b e t))
+
+(defcustom org-pandoc-options-for-pptx nil
+ "Pandoc options for pptx."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+;;;###autoload
+(defun org-pandoc-export-to-pptx (&optional a s v b e)
+ "Export to pptx."
+ (interactive) (org-pandoc-export 'pptx a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-pptx-and-open (&optional a s v b e)
+ "Export to pptx and open."
+ (interactive) (org-pandoc-export 'pptx a s v b e 0))
+
+(defcustom org-pandoc-options-for-revealjs nil
+ "Pandoc options for revealjs."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-revealjs-hook nil
+ "Hook called after processing revealjs."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-revealjs (&optional a s v b e)
+ "Export to revealjs."
+ (interactive) (org-pandoc-export 'revealjs a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-revealjs-and-open (&optional a s v b e)
+ "Export to revealjs and open."
+ (interactive) (org-pandoc-export 'revealjs a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-revealjs (&optional a s v b e)
+ "Export as revealjs."
+ (interactive) (org-pandoc-export 'revealjs a s v b e t))
+
+(defcustom org-pandoc-options-for-rst nil
+ "Pandoc options for rst."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-rst-hook nil
+ "Hook called after processing rst."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-rst (&optional a s v b e)
+ "Export to rst."
+ (interactive) (org-pandoc-export 'rst a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-rst-and-open (&optional a s v b e)
+ "Export to rst and open."
+ (interactive) (org-pandoc-export 'rst a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-rst (&optional a s v b e)
+ "Export as rst."
+ (interactive) (org-pandoc-export 'rst a s v b e t))
+
+(defcustom org-pandoc-options-for-rtf nil
+ "Pandoc options for rtf."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-rtf-hook nil
+ "Hook called after processing rtf."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-rtf (&optional a s v b e)
+ "Export to rtf."
+ (interactive) (org-pandoc-export 'rtf a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-rtf-and-open (&optional a s v b e)
+ "Export to rtf and open."
+ (interactive) (org-pandoc-export 'rtf a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-rtf (&optional a s v b e)
+ "Export as rtf."
+ (interactive) (org-pandoc-export 'rtf a s v b e t))
+
+(defcustom org-pandoc-options-for-s5 nil
+ "Pandoc options for s5."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-s5-hook nil
+ "Hook called after processing s5."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-s5 (&optional a s v b e)
+ "Export to s5."
+ (interactive) (org-pandoc-export 's5 a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-s5-and-open (&optional a s v b e)
+ "Export to s5 and open."
+ (interactive) (org-pandoc-export 's5 a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-s5 (&optional a s v b e)
+ "Export as s5."
+ (interactive) (org-pandoc-export 's5 a s v b e t))
+
+(defcustom org-pandoc-options-for-slideous nil
+ "Pandoc options for slideous."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-slideous-hook nil
+ "Hook called after processing slideous."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-slideous (&optional a s v b e)
+ "Export to slideous."
+ (interactive) (org-pandoc-export 'slideous a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-slideous-and-open (&optional a s v b e)
+ "Export to slideous and open."
+ (interactive) (org-pandoc-export 'slideous a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-slideous (&optional a s v b e)
+ "Export as slideous."
+ (interactive) (org-pandoc-export 'slideous a s v b e t))
+
+(defcustom org-pandoc-options-for-slidy nil
+ "Pandoc options for slidy."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-slidy-hook nil
+ "Hook called after processing slidy."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-slidy (&optional a s v b e)
+ "Export to slidy."
+ (interactive) (org-pandoc-export 'slidy a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-slidy-and-open (&optional a s v b e)
+ "Export to slidy and open."
+ (interactive) (org-pandoc-export 'slidy a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-slidy (&optional a s v b e)
+ "Export as slidy."
+ (interactive) (org-pandoc-export 'slidy a s v b e t))
+
+(defcustom org-pandoc-options-for-tei nil
+ "Pandoc options for tei."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-tei-hook nil
+ "Hook called after processing tei."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-tei (&optional a s v b e)
+ "Export to tei."
+ (interactive) (org-pandoc-export 'tei a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-tei-and-open (&optional a s v b e)
+ "Export to tei and open."
+ (interactive) (org-pandoc-export 'tei a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-tei (&optional a s v b e)
+ "Export as tei."
+ (interactive) (org-pandoc-export 'tei a s v b e t))
+
+(defcustom org-pandoc-options-for-texinfo nil
+ "Pandoc options for texinfo."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-texinfo-hook nil
+ "Hook called after processing texinfo."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-texinfo (&optional a s v b e)
+ "Export to texinfo."
+ (interactive) (org-pandoc-export 'texinfo a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-texinfo-and-open (&optional a s v b e)
+ "Export to texinfo and open."
+ (interactive) (org-pandoc-export 'texinfo a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-texinfo (&optional a s v b e)
+ "Export as texinfo."
+ (interactive) (org-pandoc-export 'texinfo a s v b e t))
+
+(defcustom org-pandoc-options-for-textile nil
+ "Pandoc options for textile."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-textile-hook nil
+ "Hook called after processing textile."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-textile (&optional a s v b e)
+ "Export to textile."
+ (interactive) (org-pandoc-export 'textile a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-textile-and-open (&optional a s v b e)
+ "Export to textile and open."
+ (interactive) (org-pandoc-export 'textile a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-textile (&optional a s v b e)
+ "Export as textile."
+ (interactive) (org-pandoc-export 'textile a s v b e t))
+
+(defcustom org-pandoc-options-for-zimwiki nil
+ "Pandoc options for zimwiki."
+ :group 'org-pandoc
+ :type org-pandoc-option-type)
+
+(defcustom org-pandoc-after-processing-zimwiki-hook nil
+ "Hook called after processing zimwiki."
+ :group 'org-pandoc
+ :type 'hook)
+
+;;;###autoload
+(defun org-pandoc-export-to-zimwiki (&optional a s v b e)
+ "Export to zimwiki."
+ (interactive) (org-pandoc-export 'zimwiki a s v b e))
+
+;;;###autoload
+(defun org-pandoc-export-to-zimwiki-and-open (&optional a s v b e)
+ "Export to zimwiki and open."
+ (interactive) (org-pandoc-export 'zimwiki a s v b e 0))
+
+;;;###autoload
+(defun org-pandoc-export-as-zimwiki (&optional a s v b e)
+ "Export as zimwiki."
+ (interactive) (org-pandoc-export 'zimwiki a s v b e t))
+
+
+;;; ox-pandoc main routine
+
+(defvar org-pandoc-format nil)
+(defvar org-pandoc-option-table nil)
+(defvar org-pandoc-format-extensions-str nil)
+(defvar org-pandoc-epub-meta nil)
+(defvar org-pandoc-epub-css nil)
+
+(defun org-pandoc-export (format a s v b e &optional buf-or-open)
+ "General interface for Pandoc Export.
+If BUF-OR-OPEN is nil, output to file. 0, then open the file.
+t means output to buffer."
+ (unless (derived-mode-p 'org-mode)
+ (error "This command must be run on an org-mode buffer"))
+ (unless (executable-find org-pandoc-command)
+ (error "Pandoc (version 1.12.4 or later) can not be found"))
+ (setq org-pandoc-format format)
+ (org-export-to-file 'pandoc (org-export-output-file-name
+ (concat (make-temp-name ".tmp") ".org") s)
+ a s v b e (lambda (f) (org-pandoc-run-to-buffer-or-file f format s buf-or-open))))
+
+(defun org-pandoc--has-caption-p (element _info)
+ "Non-nil when ELEMENT has a caption affiliated keyword.
+INFO is a plist used as a communication channel. This function
+is meant to be used as a predicate for `org-export-get-ordinal'."
+ (org-element-property :caption element))
+
+(defun org-pandoc-set-caption-title (element info fmt pred)
+ "Manually sets a numbered leader for the caption.
+Works around a bug in pandoc (present in at least up-to and
+including pandoc 1.18) which doesn't number things like Tables
+and Figures. ELEMENT is the org-mode element. INFO is a plist
+holding contextual information. FMT is the format of the caption
+label, e.g., \"Table %d:\", or \"Figure %d:\". PRED is a
+predicate function used by org-mode to keep track of
+table/figure/etc. numbers."
+ (let* ((caption (org-element-property :caption element))
+ (name (org-element-property :name element))
+ (name-target (when name (concat "<<" name ">>"))))
+ ;; caption is, e.g. "(((#("Testing table" 0 13 (:parent #8)))))"
+ ;; name is a link target, e.g., tab:test-table
+ ;; (cl-caaar caption) is then, e.g., "Testing table"
+ ;; name-target would be, e.g., "<<tab:test-table>>"
+ (when caption
+ (if (member org-pandoc-format '(beamer beamer-pdf latex latex-pdf))
+ (push name-target (caar caption))
+ ;; Get sequence number of current src-block among every
+ ;; src-block with a caption. Additionally translate the caption
+ ;; label into the local language.
+ (let* ((reference (org-export-get-ordinal element info nil pred))
+ (title-fmt (org-export-translate fmt :utf-8 info))
+ (new-name-target (concat (format title-fmt reference) " " name-target)))
+ ;; Set the text of the caption to have, e.g., 'Table <num>:
+ ;; ' prepended. Also add a target for any hyperlinks to this
+ ;; table. Pandoc doesn't pick up #+LABEL: or #+NAME: elements.
+ (push new-name-target (caar caption)))))))
+
+(defun org-pandoc--numbered-equation-p (element _info)
+ "Non-nil when ELEMENT is a numbered latex equation environment.
+INFO is a plist used as a communication channel. This function
+is meant to be used as a predicate for `org-export-get-ordinal'."
+ (let ((raw-value (org-element-property :value element))
+ (case-fold-search t))
+ (string-match-p
+ (rx "\\begin{"
+ (group-n 1 (or "align" "alignat" "eqnarray" "equation"
+ "flalign" "gather" "multline"))
+ "}" (*? anything)
+ "\\end{" (backref 1) "}" )
+ raw-value)))
+
+(defun org-pandoc-entity (entity _contents _info)
+ "Transcode an ENTITY object for export with pandoc.
+Support org's default entities ('org-entities') and user-defined
+ones ('org-entities-user'). If the final format which pandoc will
+produce is a TeX-based format, use the LaTeX representation.For
+all other formats, output the UTF-8 symbol and let pandoc
+handle its representation in the final format.
+CONTENTS are the definition itself. INFO is a plist holding
+contextual information."
+ (if (member org-pandoc-format '(beamer beamer-pdf latex latex-pdf))
+ (org-element-property :latex entity)
+ (org-element-property :utf-8 entity)))
+
+(defun org-pandoc-latex-environ (latex-env contents info)
+ "Transcode a latex environment for export with pandoc.
+Works around a bug in
+pandoc (https://github.com/jgm/pandoc/issues/1764, present in at
+least up-to and including pandoc 1.18) to surround an AMSMath
+latex environment in BLOB with plain TeX equation block
+delimiters, '$$ .. $$' in order for pandoc to properly recognise
+the maths environment as a latex equation. Also adds surrounding
+line-breaks so that pandoc treats the math environment as its own
+paragraph. This avoids having text before or after the math
+environment ending up on the same line as the equation.
+Additionally, adds a fake equation number if the environment
+should have one. CONTENTS is its contents, as a string or nil.
+INFO is a plist holding contextual information."
+ (let ((raw-value (org-export-expand latex-env contents t))
+ (case-fold-search t)
+ (replacement-str "\n$$\\1$$")
+ (output nil))
+ ;; If we're exporting to a TeX-based format, there's no need for
+ ;; this hack
+ (if (member org-pandoc-format '(beamer beamer-pdf latex latex-pdf))
+ raw-value
+ ;; Otherwise, add '$$' elements before and after the block to get
+ ;; pandoc to process it.
+ ;;
+ ;; For numbered equation environments, we need to fake the
+ ;; equation numbering before sending it to pandoc. Fake equation
+ ;; numbers are typeset as "(%d)", offset from the main equation by
+ ;; a "\qquad" space, ala pandoc-crossref
+ ;; (https://github.com/lierdakil/pandoc-crossref)
+ (when (org-pandoc--numbered-equation-p latex-env info)
+ (let ((reference (org-export-get-ordinal
+ latex-env info nil
+ #'org-pandoc--numbered-equation-p)))
+ (setq replacement-str
+ (format "\n$$\\1 \\\\qquad (%d)$$" reference))))
+
+ ;; For equations with a named links target (`#+NAME:' block), add
+ ;; the target to the top of the equation
+ (let ((name (org-element-property :name latex-env)))
+ (when name
+ (setq replacement-str
+ (concat "\n<<" name ">>" replacement-str))))
+
+ ;; Add '$$' elements before and after the block to get pandoc to
+ ;; process it.
+ (setq output
+ (replace-regexp-in-string
+ (rx (group-n 1 "\\begin{"
+ (group-n 2 (or "align" "alignat" "eqnarray"
+ "equation" "flalign" "gather"
+ "multline")
+ (zero-or-one "*" ))
+ "}" (*? anything)
+ "\\end{" (backref 2) "}" ))
+ replacement-str
+ raw-value))
+
+ ;; If we've added the '$$' delimiters, then also set the
+ ;; :post-blank property to add a blank line after this current
+ ;; latex equation environment
+ (let ((post-blank (org-element-property :post-blank latex-env)))
+ (unless (or (>= post-blank 1) (string-equal raw-value output))
+ (org-element-put-property latex-env :post-blank 1)))
+
+ ;; Return the latex equation with '$$' delimiters and possible
+ ;; (faked) equation numbering.
+ output)))
+
+(defun org-pandoc-link (link contents info)
+ "Transcode a LINK object.
+
+The registered formatter for the 'pandoc backend is used. If none
+exists, transcode using the registered formatter for the 'org
+export backend. For fuzzy (internal) links, resolve the link
+destination in order to determine the appropriate reference
+number of the target Table/Figure/Equation etc. CONTENTS is the
+description of the link, as a string, or nil. INFO is a plist
+holding contextual information."
+ (let ((type (org-element-property :type link)))
+ (cond
+ ;; Try exporting with a registered formatter for 'pandoc
+ ((org-export-custom-protocol-maybe link contents 'pandoc))
+ ;; Try exporting with a registered formatter for 'org
+ ((org-export-custom-protocol-maybe link contents 'org))
+
+ ;; Otherwise, override fuzzy (internal) links that point to
+ ;; numbered items such as Tables, Figures, Sections, etc.
+ ((string= type "fuzzy")
+ (let* ((path (org-element-property :path link))
+ (destination (org-export-resolve-fuzzy-link link info))
+ (dest-type (when destination (org-element-type destination)))
+ (number nil))
+ ;; Different link targets require different predicates to the
+ ;; `org-export-get-ordinal' function in order to resolve to
+ ;; the correct number. NOTE: Should be the same predicate
+ ;; function as used to generate the number in the
+ ;; caption/label/listing etc.
+ (cond
+ ((eq dest-type 'paragraph) ; possible figure
+ (setq number (org-export-get-ordinal
+ destination info nil #'org-html-standalone-image-p)))
+
+ ((eq dest-type 'latex-environment) ; Latex block, equation or similar
+ (setq number (org-export-get-ordinal
+ destination info nil #'org-pandoc--numbered-equation-p)))
+
+ ((string-prefix-p "citeproc_bib_item" path) ; Rendered citation footnote number
+ ) ;; leave it alone, it should already be correct
+
+ (t ; captioned items
+ (setq number (org-export-get-ordinal
+ destination info nil #'org-pandoc--has-caption-p))))
+
+ ;; Numbered items have the number listed in the link
+ ;; description, , fall back on the text in `contents'
+ ;; if there's no resolvable destination
+ (cond
+ ;; Numbered items have the number listed in the link description
+ (number
+ (format "[[#%s][%s]]" path
+ (if (atom number) (number-to-string number)
+ (mapconcat #'number-to-string number "."))))
+
+ ;; Unnumbered headlines have the heading name in the link
+ ;; description
+ ((eq dest-type 'headline)
+ (format "[[#%s][%s]]" path
+ (org-export-data
+ (org-element-property :title destination) info)))
+
+ ;; No resolvable destination, fallback on the text in `contents'
+ ((eq destination nil)
+ (when (org-string-nw-p contents) contents))
+
+ ;; Valid destination, but without a numbered caption/equation
+ ;; and not a heading, fallback to standard org-mode link format
+ (t
+ (org-element-link-interpreter link contents)))))
+
+ ;; Otherwise, fallback to standard org-mode link format
+ ((org-element-link-interpreter link contents)))))
+
+(defun org-pandoc-table (table contents info)
+ "Transcode a TABLE element from Org to Pandoc.
+CONTENTS is the contents of the table. INFO is a plist holding
+contextual information."
+ (org-pandoc-set-caption-title table info "Table %d:"
+ #'org-pandoc--has-caption-p)
+ ;; Export the table with it's modified caption
+ (org-export-expand table contents t))
+
+(defun org-pandoc-template (contents info)
+ "Template processor for CONTENTS and INFO.
+Option table is created in this stage."
+ (setq org-pandoc-option-table (make-hash-table))
+ ;; default options
+ (org-pandoc-put-options org-pandoc-options)
+ (org-pandoc-put-options
+ (symbol-value (intern (format "org-pandoc-options-for-%s" org-pandoc-format))))
+ ;; file options
+ (-when-let (pandoc-options (plist-get info :pandoc-options))
+ (org-pandoc-put-options
+ (--map (let* ((_match (string-match "^\\([^:]+\\):\\(.+\\)$" it))
+ (name (intern (match-string 1 it)))
+ (value (match-string 2 it)))
+ (cons name value))
+ (split-string-and-unquote pandoc-options))))
+ (setq org-pandoc-format-extensions-str
+ (mapcar 'symbol-name org-pandoc-format-extensions))
+ (-when-let (pandoc-extensions (plist-get info :pandoc-extensions))
+ (dolist (extension (split-string pandoc-extensions))
+ (push extension org-pandoc-format-extensions-str)))
+ (setq org-pandoc-epub-css (plist-get info :epub-css))
+ (setq org-pandoc-epub-meta
+ (or (plist-get info :epub-meta)
+ (concat
+ (-when-let (epub-rights (or (plist-get info :epub-rights)
+ org-pandoc-epub-rights))
+ (concat "<dc:rights>" (url-insert-entities-in-string
+ epub-rights) "</dc:rights>\n"))
+ (-when-let (description (plist-get info :description))
+ (concat "<dc:description>" description "</dc:description>\n"))
+ (-when-let (keywords (plist-get info :keywords))
+ (concat "<dc:subject>" keywords "</dc:subject>\n")))))
+ (org-pandoc-put-options
+ (--mapcat (-when-let (val (plist-get info (cdr it)))
+ (list (cons (car it) (split-string-and-unquote val))))
+ '((metadata . :pandoc-metadata)
+ (variable . :pandoc-variables))))
+ (let ((org-pandoc-valid-options
+ '((epub-embed-font . :epub-embed-font)
+ (epub-chapter-level . :epub-chapter-level)
+ (epub-cover-image . :epub-cover-image)
+ (epub-stylesheet . :epub-stylesheet)
+ ;;(bibliography . :bibliography)
+ )))
+ ;; Bibliography option only for org < 9.5
+ (unless (featurep 'oc)
+ (setcar org-pandoc-valid-options '(bibliography . :bibliography) ))
+ (org-pandoc-put-options
+ (--mapcat (-when-let (val (plist-get info (cdr it)))
+ (list (cons (car it) (split-string val "\n"))))
+ org-pandoc-valid-options)))
+ ;; 'ox-pandoc' is derived from 'ox-org'. If 'ox-org' defines its own
+ ;; template, then this template function (org-pandoc-template) calls
+ ;; original ox-org template at the end.
+ (let ((org-template
+ (cdr (assoc 'template
+ (org-export-get-all-transcoders 'org)))))
+ (if org-template
+ (funcall org-template contents info)
+ contents)))
+
+(defun org-pandoc-paragraph (paragraph contents info)
+ "Transcode a PARAGRAPH element from Org to Pandoc.
+CONTENTS is the contents of the paragraph, as a string. INFO is
+the plist used as a communication channel."
+ (when (org-html-standalone-image-p paragraph info)
+ ;; Standalone image.
+ (org-pandoc-set-caption-title paragraph info "Figure %d:"
+ #'org-html-standalone-image-p))
+ ;; Export the paragraph verbatim. Like `org-org-identity', but also
+ ;; preserves #+ATTR_* tags in the output.
+ (org-export-expand paragraph contents t))
+
+(defun org-pandoc-src-block (src-block contents info)
+ "Transcode a SRC-BLOCK element from Org to Pandoc.
+CONTENTS is the contents of the table. INFO is a plist holding
+contextual information."
+ (org-pandoc-set-caption-title src-block info "Listing %d:"
+ #'org-pandoc--has-caption-p)
+ ;; Export the src-block with it's modified caption
+ (org-export-expand src-block contents t))
+
+(defun org-pandoc-export-block (export-block contents info)
+ "Transcode a EXPORT-BLOCK element from Org to Pandoc.
+This might be EXPORT_HTML or EXPORT_LATEX, and is simply
+duplicated into the temporary org file that pandoc converts.
+Special: if the block is BEGIN_EXPORT pandoc, pass the value to
+pandoc. CONTENTS is the contents of the block. INFO is a plist
+holding contextual information."
+ (if (string= (org-element-property :type export-block) "PANDOC")
+ (org-element-property :value export-block)
+ (org-pandoc-identity export-block contents info)))
+
+(defun org-pandoc-export-snippet (export-snippet contents info)
+ "Transcode a @@format:snippet@@ from Org to Pandoc.
+If it is an output format, such as latex or html, the snippet is
+duplicated in full for pandoc to handle as Org's own exporters
+would. If the snippet specifies 'pandoc' as the format, the inner
+content of the snippet is passed to pandoc. CONTENTS is the
+contents of the block. INFO is a plist holding contextual
+information."
+ (if (eq (org-export-snippet-backend export-snippet) 'pandoc)
+ (org-element-property :value export-snippet)
+ (org-pandoc-identity export-snippet contents info)))
+
+(defun org-pandoc-identity (blob contents _info)
+ "Transcode BLOB element or object back into Org syntax.
+CONTENTS is its contents, as a string or nil. INFO is ignored.
+Like `org-org-identity', but also preserves #+ATTR_* tags in the
+output."
+ (org-export-expand blob contents t))
+
+(defun org-pandoc-put-options (options)
+ "Put alist OPTIONS to `org-pandoc-option-table'."
+ (dolist (option options)
+ (let* ((name (car option))
+ (value (cdr option))
+ (values
+ (cond ((not (memq name org-pandoc-valid-options))
+ (error "Org-Pandoc: Improper Option Name! %s" name))
+ ((equal "t" value) t)
+ ((equal "nil" value) nil)
+ ((listp value) value)
+ ((memq name org-pandoc-colon-separated-options)
+ (split-string value ":"))
+ (t (list value)))))
+ (if (memq name org-pandoc-file-options)
+ (setq values
+ (--map (if (file-exists-p it)
+ (if (= ?~ (string-to-char it)) (expand-file-name it) it)
+ (error "File (%s) can not be found" it)) values)))
+ (puthash name values org-pandoc-option-table))))
+
+(defun org-pandoc-run-to-buffer-or-file
+ (input-file format subtreep &optional buffer-or-open)
+ "Run pandoc to convert on org INPUT-FILE or buffer to FORMAT with SUBTREEP.
+
+If BUFFER-OR-OPEN is t then target is current buffer. If nil, target is file.
+If 0, target is file and converted file will automatically be opend."
+ (let* ((pdf-p (string-match "-pdf$" (symbol-name format)))
+ (output-file
+ (unless (equal t buffer-or-open)
+ (org-export-output-file-name
+ (concat "."
+ (if pdf-p "pdf"
+ (symbol-name
+ (or (assoc-default format org-pandoc-extensions)
+ format))))
+ subtreep)))
+ (local-hook-symbol (intern (format "org-pandoc-after-processing-%s-hook"
+ format)))
+ css-temp-file meta-temp-file)
+ ;; convert format "XXX-pdf" to "XXX"
+ (when pdf-p (setq format (intern (substring (symbol-name format) 0 -4))))
+ ;; special treatment for epub2/epub3
+ (when (or (equal org-pandoc-format 'epub2)
+ (equal org-pandoc-format 'epub3))
+ (when org-pandoc-epub-css
+ (setq css-temp-file (make-temp-file "org-pandoc" nil ".css"))
+ (puthash 'epub-stylesheet
+ (append (gethash 'epub-stylesheet org-pandoc-option-table)
+ (list css-temp-file))
+ org-pandoc-option-table)
+ (with-temp-file css-temp-file
+ (insert org-pandoc-epub-css)))
+ (when org-pandoc-epub-meta
+ (setq meta-temp-file (make-temp-file "org-pandoc" nil ".xml"))
+ (org-pandoc-put-options `((epub-metadata ,meta-temp-file)))
+ (with-temp-file meta-temp-file
+ (insert org-pandoc-epub-meta))))
+ (let ((process
+ (org-pandoc-run input-file output-file format
+ 'org-pandoc-sentinel org-pandoc-option-table)))
+ (process-put process 'files (list input-file meta-temp-file css-temp-file))
+ (process-put process 'output-file output-file)
+ (process-put process 'local-hook-symbol local-hook-symbol)
+ (process-put process 'buffer-or-open buffer-or-open))))
+
+(defun org-pandoc-sentinel (process message)
+ "PROCESS sentinel with MESSAGE.
+Called on completion of an asynchronous pandoc process."
+ (cl-case (process-status process)
+ (run)
+ (signal
+ ;; Warning. Temporary files not removed (for now.)
+ (display-warning 'ox-pandoc (format "Signal Received. %s" message)))
+ (exit
+ (dolist (file (process-get process 'files))
+ (if (and file (file-exists-p file)) (delete-file file)))
+ (let ((exit-status (process-exit-status process))
+ (buffer (process-buffer process))
+ (output-file (process-get process 'output-file))
+ (local-hook-symbol (process-get process 'local-hook-symbol))
+ (buffer-or-open (process-get process 'buffer-or-open)))
+ (if (/= exit-status 0)
+ (message "Error occured. \n%s"
+ (with-current-buffer buffer (buffer-string)))
+ (if output-file
+ (progn
+ (kill-buffer buffer)
+ (message "Exported to %s." output-file)
+ (if (and (boundp local-hook-symbol)
+ (symbol-value local-hook-symbol))
+ (with-temp-file output-file
+ (insert-file-contents output-file)
+ (run-hooks local-hook-symbol)))
+ (when (equal 0 buffer-or-open)
+ (org-open-file output-file)))
+ ;; output to buffer
+ (pop-to-buffer buffer)
+ (goto-char (point-min))
+ (run-hooks local-hook-symbol)
+ (set-auto-mode)))))))
+
+(defun org-pandoc-run (input-file output-file format sentinel &optional options)
+ "Run pandoc command with INPUT-FILE (org), OUTPUT-FILE, FORMAT and OPTIONS.
+If BUFFER-OR-FILE is buffer, then output to specified buffer. OPTIONS is
+a hashtable. Pandoc runs asynchronously and SENTINEL is called
+when the process completes."
+ (let* ((format (symbol-name format))
+ (output-format
+ (car (--filter (string-prefix-p format it)
+ org-pandoc-format-extensions-str)))
+ (args
+ `("-f" "org"
+ "-t" ,(or output-format format)
+ ,@(and output-file
+ (list "-o" (expand-file-name output-file)))
+ ,@(-mapcat (lambda (key)
+ (-when-let (vals (gethash key options))
+ (if (equal vals t) (setq vals (list t)))
+ (--map (concat "--" (symbol-name key)
+ (when (not (equal it t)) (format "=%s" it)))
+ vals)))
+ (ht-keys options))
+ ,(expand-file-name input-file))))
+ (message "Running pandoc with args: %s" args)
+ (let ((process
+ (apply 'start-process
+ `("pandoc" ,(generate-new-buffer "*Pandoc*")
+ ,org-pandoc-command ,@args))))
+ (set-process-sentinel process sentinel)
+ process)))
+
+(defun org-pandoc-startup-check ()
+ "Check the current pandoc version."
+ (interactive)
+ (catch 'check-suppressed
+ (unless org-pandoc-check-version
+ (throw 'check-suppressed nil))
+ (if (not (executable-find org-pandoc-command))
+ (display-warning 'ox-pandoc "Pandoc command is not installed.")
+ (let ((version (with-temp-buffer
+ (call-process org-pandoc-command nil t nil "-v")
+ (buffer-string))))
+ (if (not (string-match "^pandoc.*? \\([0-9]+\\)\\.\\([0-9]+\\)" version))
+ (display-warning 'ox-pandoc "Pandoc version number can not be retrieved.")
+ (let ((major (string-to-number (match-string 1 version)))
+ (_minor (string-to-number (match-string 2 version))))
+ (unless (or (< 1 major)
+ ;;(and (= 1 major)
+ ;; (< 12 minor))
+ )
+ (display-warning 'ox-pandoc "This Pandoc (1.x) may not support new pandoc features."))))))))
+
+(org-pandoc-startup-check)
+
+(provide 'ox-pandoc)
+
+;;; ox-pandoc.el ends here
+
+;; Local Variables:
+;; time-stamp-pattern: "10/Version:\\\\?[ \t]+1.%02y%02m%02d\\\\?\n"
+;; End: