From 99f1ff33f0d918854ecbe64fb19645645a75c068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Jadi?= Date: Wed, 12 Mar 2014 08:06:13 +0900 Subject: [PATCH] contrib/lisp/org-ebib.el: Support for links to Ebib's entries * contrib/lisp/org-ebib.el: Support for links to Ebib's entries. (org-ebib-open): Open an Ebib's entry. (org-ebib-store-link): Store a link to an Ebib's entry. --- contrib/lisp/org-ebib.el | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 contrib/lisp/org-ebib.el diff --git a/contrib/lisp/org-ebib.el b/contrib/lisp/org-ebib.el new file mode 100644 index 000000000..2136a1344 --- /dev/null +++ b/contrib/lisp/org-ebib.el @@ -0,0 +1,47 @@ +;;; org-ebib.el - Support for links to Ebib's entries in Org +;; +;; Author: Grégoire Jadi +;; +;; This file is not yet part of GNU Emacs. +;; +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Commentary: + +(require 'org) + +(org-add-link-type "ebib" 'org-ebib-open) + +(add-hook 'org-store-link-functions 'org-ebib-store-link) + +(defun org-ebib-open (key) + "Open Ebib and jump to KEY." + (ebib nil key)) + +(defun org-ebib-store-link () + "Store a key to an Ebib entry." + (when (memq major-mode '(ebib-index-mode ebib-entry-mode)) + ;; This is an Ebib entry + (let* ((key (ebib-cur-entry-key)) + (link (concat "ebib:" key)) + (description (ignore-errors (ebib-db-get-field-value 'title key ebib-cur-db)))) + (org-store-link-props + :type "ebib" + :link link + :description description)))) + +(provide 'org-ebib) + +;;; org-ebib.el ends here