From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: Jarmo Hurri <jarmo.hurri@iki.fi>
Cc: emacs-orgmode@gnu.org
Subject: Re: Patch: default CSS class for SVG images in HTML export
Date: Mon, 25 Jul 2016 11:37:53 +0200 [thread overview]
Message-ID: <87eg6ivz0u.fsf@saiph.selenimh> (raw)
In-Reply-To: <87h9bep8s4.fsf@iki.fi> (Jarmo Hurri's message of "Mon, 25 Jul 2016 08:48:59 +0300")
Hello,
Jarmo Hurri <jarmo.hurri@iki.fi> writes:
> The attached patch
> - adds a default CSS class org-svg to SVG images embedded in exported
> HTML if no other class is set for the image using attr_html
> - documents the existence of this class.
Thank you.
> If this patch is ok,
It looks so, barring minor issues suggested below.
> then what is missing are the default CSS settings for the new class
> org-svg in constant org-html-style-default. I simply did not know what
> to put there. The manual says that this constant has basic settings
> for _all_ defined CSS entities. Either defaults need to be set for the
> new class, or the text in the manual needs to be changed. Or we have
> to accept that the manual is not logically coherent. :-)
The Manual is the Truth!
What setting would equivalent to the current one?
> @@ -11750,6 +11750,7 @@ div.footnotes @r{footnote section headline}
> p.footnote @r{footnote definition paragraph, containing a footnote}
> .footref @r{a footnote reference number (always a <sup>)}
> .footnum @r{footnote number in footnote definition (always <sup>)}
> +.org-svg @r{default class for a linked SVG image}
The manual would use @samp{svg}, but I think @file{.svg} would be more
accurate, per (info "(texinfo @file)").
> (defun org-html--svg-image (source attributes info)
> "Return \"object\" appropriate for embedding svg file SOURCE
> -with assoicated ATTRIBUTES. INFO is a plist used as a
> +with associated ATTRIBUTES. INFO is a plist used as a
> communication channel.
The docstring was incorrect before your patch; this is a good time to
fix it. In particular:
- first line must stand on its own, i.e., it must be one or more
complete sentences;
- Sentences have to be separated with two spaces.
Could you reword it?
> The special attribute \"fallback\" can be used to specify a fallback
> -image file to use if the object embedding is not supported."
> +image file to use if the object embedding is not supported.
> +
> +CSS class \"org-svg\" is assigned as the class of the object
> +unless a different class is specified with an attribute."
> (let ((fallback (plist-get attributes :fallback))
> + (css-class (plist-get attributes :class))
> (attrs (org-html--make-attribute-string
> (plist-put attributes :fallback nil))))
> - (format "<object type=\"image/svg+xml\" data=\"%s\" %s>\n%s</object>"
> - source attrs
> + (format "<object type=\"image/svg+xml\" data=\"%s\" %s %s>\n%s</object>"
> + source
> + attrs
> + (if css-class
> + ""
> + "class=\"org-svg\"")
This would ignore ":class nil", which probably means no class at all.
You can do instead:
(let ((fallback (plist-get attributes :fallback))
(attrs (org-html--make-attribute-string
(org-combine-plists
;; Remove fallback attribute, which is not meant to
;; appear directly in the attributes string, and
;; provide a default class if none is set.
'(:class "org-class") attributes '(:fallback nil)))))
(format ...))
Regards,
--
Nicolas Goaziou
next prev parent reply other threads:[~2016-07-25 9:38 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-25 5:48 Patch: default CSS class for SVG images in HTML export Jarmo Hurri
2016-07-25 9:28 ` Christian Moe
2016-07-25 9:37 ` Nicolas Goaziou [this message]
2016-07-25 18:34 ` Jarmo Hurri
2016-07-25 20:36 ` Nicolas Goaziou
2016-07-26 8:21 ` Jarmo Hurri
2016-07-26 8:39 ` 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=87eg6ivz0u.fsf@saiph.selenimh \
--to=mail@nicolasgoaziou.fr \
--cc=emacs-orgmode@gnu.org \
--cc=jarmo.hurri@iki.fi \
/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).