> I'm glad you like Samuel's idea about extensible syntax for links. I > don't know if it is practical or not, but it was one of those ideas that > seemed right on when I first read it.
I am glad you mentioned, it was an inspiration! Although this is sure to move away from a standard new syntax, it is straightforward to subvert a link like the following example to get more readable pre/post text example. The quotes are necessary to get the list read correctly. Whether this is useful remains to be seen, but it was fun to work it out. #+BEGIN_SRC emacs-lisp :results silent (org-add-link-type "slink" ;; follow function (lambda (path) (let* ((data (read (concat "(" path ")"))) (head (car data)) (plist (cadr data))) (message-box "%s\n%s\n%s" head plist (plist-get plist :type)))) ;; format function (lambda (path description backend) (let* ((data (read (concat "(" path ")"))) (head (car data)) (plist (cadr data))) (format "\\%s[%s][%s]{%s}" (plist-get plist :type) (plist-get plist :pre) (plist-get plist :post) head)))) #+END_SRC [[slink:kitchin-2010 (:pre "See for example" :post "page 47" :type cite)]] Exports to: #+BEGIN_EXAMPLE \cite[See for example][page 47]{kitchin-2010} #+END_EXAMPLE > > All the best, > Tom -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu