[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] [BUG][ODT] ODT_STYLES_FILE not read as a list
From: |
Christian Moe |
Subject: |
[O] [BUG][ODT] ODT_STYLES_FILE not read as a list |
Date: |
Tue, 30 Oct 2018 21:47:19 +0100 |
User-agent: |
mu4e 0.9.19; emacs 24.5.1 |
Hi,
It seems the ODT exporter currently fails to read the ODT_STYLES_FILE
option as a list, as in this example from the manual
([[info:org#Applying custom styles]]):
#+ODT_STYLES_FILE: ("/path/to/file.ott" ("styles.xml" "image/hdr.png"))
This is needed if you want a complex style with e.g. an image in the
header.
Exporting this causes an "Invalid specification of styles.xml file"
error on my recent ELPA version. The problem seems to be that the option
is treated as a string and never tested to see if it contains a list.
To reproduce the problem, place the attached documents
odt-styles-test.org and odt-test-styles.odt in the same directory, then
export odt-styles-test.org to ODT. The result should have a unicorn in
the letterhead.
The below quick-and-dirty patch seems to fix it, but I'm sure there's a
better approach.
*** /home/cm/.emacs.d/elpa/org-20180924/ox-odt.el 2018-09-27
13:38:07.644922989 +0200
--- /home/cm/Downloads/ox-odt.el 2018-10-30 21:18:44.827975243 +0100
***************
*** 1360,1365 ****
--- 1360,1368 ----
(let* ((styles-file (plist-get info :odt-styles-file))
(styles-file (and (org-string-nw-p styles-file)
(org-trim styles-file)))
+ ;; Try reading it as a list
+ (styles-expr (car (read-from-string styles-file)))
+ (styles-file (if (listp styles-expr) styles-expr styles-file)
;; Non-availability of styles.xml is not a critical
;; error. For now, throw an error.
(styles-file (or styles-file
- [O] [BUG][ODT] ODT_STYLES_FILE not read as a list,
Christian Moe <=