emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: mel@mbacou.com
Cc: emacs-orgmode@gnu.org
Subject: Re: ox-html: stand-alone export option?
Date: Fri, 20 Feb 2015 11:32:03 +0100	[thread overview]
Message-ID: <874mqgx49o.fsf@gmx.us> (raw)
In-Reply-To: <54E6C3B6.4010407@mbacou.com> (Melanie Bacou's message of "Fri, 20 Feb 2015 00:18:46 -0500")

Melanie Bacou <mel@mbacou.com> writes:

> You're right with Github or remote storages there's no problem (links
> to images like `./fig/my_fig.png` or local CSS or JS
> `./css/my_css_.css` are interpreted as usual. The problem is only on
> cloud storage services like Dropbox where each resource gets a unique
> (unknown a priori) ID. These make it difficult to publish HTML
> documents.

Interesting.  I only know the dropbox by name, and had no idea it could be
used for publishing.

>>> We would really benefit from having a "stand-alone" HTML exporter
>>> feature that automatically embeds all external references into one
>>> single HTML file, so they can be shared with Dropbox, Google Drive,
>>> OneDrive and the likes.
>>
>> Would you base64 encode images and inline code or do you have something
>> else in mind with single HTML file?  It's not built into Org ATM.
>
> Yes indeed was thinking of a "stand-alone" option that would include
> base64 encoded images and also verbatim include all local CSS and JS
> in the document head.

First, I will advise you to take a look at ox-projects.  It's great when
you have to do heavy customization.  Check the docstring of
org-publish-project-alist.  You can run preparation functions.  Further,
take a look at the (org-export-define-backend 'html in ox-html.el.  With
projects you can replace all the values of :options-alist.

For script you can use :prepare to download all script
and :html-head-extra or :html-head for including them.

So for images Gnus must have something for base64.  For instance, the
"Face" in this email is converted from png to base64 using
gnus-face-encode.  See the functions starting with base64-.  You could use
a preparation function to convert your lossy(?)  images with base64 (see
also :html-inline-image-rules) and maybe org-export-before-processing-hook
for doing the heavy lifting of changing org-links.

Anyway, if there's no options for in-lining images that makes sense to
inline such as .base64 (does that exists?) and .svg, perhaps open a
separate thread with this feature request.  Or better: hack ox-html.el and
submit a patch!  Check org-html--format-image.

>> In the short run maybe there's a tool that can do.  For instance, in
>> Firefox it will save auxiliary material when you save a page.  I don't
>> know if also save whatever scripts you rely on from whatever CDN far away...
>
> Right, I looked at that too, but no true "stand-alone" option in FF or
> Chrome, both browsers include resources in a separate folder.

I know.  This has bothered me as well.

>>> Has this been discussed previously? Would there be any other work around?
>>
>> I think there was one guy who had patch that would automatically download
>> external images.  Pretty neat.  I don't know if it was applied in the end.
>
> I'd vote for this feature. In fact I believe it's now an option with
> RMarkdown/HTML documents.

Perhaps ox-ravel will be of interest to you then:

   https://github.com/chasberry/orgmode-accessories

—Rasmus

-- 
. . . It begins of course with The Internet.  A Net of Peers

      reply	other threads:[~2015-02-20 10:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-18  5:48 ox-html: stand-alone export option? Melanie Bacou
2015-02-18 10:39 ` Rasmus
2015-02-20  5:18   ` Melanie Bacou
2015-02-20 10:32     ` Rasmus [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874mqgx49o.fsf@gmx.us \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    --cc=mel@mbacou.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).