Hello, Nick Dokos <ndo...@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 <ndo...@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