On 09/03/2010 05:07 AM, s...@blarg.net wrote: > How about doing the same data: URI embedding for images in the HTML > exporter? It should be possible to implement it entirely inside > Emacs. It would have to be optional, of course. > > Derek >
This is certainly possible, the following patch would do this to *every* image. Maybe someone who knows the HTML exporter code better than I do can make it configurable and submit a patch. Bonus points for an extra option which only embeds images smaller than 32 KB to keep it compatible with Internet Explorer. Maybe something like this configuration variable: (defcustom org-export-html-embed-images-as-data-uris 'never "Controls if references to inlined images (see `org-export-html-inline-images') are replaced with their contents as a data: URI. Possible values: 'never (default) All images are inlined using normal URL references. 'always Embed all images as data: URIs. 'up-to-32KB Use data: URIs only for images up to 32 KByte (Internet Explorer does not allow bigger data: URIs) See also: http://en.wikipedia.org/wiki/Data_URI_scheme" :group org-export-html :type (choice (const never) (const always) (const up-to-32KB))) -- Jan --- lisp/org-html.el | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/lisp/org-html.el b/lisp/org-html.el index eecda0d..5e5ec95 100644 --- a/lisp/org-html.el +++ b/lisp/org-html.el @@ -1820,7 +1820,7 @@ lang=\"%s\" xml:lang=\"%s\"> (if org-par-open "</p>\n" "") (if label (format "id=\"%s\" " label) ""))) (format "<img src=\"%s\"%s />" - src + (org-export-html-image-to-data-uri src) (if (string-match "\\<alt=" (or attr "")) (concat " " attr ) (concat " " attr " alt=\"" src "\""))) @@ -1830,6 +1830,16 @@ lang=\"%s\" xml:lang=\"%s\"> (concat "\n<p>" caption "</p>") (if org-par-open "\n<p>" "")))))))) +(defun org-export-html-image-to-data-uri (src) + "Load an image file and convert it to a data: URI. +See http://en.wikipedia.org/wiki/Data_URI_scheme" + (with-temp-buffer + (insert-file-contents src) + (base64-encode-region (point-min) (point-max)) + (goto-char 1) + (insert "data:;base64,") + (buffer-string))) + (defun org-export-html-get-bibliography () "Find bibliography, cut it out and return it." (catch 'exit -- 1.7.0.4 _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode