emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list


From: Christian Moe
Subject: Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list
Date: Wed, 07 Nov 2018 09:28:53 +0100
User-agent: mu4e 0.9.19; emacs 24.5.1

Nicolas, Lennart, cc: Charles Celerier,

Below, Lennart points out another issue with ODT_STYLES_FILE, a silent
change in syntax not reflected in the manual: quotation marks are no
longer needed around simple file paths.

I think this change was introduced by the below commit, which stopped
reading the string as a Lisp expression, and therefore at the same time
broke the option of providing a list for #+ODT_STYLES_FILE. My patch
last week fixed the list problem, but left the other change
intact. (Sorry for not doing the research.)

We could either update the manual and announce the syntax change, or
revert ox-odt-template to before the below patch to bring the code back
in conformity with the manual. I don't have a strong opinion one way or
the other. I like the change (never liked those quotation marks), but
it's backwards-incompatible, and the old code looks cleaner than my fix.

Yours,
Christian


commit 30498ef932bc35c26e3e58278f4987a67480b446
Author: Charles Celerier <address@hidden>
Date:   Sat Jul 28 17:09:16 2018 -0400

    ox-odt: Fix `org-odt-template' styles file retrieval

    * lisp/ox-odt.el (org-odt-template): Fix `org-odt-template' styles
      file retrieval.

    TINYCHANGE

    Signed-off-by: Charles Celerier <address@hidden>

diff --git a/lisp/ox-odt.el b/lisp/ox-odt.el
index a1145a9..74d811d 100644
--- a/lisp/ox-odt.el
+++ b/lisp/ox-odt.el
@@ -1359,11 +1359,10 @@ original parsed data.  INFO is a plist holding export 
options."
   ;; Write styles file.
   (let* ((styles-file (plist-get info :odt-styles-file))
         (styles-file (and (org-string-nw-p styles-file)
-                          (read (org-trim styles-file))))
+                          (org-trim styles-file)))
         ;; Non-availability of styles.xml is not a critical
         ;; error. For now, throw an error.
         (styles-file (or styles-file
-                         (plist-get info :odt-styles-file)
                          (expand-file-name "OrgOdtStyles.xml"
                                            org-odt-styles-dir)
                          (error "org-odt: Missing styles file?"))))




L.C. Karssen writes:

> On 06-11-18 16:35, Christian Moe wrote:
>>
>> I believe the need to use quotation marks around the style file name was
>> removed at some point
>
> I didn't know that. I had a quick look at the changes to ox-odt.el for
> the last few months, but it doesn't seem to be mentioned in any of the
> commit messages. Or was this a more global change?
>
> Does this also count for the regular #+INCLUDE: statement? I just tested
> it and for #+INCLUDE: it seems to work both with and without quotes
> (although the manual uses quotes).
>
>
> Best,
>
> Lennart.
>
>> , and the manual is out of date. Instead of
>>
>>  #+ODT_STYLES_FILE: "template.ott"
>>
>> the manual ought now to read:
>>
>>  #+ODT_STYLES_FILE: template.ott
>>
>> Yours,
>> Christian
>>
>> L.C. Karssen writes:
>>
>>> Hi list,
>>>
>>> Not sure if this is related (or fixed with the aforementioned patch)
>>> because I'm not using a list for the ODT style file.
>>>
>>> Today, after upgrading from Org 9.1.13 (actually installed from melpa on
>>> 20180625) to melpa version 20181105 exporting to ODT stopped working. In
>>> my org file the style file name was enclosed in double quotes (as
>>> specified in the manual [1]):
>>>
>>> #+ODT_STYLES_FILE: "template.ott"
>>>
>>> The error message is:
>>>
>>> OpenDocument export failed: Invalid specification of styles.xml file:
>>> "\"template.ott\""
>>>
>>> Removing the quotes fixes the export to ODT.
>>>
>>>
>>> Best regards,
>>>
>>> Lennart.
>>>
>>> [1] https://orgmode.org/org.html#Applying-custom-styles
>>>
>>>
>>> On 05-11-18 09:49, Christian Moe wrote:
>>>>
>>>> Thanks, Nicolas!
>>>>
>>>> I'll test on my end when it shows up in ELPA.
>>>>
>>>> Yours,
>>>> Christian
>>>>
>>>> Nicolas Goaziou writes:
>>>>
>>>>> Hello,
>>>>>
>>>>> Christian Moe <address@hidden> writes:
>>>>>
>>>>>> 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.
>>>>>
>>>>> Thank you. I applied your patch with an additional check: the value should
>>>>> be enclosed within round brackets.
>>>>>
>>>>> Regards,
>>>>
>>>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]