emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Base 64 inline images in html export


From: Grant Rettke
Subject: Re: [O] Base 64 inline images in html export
Date: Tue, 22 Dec 2015 19:48:00 -0600

Since you too are exploring packaging, this might give you some test:

http://kitchingroup.cheme.cmu.edu/blog/2014/03/05/Creating-a-transportable-zip-archive-of-an-org-file/
Sincerely,

Grant Rettke


On Mon, Dec 7, 2015 at 6:15 AM, Greg Sexton <address@hidden> wrote:
> Hi,
>
> I did find a post about this from around 2009 but I'm not sure it went
> anywhere. It's very useful for me to be able to export a single html
> file that I can distribute around. Base 64 encoding images directly in
> to the exported html makes this possible.
>
> The feature seems fairly well supported by browsers these days.[1]
>
> I've hacked up this ugly proof of concept. I guess it wouldn't take too
> much to productionize this and make the behavior configurable. Any
> thoughts?
>
> --8<---------------cut here---------------start------------->8---
> (defun gs/b64-img (file-uri)
>   (let ((file (s-replace "file://" "" file-uri)))
>     (if (f-exists? file)
>         ;; src="data:image/png;base64,iVBORw0KGgoAAAANSUh..."
>         (s-concat "data:image/"
>                   (f-ext file)
>                   ";base64,"
>                   (base64-encode-string (f-read-bytes file)))
>       file-uri)))
>
> (defun org-html--format-image (source attributes info)
>   "Return \"img\" tag with given SOURCE and ATTRIBUTES.
> SOURCE is a string specifying the location of the image.
> ATTRIBUTES is a plist, as returned by
> `org-export-read-attribute'.  INFO is a plist used as
> a communication channel."
>   (org-html-close-tag
>    "img"
>    (org-html--make-attribute-string
>     (org-combine-plists
>      (list :src (gs/b64-img source)   ; <-- interesting line is here
>            :alt (if (string-match-p "^ltxpng/" source)
>                     (org-html-encode-plain-text
>                      (org-find-text-property-in-string 'org-latex-src source))
>                   (file-name-nondirectory source)))
>      attributes))
>    info))
> --8<---------------cut here---------------end--------------->8---
>
>
> [1]: http://stackoverflow.com/questions/1207190/embedding-base64-images
>
> --
>  Greg
>
>
>
> Amazon Development Centre (London) Ltd. Registered in England and Wales with 
> registration number 04543232 and which has its registered office at 
> Leadenhall Court, One Leadenhall Street, London EC3V 1PP, United Kingdom.
>
>



reply via email to

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