From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Moe Subject: Unintended behavior? Links without description Date: Tue, 28 Dec 2010 11:29:58 +0100 Message-ID: <4D19BC26.8030904@christianmoe.com> Reply-To: mail@christianmoe.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=57827 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PXWm8-0006UE-VW for emacs-orgmode@gnu.org; Tue, 28 Dec 2010 05:27:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PXWm7-0003YS-Rz for emacs-orgmode@gnu.org; Tue, 28 Dec 2010 05:27:28 -0500 Received: from mars.hitrost.net ([91.185.211.18]:25148) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PXWm7-0003YH-GB for emacs-orgmode@gnu.org; Tue, 28 Dec 2010 05:27:27 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Org Mode Cc: Carsten Dominik (sorry -- hit "send" too early by mistake in the previous mail) Hi, In pre-processing for export with org-export-normalize-links, links that lack a description part are given one, which consists of the full raw path of the link. In other words, link descriptions are never nil. This seems to conflict with the expectations of org-bbdb.el and custom links based on that example. The link [[bbdb:Carsten Dominik]], for instance, is exported to html and latex as follows: bbdb:Carsten Dominik \textit{bbdb:Carsten Dominik}. Org-bbdb.el is clearly prepared to be passed a desc that is nil, in which case it would use path instead: (defun org-bbdb-export (path desc format) "Create the export version of a BBDB link specified by PATH or DESC. If exporting to either HTML or LaTeX FORMAT the link will be italicized, in all other cases it is left unchanged." (cond ((eq format 'html) (format "%s" (or desc path))) ((eq format 'latex) (format "\\textit{%s}" (or desc path))) (t (or desc path)))) However, desc is never nil, because a missing description part is replaced in export pre-processing by a string consisting of the link type, a colon, and the path. This takes place in the function org-export-normalize-links. This makes for unexpected behavior in custom links that some of us have defined. E.g., Thomas S. Dye's `cite' links (the thread `org-add-link-type'): > (org-add-link-type > "citet" 'ebib > (lambda (path desc format) > (cond > ((eq format 'latex) > (if (and desc) > (format "\\citet[%s]{%s}" desc path) > (format "\\citet{%s}" path)))))) > > [[citet:green84:_settl_patter_studies_ocean]] > > yields this: > > \citet[citet:green84:_settl\_patter\_studies\_ocean]{green84:_settl_patter_studies_ocean} Some of my links, more closely modeled on org-bbdb.el, have similar problems. I haven't done the bisection thing, but I suspect this is a fairly recent change. I think I've tracked down the problem, but I don't necessarily understand what org-export-normalize-links is supposed to do or what other behaviors depend on this, so I'm not going to submit a patch. If this is now the intended behavior, it will be no problem to rewrite the custom link export definitions to take account of it. Yours, Christian