From: Nick Dokos <ndokos@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: custom link export and ox-md
Date: Mon, 24 Feb 2014 14:37:33 -0500 [thread overview]
Message-ID: <8761o4714y.fsf@alphaville.bos.redhat.com> (raw)
In-Reply-To: 87ob1xgl5e.fsf@gmail.com
Nicolas,
can you take a look at this patch? If it looks OK, I can
push it to maint.
--8<---------------cut here---------------start------------->8---
commit f820173bf514549134e8ba10bbbba1e539cb89f6
Author: Nick Dokos <ndokos@redhat.com>
Date: Mon Feb 24 14:31:33 2014 -0500
Add handling of user-defined custom links to org-md-link
* ox-md.el (org-md-link): Add code to handle user-defined custom links.
Refactor raw-path calculation to simplify the code.
Reported by John Peloquin (http://thread.gmane.org/gmane.emacs.orgmode/82627)
diff --git a/lisp/ox-md.el b/lisp/ox-md.el
index 39843d5..fbc5d6f 100644
--- a/lisp/ox-md.el
+++ b/lisp/ox-md.el
@@ -278,7 +278,8 @@ a communication channel."
(if (string= ".org" (downcase (file-name-extension raw-path ".")))
(concat (file-name-sans-extension raw-path) ".md")
raw-path))))
- (type (org-element-property :type link)))
+ (type (org-element-property :type link))
+ (raw-path (org-element-property :path link)))
(cond ((member type '("custom-id" "id"))
(let ((destination (org-export-resolve-id-link link info)))
(if (stringp destination) ; External file.
@@ -294,9 +295,8 @@ a communication channel."
destination info)
".")))))))
((org-export-inline-image-p link org-html-inline-image-rules)
- (let ((path (let ((raw-path (org-element-property :path link)))
- (if (not (file-name-absolute-p raw-path)) raw-path
- (expand-file-name raw-path))))
+ (let ((path (if (not (file-name-absolute-p raw-path)) raw-path
+ (expand-file-name raw-path)))
(caption (org-export-data
(org-export-get-caption
(org-export-get-parent-element link)) info)))
@@ -304,7 +304,7 @@ a communication channel."
(if (not (org-string-nw-p caption)) path
(format "%s \"%s\"" path caption)))))
((string= type "coderef")
- (let ((ref (org-element-property :path link)))
+ (let ((ref raw-path))
(format (org-export-get-coderef-format ref contents)
(org-export-resolve-coderef ref info))))
((equal type "radio")
@@ -318,8 +318,11 @@ a communication channel."
(when number
(if (atom number) (number-to-string number)
(mapconcat 'number-to-string number "."))))))))
- (t (let* ((raw-path (org-element-property :path link))
- (path
+ ;; Link type is handled by a special function.
+ ((functionp (setq protocol (nth 2 (assoc type org-link-protocols))))
+ (funcall protocol raw-path contents 'md))
+
+ (t (let* ((path
(cond
((member type '("http" "https" "ftp"))
(concat type ":" raw-path))
--8<---------------cut here---------------end--------------->8---
Thanks,
Nick
next prev parent reply other threads:[~2014-02-24 19:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-24 2:12 custom link export and ox-md John Peloquin
2014-02-24 5:00 ` Nick Dokos
2014-02-24 19:37 ` Nick Dokos [this message]
2014-02-25 17:20 ` Nicolas Goaziou
2014-03-21 8:15 ` Bastien
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=8761o4714y.fsf@alphaville.bos.redhat.com \
--to=ndokos@gmail.com \
--cc=emacs-orgmode@gnu.org \
/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).