mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-12-29 11:02:33 +00:00
Merge branch 'maint'
This commit is contained in:
commit
2e94271bd1
@ -116,6 +116,18 @@
|
||||
|
||||
;;; Internal Variables
|
||||
|
||||
(defconst org-e-odt-lib-dir
|
||||
(file-name-directory load-file-name)
|
||||
"Location of ODT exporter.
|
||||
Use this to infer values of `org-e-odt-styles-dir' and
|
||||
`org-e-odt-schema-dir'.")
|
||||
|
||||
(defvar org-e-odt-data-dir
|
||||
(expand-file-name "../../etc/" org-e-odt-lib-dir)
|
||||
"Data directory for ODT exporter.
|
||||
Use this to infer values of `org-e-odt-styles-dir' and
|
||||
`org-e-odt-schema-dir'.")
|
||||
|
||||
(defconst org-e-odt-special-string-regexps
|
||||
'(("\\\\-" . "­\\1") ; shy
|
||||
("---\\([^-]\\)" . "—\\1") ; mdash
|
||||
@ -123,37 +135,69 @@
|
||||
("\\.\\.\\." . "…")) ; hellip
|
||||
"Regular expressions for special string conversion.")
|
||||
|
||||
(defconst org-e-odt-schema-dir-list
|
||||
(list
|
||||
(and org-e-odt-data-dir
|
||||
(expand-file-name "./schema/" org-e-odt-data-dir)) ; bail out
|
||||
(eval-when-compile
|
||||
(and (boundp 'org-e-odt-data-dir) org-e-odt-data-dir ; see make install
|
||||
(expand-file-name "./schema/" org-e-odt-data-dir))))
|
||||
"List of directories to search for OpenDocument schema files.
|
||||
Use this list to set the default value of
|
||||
`org-e-odt-schema-dir'. The entries in this list are
|
||||
populated heuristically based on the values of `org-e-odt-lib-dir'
|
||||
and `org-e-odt-data-dir'.")
|
||||
|
||||
(defconst org-e-odt-styles-dir-list
|
||||
(list
|
||||
(and org-e-odt-data-dir
|
||||
(expand-file-name "./styles/" org-e-odt-data-dir)) ; bail out
|
||||
(eval-when-compile
|
||||
(and (boundp 'org-e-odt-data-dir) org-e-odt-data-dir ; see make install
|
||||
(expand-file-name "./styles/" org-e-odt-data-dir)))
|
||||
(expand-file-name "../../etc/styles/" org-e-odt-lib-dir) ; git
|
||||
(expand-file-name "./etc/styles/" org-e-odt-lib-dir) ; elpa
|
||||
(expand-file-name "./org/" data-directory) ; system
|
||||
)
|
||||
"List of directories to search for OpenDocument styles files.
|
||||
See `org-e-odt-styles-dir'. The entries in this list are populated
|
||||
heuristically based on the values of `org-e-odt-lib-dir' and
|
||||
`org-e-odt-data-dir'.")
|
||||
|
||||
(defconst org-e-odt-styles-dir
|
||||
(let* ((d (expand-file-name (org-find-library-dir "org-e-odt.el")))
|
||||
(styles-dir-list (list
|
||||
(concat d "etc/styles/") ;; ELPA and Git
|
||||
(concat d "etc/org/") ;; Org from Emacs
|
||||
(concat d "../"
|
||||
(number-to-string emacs-major-version) "."
|
||||
(number-to-string emacs-minor-version) "/etc/org/")
|
||||
(concat data-directory "org/"))) ;; Custom install
|
||||
styles-dir)
|
||||
(setq styles-dir
|
||||
(car
|
||||
(delq nil
|
||||
(mapcar (lambda (sd)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtContentTemplate.xml" sd))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtStyles.xml" sd)))
|
||||
sd))
|
||||
styles-dir-list))))
|
||||
(or (expand-file-name styles-dir)
|
||||
(message "Cannot find factory styles files for Org ODT")))
|
||||
(let* ((styles-dir
|
||||
(catch 'styles-dir
|
||||
(message "Debug (org-e-odt): Searching for OpenDocument styles files...")
|
||||
(mapc (lambda (styles-dir)
|
||||
(when styles-dir
|
||||
(message "Debug (org-e-odt): Trying %s..." styles-dir)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtContentTemplate.xml" styles-dir))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtStyles.xml" styles-dir)))
|
||||
(message "Debug (org-e-odt): Using styles under %s"
|
||||
styles-dir)
|
||||
(throw 'styles-dir styles-dir))))
|
||||
org-e-odt-styles-dir-list)
|
||||
nil)))
|
||||
(unless styles-dir
|
||||
(error "Error (org-e-odt): Cannot find factory styles files, aborting"))
|
||||
styles-dir)
|
||||
"Directory that holds auxiliary XML files used by the ODT exporter.
|
||||
|
||||
This directory contains the following XML files -
|
||||
\"OrgOdtStyles.xml\" and \"OrgOdtContentTemplate.xml\".
|
||||
These XML files are used as the default values of
|
||||
`org-export-odt-styles-file' and
|
||||
`org-export-odt-content-template-file'.")
|
||||
\"OrgOdtStyles.xml\" and \"OrgOdtContentTemplate.xml\". These
|
||||
XML files are used as the default values of
|
||||
`org-e-odt-styles-file' and
|
||||
`org-e-odt-content-template-file'.
|
||||
|
||||
The default value of this variable varies depending on the
|
||||
version of org in use and is initialized from
|
||||
`org-e-odt-styles-dir-list'. Note that the user could be using org
|
||||
from one of: org's own private git repository, GNU ELPA tar or
|
||||
standard Emacs.")
|
||||
|
||||
(defconst org-e-odt-bookmark-prefix "OrgXref.")
|
||||
|
||||
@ -330,26 +374,28 @@ visually."
|
||||
;;;; Document schema
|
||||
|
||||
(defcustom org-e-odt-schema-dir
|
||||
(let* ((d (expand-file-name (org-find-library-dir "org-e-odt.el")))
|
||||
(schema-dir-list (list (concat d "../etc/schema/"))) ;; ELPA and Git
|
||||
schema-dir)
|
||||
(setq schema-dir
|
||||
(car
|
||||
(delq nil
|
||||
(mapcar (lambda (sd)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name
|
||||
"od-manifest-schema-v1.2-cs01.rnc" sd))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"od-schema-v1.2-cs01.rnc" sd))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"schemas.xml" sd)))
|
||||
sd))
|
||||
schema-dir-list))))
|
||||
(or schema-dir
|
||||
(message "No OpenDocument schema files installed")))
|
||||
(let* ((schema-dir
|
||||
(catch 'schema-dir
|
||||
(message "Debug (org-e-odt): Searching for OpenDocument schema files...")
|
||||
(mapc
|
||||
(lambda (schema-dir)
|
||||
(when schema-dir
|
||||
(message "Debug (org-e-odt): Trying %s..." schema-dir)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name "od-manifest-schema-v1.2-cs01.rnc"
|
||||
schema-dir))
|
||||
(file-readable-p
|
||||
(expand-file-name "od-schema-v1.2-cs01.rnc"
|
||||
schema-dir))
|
||||
(file-readable-p
|
||||
(expand-file-name "schemas.xml" schema-dir)))
|
||||
(message "Debug (org-e-odt): Using schema files under %s"
|
||||
schema-dir)
|
||||
(throw 'schema-dir schema-dir))))
|
||||
org-e-odt-schema-dir-list)
|
||||
(message "Debug (org-e-odt): No OpenDocument schema files installed")
|
||||
nil)))
|
||||
schema-dir)
|
||||
"Directory that contains OpenDocument schema files.
|
||||
|
||||
This directory contains:
|
||||
@ -362,13 +408,15 @@ that `rng-schema-locating-files' is updated and auto-validation
|
||||
of OpenDocument XML takes place based on the value
|
||||
`rng-nxml-auto-validate-flag'.
|
||||
|
||||
The OASIS schema files are available only in the Org's private
|
||||
git repository. It is *not* bundled with GNU ELPA tar or
|
||||
standard Emacs distribution."
|
||||
The default value of this variable varies depending on the
|
||||
version of org in use and is initialized from
|
||||
`org-e-odt-schema-dir-list'. The OASIS schema files are available
|
||||
only in the org's private git repository. It is *not* bundled
|
||||
with GNU ELPA tar or standard Emacs distribution."
|
||||
:type '(choice
|
||||
(const :tag "Not set" nil)
|
||||
(directory :tag "Schema directory"))
|
||||
:group 'org-e-odt
|
||||
:group 'org-export-e-odt
|
||||
:version "24.1"
|
||||
:set
|
||||
(lambda (var value)
|
||||
@ -384,12 +432,17 @@ Also add it to `rng-schema-locating-files'."
|
||||
(file-readable-p
|
||||
(expand-file-name "schemas.xml" schema-dir)))
|
||||
schema-dir
|
||||
(when value (message "No OpenDocument schema files")))))
|
||||
(when value
|
||||
(message "Error (org-e-odt): %s has no OpenDocument schema files"
|
||||
value))
|
||||
nil)))
|
||||
(when org-e-odt-schema-dir
|
||||
(eval-after-load 'rng-loc
|
||||
'(add-to-list 'rng-schema-locating-files
|
||||
(expand-file-name "schemas.xml"
|
||||
org-e-odt-schema-dir))))))
|
||||
|
||||
|
||||
;;;; Document styles
|
||||
|
||||
(defcustom org-e-odt-content-template-file nil
|
||||
@ -1788,6 +1841,7 @@ CONTENTS is nil. INFO is a plist holding contextual information."
|
||||
|
||||
;;;; Latex Environment
|
||||
|
||||
|
||||
(eval-after-load 'org-odt
|
||||
'(ad-deactivate 'org-format-latex-as-mathml))
|
||||
|
||||
|
151
lisp/org-odt.el
151
lisp/org-odt.el
@ -84,27 +84,52 @@
|
||||
("\\.\\.\\." . "…")) ; hellip
|
||||
"Regular expressions for special string conversion.")
|
||||
|
||||
(defconst org-odt-lib-dir (file-name-directory load-file-name)
|
||||
"Location of ODT exporter.
|
||||
Use this to infer values of `org-odt-styles-dir' and
|
||||
`org-export-odt-schema-dir'.")
|
||||
|
||||
(defvar org-odt-data-dir nil
|
||||
"Data directory for ODT exporter.
|
||||
Use this to infer values of `org-odt-styles-dir' and
|
||||
`org-export-odt-schema-dir'.")
|
||||
|
||||
(defconst org-odt-schema-dir-list
|
||||
(list
|
||||
(and org-odt-data-dir
|
||||
(expand-file-name "./schema/" org-odt-data-dir)) ; bail out
|
||||
(eval-when-compile
|
||||
(and (boundp 'org-odt-data-dir) org-odt-data-dir ; see make install
|
||||
(expand-file-name "./schema/" org-odt-data-dir))))
|
||||
"List of directories to search for OpenDocument schema files.
|
||||
Use this list to set the default value of
|
||||
`org-export-odt-schema-dir'. The entries in this list are
|
||||
populated heuristically based on the values of `org-odt-lib-dir'
|
||||
and `org-odt-data-dir'.")
|
||||
|
||||
(defcustom org-export-odt-schema-dir
|
||||
(let* ((d (expand-file-name "../" (org-find-library-dir "org-odt.el")))
|
||||
(schema-dir-list (list (concat d "etc/schema/"))) ;; ELPA and Git
|
||||
schema-dir)
|
||||
(setq schema-dir
|
||||
(car
|
||||
(delq nil
|
||||
(mapcar (lambda (sd)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name
|
||||
"od-manifest-schema-v1.2-cs01.rnc" sd))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"od-schema-v1.2-cs01.rnc" sd))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"schemas.xml" sd)))
|
||||
sd))
|
||||
schema-dir-list))))
|
||||
(or schema-dir
|
||||
(message "No OpenDocument schema files installed")))
|
||||
(let* ((schema-dir
|
||||
(catch 'schema-dir
|
||||
(message "Debug (org-odt): Searching for OpenDocument schema files...")
|
||||
(mapc
|
||||
(lambda (schema-dir)
|
||||
(when schema-dir
|
||||
(message "Debug (org-odt): Trying %s..." schema-dir)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name "od-manifest-schema-v1.2-cs01.rnc"
|
||||
schema-dir))
|
||||
(file-readable-p
|
||||
(expand-file-name "od-schema-v1.2-cs01.rnc"
|
||||
schema-dir))
|
||||
(file-readable-p
|
||||
(expand-file-name "schemas.xml" schema-dir)))
|
||||
(message "Debug (org-odt): Using schema files under %s"
|
||||
schema-dir)
|
||||
(throw 'schema-dir schema-dir))))
|
||||
org-odt-schema-dir-list)
|
||||
(message "Debug (org-odt): No OpenDocument schema files installed")
|
||||
nil)))
|
||||
schema-dir)
|
||||
"Directory that contains OpenDocument schema files.
|
||||
|
||||
This directory contains:
|
||||
@ -117,9 +142,11 @@ that `rng-schema-locating-files' is updated and auto-validation
|
||||
of OpenDocument XML takes place based on the value
|
||||
`rng-nxml-auto-validate-flag'.
|
||||
|
||||
The OASIS schema files are available only in the Org's private
|
||||
git repository. It is *not* bundled with GNU ELPA tar or
|
||||
standard Emacs distribution."
|
||||
The default value of this variable varies depending on the
|
||||
version of org in use and is initialized from
|
||||
`org-odt-schema-dir-list'. The OASIS schema files are available
|
||||
only in the org's private git repository. It is *not* bundled
|
||||
with GNU ELPA tar or standard Emacs distribution."
|
||||
:type '(choice
|
||||
(const :tag "Not set" nil)
|
||||
(directory :tag "Schema directory"))
|
||||
@ -139,44 +166,66 @@ Also add it to `rng-schema-locating-files'."
|
||||
(file-readable-p
|
||||
(expand-file-name "schemas.xml" schema-dir)))
|
||||
schema-dir
|
||||
(when value (message "No OpenDocument schema files")))))
|
||||
(when value
|
||||
(message "Error (org-odt): %s has no OpenDocument schema files"
|
||||
value))
|
||||
nil)))
|
||||
(when org-export-odt-schema-dir
|
||||
(eval-after-load 'rng-loc
|
||||
'(add-to-list 'rng-schema-locating-files
|
||||
(expand-file-name "schemas.xml"
|
||||
org-export-odt-schema-dir))))))
|
||||
|
||||
(defconst org-odt-styles-dir-list
|
||||
(list
|
||||
(and org-odt-data-dir
|
||||
(expand-file-name "./styles/" org-odt-data-dir)) ; bail out
|
||||
(eval-when-compile
|
||||
(and (boundp 'org-odt-data-dir) org-odt-data-dir ; see make install
|
||||
(expand-file-name "./styles/" org-odt-data-dir)))
|
||||
(expand-file-name "../etc/styles/" org-odt-lib-dir) ; git
|
||||
(expand-file-name "./etc/styles/" org-odt-lib-dir) ; elpa
|
||||
(expand-file-name "./org/" data-directory) ; system
|
||||
)
|
||||
"List of directories to search for OpenDocument styles files.
|
||||
See `org-odt-styles-dir'. The entries in this list are populated
|
||||
heuristically based on the values of `org-odt-lib-dir' and
|
||||
`org-odt-data-dir'.")
|
||||
|
||||
(defconst org-odt-styles-dir
|
||||
(let* ((d (expand-file-name "../" (org-find-library-dir "org-odt.el")))
|
||||
(styles-dir-list (list
|
||||
(concat d "etc/styles/") ;; ELPA and Git
|
||||
(concat d "etc/org/") ;; Org from Emacs
|
||||
(concat d "../"
|
||||
(number-to-string emacs-major-version) "."
|
||||
(number-to-string emacs-minor-version) "/etc/org/")
|
||||
(concat data-directory "org/"))) ;; Custom install
|
||||
styles-dir)
|
||||
(setq styles-dir
|
||||
(car
|
||||
(delq nil
|
||||
(mapcar (lambda (sd)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtContentTemplate.xml" sd))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtStyles.xml" sd)))
|
||||
sd))
|
||||
styles-dir-list))))
|
||||
(or (expand-file-name styles-dir)
|
||||
(message "Cannot find factory styles files for Org ODT, aborting")))
|
||||
(let* ((styles-dir
|
||||
(catch 'styles-dir
|
||||
(message "Debug (org-odt): Searching for OpenDocument styles files...")
|
||||
(mapc (lambda (styles-dir)
|
||||
(when styles-dir
|
||||
(message "Debug (org-odt): Trying %s..." styles-dir)
|
||||
(when (and (file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtContentTemplate.xml" styles-dir))
|
||||
(file-readable-p
|
||||
(expand-file-name
|
||||
"OrgOdtStyles.xml" styles-dir)))
|
||||
(message "Debug (org-odt): Using styles under %s"
|
||||
styles-dir)
|
||||
(throw 'styles-dir styles-dir))))
|
||||
org-odt-styles-dir-list)
|
||||
nil)))
|
||||
(unless styles-dir
|
||||
(error "Error (org-odt): Cannot find factory styles files, aborting"))
|
||||
styles-dir)
|
||||
"Directory that holds auxiliary XML files used by the ODT exporter.
|
||||
|
||||
This directory contains the following XML files -
|
||||
\"OrgOdtStyles.xml\" and \"OrgOdtContentTemplate.xml\".
|
||||
These XML files are used as the default values of
|
||||
`org-export-odt-styles-file' and
|
||||
`org-export-odt-content-template-file'.")
|
||||
\"OrgOdtStyles.xml\" and \"OrgOdtContentTemplate.xml\". These
|
||||
XML files are used as the default values of
|
||||
`org-export-odt-styles-file' and
|
||||
`org-export-odt-content-template-file'.
|
||||
|
||||
The default value of this variable varies depending on the
|
||||
version of org in use and is initialized from
|
||||
`org-odt-styles-dir-list'. Note that the user could be using org
|
||||
from one of: org's own private git repository, GNU ELPA tar or
|
||||
standard Emacs.")
|
||||
|
||||
(defvar org-odt-file-extensions
|
||||
'(("odt" . "OpenDocument Text")
|
||||
|
@ -91,7 +91,7 @@ MAKE_ORG_INSTALL = $(BATCHL) \
|
||||
MAKE_ORG_VERSION = $(BATCHL) \
|
||||
--eval '(load "org-compat.el")' \
|
||||
--eval '(load "../mk/org-fixup.el")' \
|
||||
--eval '(org-make-org-version "$(ORGVERSION)" "$(GITVERSION)")'
|
||||
--eval '(org-make-org-version "$(ORGVERSION)" "$(GITVERSION)" "$(datadir)")'
|
||||
|
||||
# How to byte-compile the whole source directory
|
||||
ELCDIR = $(BATCHL) \
|
||||
|
@ -27,7 +27,7 @@
|
||||
(require 'autoload)
|
||||
(require 'org-compat "org-compat.el")
|
||||
|
||||
(defun org-make-org-version (org-release org-git-version)
|
||||
(defun org-make-org-version (org-release org-git-version odt-dir)
|
||||
"Make the file org-version.el in the current directory.
|
||||
This function is internally used by the build system and should
|
||||
be used by foreign build systems or installers to produce this
|
||||
@ -51,6 +51,9 @@ the Git work tree)."
|
||||
Inserted by installing org-mode or when a release is made.\"
|
||||
(let ((org-git-version \"" org-git-version "\"))
|
||||
org-git-version))
|
||||
;;;\#\#\#autoload
|
||||
\(defvar org-odt-data-dir \"" odt-dir "\"
|
||||
\"The location of ODT styles.\")
|
||||
\f\n\(provide 'org-version\)
|
||||
\f\n;; Local Variables:\n;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
@ -84,12 +87,15 @@ force re-compilation. This function is provided for easier
|
||||
manual install when the build system can't be used."
|
||||
(let* ((origin default-directory)
|
||||
(dirlisp (org-find-library-dir "org"))
|
||||
(dirorg (concat dirlisp "../" )))
|
||||
(dirorg (concat dirlisp "../" ))
|
||||
(dirodt (if (boundp 'org-odt-data-dir)
|
||||
org-odt-data-dir
|
||||
(concat dirorg "etc/"))))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(cd dirlisp)
|
||||
(org-fixup)
|
||||
(org-make-org-version (org-release) (org-git-version))
|
||||
(org-make-org-version (org-release) (org-git-version) dirodt)
|
||||
(org-make-org-loaddefs)
|
||||
(when compile (byte-recompile-directory dirlisp 0 force)))
|
||||
(cd origin))))
|
||||
|
Loading…
Reference in New Issue
Block a user