emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "L.C. Karssen" <lennart@karssen.org>
To: emacs-orgmode@gnu.org
Subject: Re: [BUG][ODT] ODT_STYLES_FILE not read as a list
Date: Wed, 7 Nov 2018 16:32:19 +0100	[thread overview]
Message-ID: <e70390e8-3340-4a7e-6aa9-be95fdcb8a32@karssen.org> (raw)
In-Reply-To: <87pnvhxpdm.fsf@christianmoe.com>


[-- Attachment #1.1: Type: text/plain, Size: 6638 bytes --]

Thanks for digging into this Christian.

My lisp skills are quite undeveloped, so I can't really comment on the
code. I had a look at the manual and I think we should go for a solution
that is consistent for #+ keywords that have a filename argument like
#+INCLUDE:, #+SETUPFILE and #+TEXINFO_FILENAME.

Taking the risk that the manual is lagging behind the actual code, I see
the following:

#+ODT_STYLES_FILE:    uses quotes
#+INCLUDE:            uses quotes
#+TEXINFO_FILENAME:   doesn't use quotes [1]
#+SETUPFILE:          no example in the manual
#+HTML_INCLUDE_STYLE: no example in the manual, not sure if this
requires a file or CSS code

Another point to consider: would requiring quoted filenames make life
easier for people using spaces etc. in their filenames? In that case I'd
vote for quotes.


Best,

Lennart.

[1] https://orgmode.org/org.html#A-Texinfo-example

On 07-11-18 09:28, Christian Moe wrote:
> 
> 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,
>>>>>
>>>>>
> 

-- 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
L.C. Karssen
's-Hertogenbosch
The Netherlands

lennart@karssen.org
http://blog.karssen.org
GPG key ID: A88F554A
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2018-11-07 15:32 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
2018-11-07 15:32             ` L.C. Karssen [this message]
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=e70390e8-3340-4a7e-6aa9-be95fdcb8a32@karssen.org \
    --to=lennart@karssen.org \
    --cc=emacs-orgmode@gnu.org \
    /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).