From mboxrd@z Thu Jan 1 00:00:00 1970 From: tsd@tsdye.com (Thomas S. Dye) Subject: Re: Citations, continued Date: Mon, 02 Feb 2015 14:54:40 -1000 Message-ID: References: <87vbjmn6wy.fsf@berkeley.edu> <8761blm6n8.fsf@berkeley.edu> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52289) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIRle-0005D4-C9 for emacs-orgmode@gnu.org; Mon, 02 Feb 2015 19:55:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YIRlZ-0003C2-El for emacs-orgmode@gnu.org; Mon, 02 Feb 2015 19:55:02 -0500 Received: from gproxy9-pub.mail.unifiedlayer.com ([69.89.20.122]:45721) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1YIRlZ-0003Bh-7E for emacs-orgmode@gnu.org; Mon, 02 Feb 2015 19:54:57 -0500 In-Reply-To: (John Kitchin's message of "Mon, 02 Feb 2015 14:51:10 -0500") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: John Kitchin Cc: Richard Lawrence , "emacs-orgmode@gnu.org" Hi John, Wow. It's inspiring to see Samuel's idea in action. Presumably, something like this would also be possible? ;; follow function (lambda (path) (let* ((data (read (concat "(" path ")"))) (head (car data)) (plist (cadr data))) (funcall (plist-get plist :follow) head))) [[slink:kitchin-2010 (:pre "See for example" :post "page 47" :type cite :follow #'ebib-open-org-link)]] All the best, Tom John Kitchin writes: >> 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 > > > > 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 > > -- Thomas S. Dye http://www.tsdye.com