diff options
Diffstat (limited to 'org/jao-org-links.el')
-rw-r--r-- | org/jao-org-links.el | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/org/jao-org-links.el b/org/jao-org-links.el index fcb0825..bd3512e 100644 --- a/org/jao-org-links.el +++ b/org/jao-org-links.el @@ -23,10 +23,7 @@ (defvar jao-org--sink-dir "./") (defun jao-org-follow-doc (link) - (let ((dest-path (concat "./doc/" - (and (boundp 'docs-dir) - (concat (symbol-name docs-dir) "/")) - link))) + (let ((dest-path (concat org-directory "/doc/" link))) (when (not (file-exists-p dest-path)) (let* ((sink-file (expand-file-name link jao-org--sink-dir)) (real-file (if (file-exists-p sink-file) sink-file @@ -35,15 +32,23 @@ (shell-command (format "mv %s %s" real-file dest-path)))) (browse-url (format "file://%s" (expand-file-name dest-path))))) +(defun jao-org-complete-doc (&optional arg) + (let ((default-directory jao-org--sink-dir)) + (replace-regexp-in-string "^file:" "doc:" (org-file-complete-link arg)))) + (defsubst jao-org--title->file (title) (concat (mapconcat 'downcase (split-string title nil t) "-") ".pdf")) +;;;###autoload (defun jao-org-insert-doc (title) (interactive "sDocument title: ") (insert (format "[[doc:%s][%s]]" (jao-org--title->file title) title))) +;;;###autoload (defun jao-org-links-setup (sink-dir) - (org-add-link-type "doc" 'jao-org-follow-doc 'identity) + (org-link-set-parameters "doc" + :follow #'jao-org-follow-doc + :complete #'jao-org-complete-doc) (setq jao-org--sink-dir (file-name-as-directory sink-dir))) (provide 'jao-org-links) |