emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Unintended behavior? Links without description


From: Christian Moe
Subject: [Orgmode] Unintended behavior? Links without description
Date: Tue, 28 Dec 2010 11:29:58 +0100
User-agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7

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

  <i>bbdb:Carsten Dominik</i>
  \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 "<i>%s</i>" (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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]