ox-odt.el: Add support for JabRefmaster
commitf0f93716ce9de71dc904887c066e03644c795545
authorVaidheeswaran C <vaidheeswaran.chinnaraju@gmail.com>
Wed, 24 Jul 2013 13:55:02 +0000 (24 19:25 +0530)
committerVaidheeswaran C <vaidheeswaran.chinnaraju@gmail.com>
Wed, 4 Mar 2015 08:28:17 +0000 (4 13:58 +0530)
treefbbc1a7e1c13b49ebc545550ecfd8497d9ba805d
parent7599897f933766c68420a3035caeb7cad66f54d4
ox-odt.el: Add support for JabRef

* contrib/lisp/ox-jabref.el: New file.

* lisp/org.el (org-modules): Add ox-jabref.

* etc/styles/OrgOdtStyles.xml (Bibliography_20_Heading)
(Bibliography, OrgBibliographyList, OrgCite): New styles.

* lisp/ox-odt.el (org-export-define-backend): New non-standard
element `citation-reference'.  Register
`org-odt--translate-cite-fragments'.
(org-odt--translate-cite-fragments):  New filter.
(org-odt-citation-transcoders): New user option.
(org-odt-citation-reference, org-odt-citation-reference/numbered):
Stock transcoders for `citation-reference' elements.
(org-odt-keyword): Handle BIBLIOGRAPHY.
(org-odt--export-wrap): Make the condition case debuggable.

Import JabRef Chicago filters

* JabRef: New directory.
* JabRef/Chicago_export_filters.pdf: New file.
* JabRef/net.sf.jabref.export.Chicago.ODF(English)-1.2.jar:
Chicago filters modified for use with OpenDocument export.

(ox-odt, ox-jabref): Recognize \citep{} etc as cite fragments

* lisp/ox-odt.el (org-odt-cite-regexp): New user option.
(org-odt-citation-reference/numbered)
(org-odt--translate-cite-fragments): Use `org-odt-cite-regexp'.
* contrib/lisp/ox-jabref.el
(org-jabref-odt-citation-transcoders): Fix custom group.
(org-jabref-odt-citation-reference/text):  Use `org-odt-cite-regexp'.

Recognize \citep{}, \citet{} etc as cite fragments.  See
http://lists.gnu.org/archive/html/emacs-orgmode/2014-01/msg00581.html

ox-jabref.el: Expand "~" etc. in bib file name

* contrib/lisp/ox-jabref.el
(org-jabref--read-bibliography-attribute): Expand file name.
Add check for existence.

ox-odt.el, ox-jabref.el: Trim cite key

* lisp/ox-odt.el (org-odt-citation-reference/numbered):
(org-odt--translate-cite-fragments): Trim cite key.

* contrib/lisp/ox-jabref.el
(org-jabref-odt-citation-reference/text): Trim cite key.

ox-jabref.el: Match exactly against the citekey

* contrib/lisp/ox-jabref.el (org-jabref-export-cite-key):
Match exactly against the citekey.

ox-jabref.el: Use cache to speed up export of citations and bibliography

* contrib/lisp/ox-jabref.el
(org-jabref-temporary-file-directory): New.
(org-jabref-use-cache, org-jabref-cache-directory): New user
variables.
(org-jabref-export--with-cache): New.  Wrap `org-jabref-export-bib-file'
and `org-jabref-export-cite-key' with a cache lookup.
(org-jabref-load-citation-cache): New.  Around advice for
`org-export-collect-tree-properties'.  Push :citation-cache in
to info.
(org-jabref-write-citation-cache): New.
(org-jabref--enhanced-odt-backend): Install
`org-jabref-write-citation-cache' as a final filter.
(ox-jabref-unload-function): Deactivate advice for
`org-export-collect-tree-properties'.
(org-jabref-export-cite-key): Throw `user-error' if the JabRef
command fails.

Use a cache to speed up second and subsequent export of
citations.  This circumvents slow-down experienced with the
JabRef command line processing.  See

1. http://lists.gnu.org/archive/html/emacs-orgmode/2013-07/msg01099.html
2. http://lists.gnu.org/archive/html/emacs-orgmode/2014-04/msg01094.html

ox-jabref.el: Cleanup whitespace that precede citation numbers

* contrib/lisp/ox-jabref.el (org-jabref-odt-cleanup-citation-references): New.
(org-jabref--enhanced-odt-backend): Install the above final filter.

Preserve spaces after citation-reference objects

* lisp/ox-odt.el (org-odt--translate-cite-fragments): Copy over
:post-blank prop of cite fragments.

* contrib/lisp/ox-jabref.el (org-jabref-odt-citation-reference):
Honor :post-blank property.

ox-jabref.el (org-jabref-clear-cache): New command

* contrib/lisp/ox-jabref.el (org-jabref-clear-cache): New command.
(org-jabref-cache-directory): Update docstring.

OrgOdtContentTemplate.xml (OrgIndexSection): Editable and no background color

* etc/styles/OrgOdtContentTemplate.xml (OrgIndexSection): Remove
background color. This makes the exported document
printer-friendly.  Make the section editable.

OrgOdtStyles.xml (Bibliography): Use hanging indent

* etc/styles/OrgOdtStyles.xml (Bibliography): Use hanging indent.

(ox-jabref.el): Speed-up export & Support more citation styles

* contrib/lisp/ox-jabref.el (org-jabref-citation-styles):
(org-jabref-citation-formatters): New user variables.

* lisp/ox-odt.el (org-odt-cite-regexp): Relax it.
Allow match for the word "cite" anywhere withing the latex
command.
(org-odt--format-footnote-definition): Factored out from
`org-odt-footnote-reference'.
(org-odt-footnote-reference): Use it.
(org-odt-citation-reference/numbered): Remove it.

Don't use hanging indent for numbered bibliography

* contrib/lisp/ox-jabref.el
(org-jabref--strip-and-add-pre/post-notes): Trivial fix.
(org-jabref-odt-format-bibliography): Removed.
(org-jabref-odt-format-bibliography--no-hanging-indent)
(org-jabref-odt-format-bibliography--use-hanging-indent): New.
(org-jabref-citation-formatters): Use above functions.

ox-odt.el, ox-jabref.el: Integrate with new citation syntax

* lisp/ox-odt.el:
(org-odt-citation): New.
(org-odt--collect-cite-keys): Add
(org-odt-cite-regexp): Remove it.
(org-odt-citation-reference): Remove it
(org-odt--translate-cite-fragments): Remove it.

* contrib/lisp/ox-jabref.el: Integrate with new citation syntax.

ox-odt.el: Update copyright years
JabRef/Chicago_export_filters.pdf [new file with mode: 0644]
JabRef/net.sf.jabref.export.Chicago.ODF(English)-1.2.jar [new file with mode: 0644]
contrib/lisp/ox-jabref.el [new file with mode: 0644]
etc/styles/OrgOdtContentTemplate.xml
etc/styles/OrgOdtStyles.xml
lisp/org.el
lisp/ox-odt.el