diff options
author | Kyle Meyer <kyle@kyleam.com> | 2014-11-23 15:55:51 -0500 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2014-11-23 15:55:51 -0500 |
commit | 4229bcb6942584549b3a446b7660548781fca832 (patch) | |
tree | ebad078a83fa9a4fa3f08e4bb4974106796f32ea | |
parent | bb5ba9e30500baaec922c57ea271b27967bd3d4f (diff) | |
download | bog-4229bcb6942584549b3a446b7660548781fca832.tar.gz |
Add command to open first citekey heading link
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | bog.el | 23 |
4 files changed, 31 insertions, 0 deletions
@@ -25,6 +25,12 @@ - New command =bog-insert-heading-citekey= prompts with all heading citekeys and inserts the selected one at point. +- New command =bog-open-first-citekey-link= opens the first link found + under the subtree of a citekey. This is particularly useful if you + place the main link for the study (usually a DOI link) as the first + link in the citekey's subtree. The citekey is either taken from at + point or selected from all heading citekeys. + ** Other changes - =bog-goto-citekey-heading-in-buffer= and @@ -106,6 +106,7 @@ Other useful functions include - =bog-sort-topic-headings-in-buffer= - =bog-sort-topic-headings-in-notes= - =bog-insert-heading-citekey= +- =bog-open-first-citekey-link= * Variables @@ -95,6 +95,7 @@ Other useful functions include - `bog-sort-topic-headings-in-buffer` - `bog-sort-topic-headings-in-notes` - `bog-insert-heading-citekey` +- `bog-open-first-citekey-link` # Variables @@ -767,6 +767,28 @@ current buffer." 'bog-all-heading-citekeys))) (insert (bog-select-citekey (funcall citekey-func))))) +(defun bog-open-first-citekey-link (&optional no-context) + "Open first link under citekey heading. + +The citekey will be taken from the text under point if it matches +`bog-citekey-format' or from the current tree. + +With prefix argument NO-CONTEXT, a prompt will open to select +from all citekeys for headings in notes. This same prompt will be +opened if locating a citekey from context fails." + (interactive "P") + (let* ((citekey (bog-citekey-from-point-or-all-headings no-context)) + (marker + (org-find-exact-heading-in-directory citekey bog-notes-directory))) + (if marker + (with-current-buffer (marker-buffer marker) + (org-with-wide-buffer + (goto-char marker) + (org-narrow-to-subtree) + (org-next-link) + (org-open-at-point))) + (message "Heading for %s not found in notes" citekey)))) + ;;; Font-lock @@ -873,6 +895,7 @@ chosen." (define-key prefix-map "h" 'bog-goto-citekey-heading-in-buffer) (define-key prefix-map "H" 'bog-goto-citekey-heading-in-notes) (define-key prefix-map "i" 'bog-citekey-tree-to-indirect-buffer) + (define-key prefix-map "l" 'bog-open-first-citekey-link) (define-key prefix-map "r" 'bog-rename-staged-file-to-citekey) (define-key prefix-map "s" 'bog-search-notes) (define-key prefix-map "w" 'bog-refile) |