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 --]
next prev parent 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).