From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: Dynamic links Date: Sun, 10 Jul 2016 17:19:50 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56420) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bMM8u-0001YU-TY for emacs-orgmode@gnu.org; Sun, 10 Jul 2016 17:20:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bMM8p-0000c6-Rm for emacs-orgmode@gnu.org; Sun, 10 Jul 2016 17:19:59 -0400 Received: from mail-qk0-x230.google.com ([2607:f8b0:400d:c09::230]:36648) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bMM8p-0000bw-ML for emacs-orgmode@gnu.org; Sun, 10 Jul 2016 17:19:55 -0400 Received: by mail-qk0-x230.google.com with SMTP id 82so77026907qko.3 for ; Sun, 10 Jul 2016 14:19:55 -0700 (PDT) In-reply-to: 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" To: Sriram Thaiyar Cc: emacs-orgmode@gnu.org It kind of sounds like you want the button-lock package. See http://kitchingroup.cheme.cmu.edu/blog/2015/03/18/Clickable-links-for-Twitter-handles-in-Emacs/ for example (and search "clickable text" on my blog for other examples). Maybe something like: #+BEGIN_SRC emacs-lisp (require 'button-lock) (global-button-lock-mode) (defvar ticket-regexp "\\([[:alpha:]]\\{2,5\\}-[[:digit:]]+\\)") (button-lock-set-button ticket-regexp (lambda () (interactive) (save-excursion (goto-char (previous-single-property-change (point) 'button-lock)) (looking-at ticket-regexp) (browse-url (format "http://www.some-ticket-system/%s" (match-string 0))))) :face 'org-link) #+END_SRC You get no export with this, but it has the functionality you want I think. Sriram Thaiyar writes: > Hi- > > I've implemented "dynamic links" which are like plain links but for > arbitrary regular expressions. > > I was wondering if there was a better way to do this? > > You can see the implementation here: > https://github.com/sri/dotfiles/commit/cd3429ce0c8e637c803835299c2ed4653d19a5fb > > (This works with Org-mode version: 8.3.4 - 8.3.4-88-g792bb9-elpa.) > > With this config: > > (add-to-list 'my-org-dynamic-links-matcher > '("\\([[:alpha:]]\\{2,5\\}-[[:digit:]]+\\)" > "https://some-ticketing-system.org/%s")) > > a string like `TEST-122' is turned into a link, as you type it in. > And when you click on that link, it'll visit this URL: > https://some-ticketing-system.org/TEST-122 > > There are some things that gave me problems: > > - I can't hit and have it follow the link. For this, it seems > like I would need to advice the `org-return' function. > > - Despite the fact that the `TEST-123' has a `htmlize-link' text property, > it errors out with "No link found". To fix that, I needed to add a hook to > `org-open-at-point-functions'. > > - I had to copy a bunch of code from `org-activate-plain-links' to get > this to work. > > Thanks, > -Sriram -- 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