[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.
>
>