>From 0cb1fd2f3507c7d5db060ba62711896698a5f67c Mon Sep 17 00:00:00 2001 From: Jarmo Hurri Date: Mon, 25 Jul 2016 08:25:58 +0300 Subject: [PATCH] lisp/ox-html.el: Provide a default CSS class for embedded SVG images * lisp/ox-html.el (org-html--svg-image): Set CSS class of embedded SVG images to be org-svg if no other class is set in attributes. org-html-style-default: Provide default properties for new CSS class. * doc/org.texi (CSS support): Documentation of default CSS class org-svg for SVG images embedded into exported HTML. --- doc/org.texi | 1 + lisp/ox-html.el | 31 +++++++++++++++++++------------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/doc/org.texi b/doc/org.texi index 1c3868c..68b3c69 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -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 )} .footnum @r{footnote number in footnote definition (always )} +.org-svg @r{default class for a linked @file{.svg} image} @end example @vindex org-html-style-default diff --git a/lisp/ox-html.el b/lisp/ox-html.el index ce4694d..456a236 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -440,6 +440,7 @@ for the JavaScript code in this tag. { font-size: 10px; font-weight: bold; white-space: nowrap; } .org-info-js_search-highlight { background-color: #ffff00; color: #000000; font-weight: bold; } + .org-svg { width: 90%; } /*]]>*/--> " "The default style specification for exported HTML files. @@ -1628,21 +1629,27 @@ a communication channel." info))) (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 -communication channel. + "Return \"object\" embedding svg file SOURCE with given ATTRIBUTES. +INFO is a plist used as a communication channel. -The special attribute \"fallback\" can be used to specify a fallback -image file to use if the object embedding is not supported." +The special attribute \"fallback\" can be used to specify a +fallback 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)) (attrs (org-html--make-attribute-string - (plist-put attributes :fallback nil)))) - (format "\n%s" - source attrs - (if fallback - (org-html-close-tag - "img" (format "src=\"%s\" %s" fallback attrs) info) - "Sorry, your browser does not support SVG.")))) + (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-svg") attributes '(:fallback nil))))) + (format "\n%s" + source + attrs + (if fallback + (org-html-close-tag + "img" (format "src=\"%s\" %s" fallback attrs) info) + "Sorry, your browser does not support SVG.")))) (defun org-html--textarea-block (element) "Transcode ELEMENT into a textarea block. -- 2.4.11