emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] why prepend "file://" to abs paths in html output?


From: Kaushal Modi
Subject: Re: [O] why prepend "file://" to abs paths in html output?
Date: Mon, 10 Jul 2017 12:53:10 +0000

Hello,


On Sun, Jul 9, 2017, 6:45 AM Nicolas Goaziou <address@hidden> wrote:

The following patch implements `org-html-root', which allows to export
file links as root-relative URL.

Can you please attach the patch? 

I'm
 not sure the docstring is clear
enough, tho.

Also, HTML publishing process always bind the above to publishing
directory, without user intervention.

Matt and I are working on an exporter backend for Hugo, ox-hugo. We are exporting Org to a flavor of Markdown compatible with Hugo. The HTML exporter has some contribution in this exporter.

If a link is "/foo/bar" in the Markdown file, Hugo assumes "foo" to be present in the "static/" dir in the site root. So the Markdown link auto expands to "example.org/static/foo/bar".

But if the link was "/foo/bar" in the Org file to begin, with it would become "file:///foo/bar" in Markdown (as it is a derivation of ox-md). Though, we got around that by overriding the org-md-link function in ox-hugo.

The complication arose when we needed to support "#+ATTR_HTML: :class something" above figure links. We then needed to let the html link exporter take up the link translation job instead of having ox-hugo do that directly (it is OK to have HTML snippets in Markdown). And thus this request. 

So, basically, upon exporting the following document to HTML:

  #+html_link_root: /tmp/
  [[/tmp/unicorn.jpg]]

the link becomes

  <img src="" alt="unicorn.jpg" />

Based on the example, that patch might work!

=====

Reply to an earlier email:

On Sat, Jul 8, 2017 at 3:14 PM Nicolas Goaziou <address@hidden> wrote:
Hello,

Carsten Dominik <address@hidden> writes:

> I think it can be useful to write file: in the org-mode file, to make a
> clear distinction from internal links.  But once it is clear that something
> is a link to a file, I guess you are right  that it might not be needed in
> HTML.  We will see what breaks.....

Thinking about it, we should probably not remove the "file://" prefix.

It depends.. if people are using Org files exported as HTML to open referenced files in their browser (though that would work only if they open those HTML pages only on that machine). But at least in one browser (Firefox), I noticed that the browser auto-added the "file://" prefix if user tried to access "/static/images/unicorn.jpg" directly from the address bar.

I cannot think of any situation where [[/absolute/path/to/file]] would
match something like "<img src="" because "/"
never matches web root directory.

As mentioned above, one example is Hugo, which auto-interprets the presence of absolute links in the Markdown files (whether they are of Markdown or HTML style).

Note that that "file:///static/images/unicorn.jpg" is not useful either,
but at least it is logical.

 I can see the benefit if a browser does not support auto-detection of local links. But if the patch works, all should be good :)

The only situation where we might do something is during publishing,
when we know what web root directory – i.e., base directory – is. In
that case, we could replace absolute file names starting with web root
dir as root-relative URL.

In our case, we are delegating that step to Hugo. So Org does the job of content translation from Org to Markdown (plus inline HTML code for figures, etc) "as it is", and Hugo does the job of HTML, RSS, etc. generation, content management (what goes in what directory), link resolution, etc. 
--

Kaushal Modi


reply via email to

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