emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Christian Moe <mail@christianmoe.com>
To: "L.C. Karssen" <lennart@karssen.org>,
	Nicolas Goaziou <mail@nicolasgoaziou.fr>,
	Charles Celerier <chckyn@gmail.com>
Cc: emacs-orgmode@gnu.org, Christian Moe <mail@christianmoe.com>
Subject: Re: [BUG][ODT] ODT_STYLES_FILE not read as a list
Date: Wed, 07 Nov 2018 09:28:53 +0100	[thread overview]
Message-ID: <87pnvhxpdm.fsf@christianmoe.com> (raw)
In-Reply-To: <2fbfc24e-c356-831b-0e41-cca5a79de9c3@karssen.org>


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 <chckyn@gmail.com>
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 <chckyn@gmail.com>

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 <mail@christianmoe.com> 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	other threads:[~2018-11-07  8:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-30 20:47 [BUG][ODT] ODT_STYLES_FILE not read as a list Christian Moe
2018-10-30 20:49 ` Christian Moe
2018-11-04 22:05 ` Nicolas Goaziou
2018-11-05  8:49   ` Christian Moe
2018-11-06 15:18     ` L.C. Karssen
2018-11-06 15:35       ` Christian Moe
2018-11-06 16:15         ` L.C. Karssen
2018-11-07  8:28           ` Christian Moe [this message]
2018-11-07 15:32             ` L.C. Karssen
2018-11-10  8:16               ` Nicolas Goaziou
2018-11-19 17:21                 ` L.C. Karssen
2018-11-19 22:58                   ` Nicolas Goaziou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pnvhxpdm.fsf@christianmoe.com \
    --to=mail@christianmoe.com \
    --cc=chckyn@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=lennart@karssen.org \
    --cc=mail@nicolasgoaziou.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).