Hi! I discovered a bug in the ox-md exporter and have created a patch to fix it:
Previously, this image link: [[https://git-scm.com/images/l...@2x.png]] would export to: ![img](//git-scm.com/images/l...@2x.png) which is an invalid markdown image, and won't display properly in browsers and other places. A workaround (which I have been using extremely heavily), is: [[file:https://git-scm.com/images/l...@2x.png]] which exports to ![img](https://git-scm.com/images/l...@2x.png) Which is the proper (unbroken) image link. I have attached a patch which fixes the first example, so it exports the same link as the workaround (and is no longer broken). One of my concerns with the attached patch is whether there's a better way to determine if a link is 'remote'. Maybe I should make a constant in the file listing 'remote' types and use that everywhere. I'm also not sure if I broke any other type of image link (but the simple local case seems to work fine). My papers are currently being processed, but I thought I would post this patch early to get feedback, since ideally I would like this bug to be fixed as soon as possible :). Hopefully they'll be done before the review is completed. Let me know if you see anything wrong, and thanks again for hacking org mode :D. -Jay
From b4768baf2c6ea234c92f24540ed927cf8473e999 Mon Sep 17 00:00:00 2001 From: Jay Kamat <jaygka...@gmail.com> Date: Sat, 5 Aug 2017 19:14:44 -0700 Subject: [PATCH] ox-md.el: Fix exporting of remote image links * lisp/ox-md.el (org-md-link): Check if a link is a remote, and if so, use the raw-link property of the link, rather than the path. A workaround for this bug is to do this: [[file:http://orgmode.org/img/org-mode-unicorn-logo.png]] This commit lets the workaround continue working, while the proper method: [[http://orgmode.org/img/org-mode-unicorn-logo.png]] is fixed. --- lisp/ox-md.el | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/ox-md.el b/lisp/ox-md.el index 08e3852823..a4e1d6749b 100644 --- a/lisp/ox-md.el +++ b/lisp/ox-md.el @@ -430,8 +430,14 @@ a communication channel." (format "[%s](#%s)" description (org-export-get-reference destination info)))))))) + ;; Generate a md image link ((org-export-inline-image-p link org-html-inline-image-rules) - (let ((path (let ((raw-path (org-element-property :path link))) + ;; Get the path and caption to insert into the image + (let ((path (let ((raw-path + ;; types of links which we just use the raw link + (if (member type '("http" "https" "ftp")) + (org-element-property :raw-link link) + (org-element-property :path link)))) (if (not (file-name-absolute-p raw-path)) raw-path (expand-file-name raw-path)))) (caption (org-export-data -- 2.11.0