I have weekly TODO items that link to something that needs to be updated; for instance, I write a weekly letter to my daughter where each week the actual file for the letter will change. Right now I have to manually update that link in the org file, which is quite cumbersome. If I could just link to a bookmark then periodic updates of the bookmark would take care of any problem with updating the todo item. So, I've been tryin to kludge a solution based on the orgmode manual; while any suggestions would be useful for my budding elisp skills, in particular I'm not sure how to write the last function (org-bmkp-get-bookmark-name). Any suggestions?
--8<---------------cut here---------------start------------->8--- ;;; * bmkp links http://orgmode.org/manual/Adding-hyperlink-types.html (org-add-link-type "bmkp" 'org-bmkp-open) (add-hook 'org-store-link-functions 'org-bmkp-store-link) (defcustom org-bmkp-command 'bmkp "The Emacs command to be used to display a bmkp page." :group 'org-link :type '(choice (const bookmark-jump) (const bookmark-jump-other-window))) (defun org-bmkp-open (path) "Visit the bmkppage on PATH. PATH should be a bookmark name that can be thrown at the `bookmark-jump' function." (funcall org-bmkp-command path)) (defun org-bmkp-store-link () "Store a link to a bmkp bookmark." (when (memq major-mode '(bookmark-bmenu-mode)) (let* ((bookmark (org-bmkp-get-bookmark-name)) (link (concat "bmkp:" bookmark)) (description (format "Bookmark"))) (org-store-link-props :type "bmkp" :link link :description description)))) (defun org-bmkp-get-bookmark-name () ;; TODO "Get the bookmark name at point (from bookmark list)." (if (string-match " \\(\\S-+\\)\\*" (buffer-name)) (match-string 1 (buffer-name)) (error "Cannot create link to this bmkp bookmark"))) --8<---------------cut here---------------end--------------->8---