emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <n.goaziou@gmail.com>
To: Nick Dokos <ndokos@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: custom link export and ox-md
Date: Tue, 25 Feb 2014 18:20:17 +0100	[thread overview]
Message-ID: <874n3nun1q.fsf@gmail.com> (raw)
In-Reply-To: <8761o4714y.fsf@alphaville.bos.redhat.com> (Nick Dokos's message of "Mon, 24 Feb 2014 14:37:33 -0500")

Hello,

Nick Dokos <ndokos@gmail.com> writes:

> can you take a look at this patch?

Thank you for the patch. Here we go.

> If it looks OK, I can push it to maint.

Why maint? It isn't a bugfix.

> 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)))

I'd rather not bind RAW-PATH here, as only half the branches in the
`cond' are using it. Also, I think it is clearer to mostly do bindings
close to the areas where they are needed.

> -	   (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)))

See above.

> -	   (let ((ref (org-element-property :path link)))
> +	   (let ((ref raw-path))

If you want to go further, you could even remove REF, but, see above.

> -	  (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))
> +

This raises an interesting question. What do we do with derived
back-ends? E.g., what should happen if TYPE is handled in
`org-link-protocols' for `html' but not `md'?

Also the blank line is not needed.


Regards,

-- 
Nicolas Goaziou

  reply	other threads:[~2014-02-25 17:20 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
2014-02-25 17:20     ` Nicolas Goaziou [this message]
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=874n3nun1q.fsf@gmail.com \
    --to=n.goaziou@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=ndokos@gmail.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).