emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Inline Images Export Bug


From: Pip Cet
Subject: Re: [O] Inline Images Export Bug
Date: Wed, 26 Aug 2015 19:39:37 +0000

I've used interactive SVGs with ox-html output quite a lot, and I found it necessary to add the following horrible code; I'm not sure it's still required:

----
    let svgdoc = object.contentDocument;
    let svgid = object.id;

    if (!svgdoc) {
        if (object.parentNode /* XXX why is this necessary */)
            object.parentNode.innerHTML = "";
        return;
    }

    let found = false;
    for (let el of svgdoc.getElementsByTagName("svg")) {
        let width = el.getAttribute("width");
        let height = el.getAttribute("height");

        let width_pt = width.match(/^([0-9]*)pt$/)[1];
        let height_pt = height.match(/^([0-9]*)pt$/)[1];

        let width_px = 5/4 * width_pt;
        let height_px = 5/4 * height_pt;

        object.setAttribute("width", width_px + "px");
        object.setAttribute("height", height_px + "px");
        found = true;
    }
----

In my case, the SVG was produced by graphviz, so it always has the width and height attributes.

This is a minor issue, but I also think the fallback message ("Sorry, your browser does not support SVG.") is really horrible and misleading. It's very unlikely to be a browser issue today, and much more likely to be a missing file or a user deliberately disabling SVG. In that case, software shouldn't say it's sorry :-)

"Cannot load SVG file." would be a better message, I think.


On Wed, Aug 26, 2015 at 6:06 PM, Rasmus <address@hidden> wrote:
Hi Scott,

Thanks for your bug report.

Scott Randby <address@hidden> writes:

> When did Org start using the <object> tag for inline image HTML
> export?

You should use git-blame to find out if you care.


> The problems with the second bit of exported code is that it doesn't
> scale the image to fit the block with 50% width (only a small part of
> the image is visible), and you when you right click on the image, you
> can't view it, save it or anything.
>
> [...]
>
> Clearly, Org 8.3 is not using an <img> tag when exporting SVG images
> to HTML, something which is a major issue for me. It essentially makes
> Org unusable for HTML export. I really would appreciate a fix for this
> bug.

I'm not sure it's a bug.  It's IS clearly a quite complicated issue, e.g.:

    http://stackoverflow.com/questions/4476526/do-i-use-img-object-or-embed-for-svg-files

Perhaps it should be configurable, perhaps even as a default and a
per-image basis (via #+attr_html).

If you can provide a (html) solution that takes into consideration the
issues mentioned on SO that would of course be great.  In the age of d3.js
interactivity COULD be an issue (I would always load "interactive svgs"
via JS, but I'm a pretty naïve svg user so I don't know what's possible).

Rasmus

--
Together we'll stand, divided we'll fall




reply via email to

[Prev in Thread] Current Thread [Next in Thread]