diff options
Diffstat (limited to 'lib/doc/jao-pdf.el')
| -rw-r--r-- | lib/doc/jao-pdf.el | 47 |
1 files changed, 8 insertions, 39 deletions
diff --git a/lib/doc/jao-pdf.el b/lib/doc/jao-pdf.el index 5d27048..0a1734f 100644 --- a/lib/doc/jao-pdf.el +++ b/lib/doc/jao-pdf.el @@ -1,6 +1,6 @@ ;;; jao-pdf.el --- utilities for pdf files -*- lexical-binding: t; -*- -;; Copyright (C) 2022, 2025 jao +;; Copyright (C) 2022, 2025, 2026 jao ;; Author: jao <mail@jao.io> ;; Keywords: docs @@ -27,10 +27,13 @@ ;; - Interoperability with zathura. (require 'jao-doc-session) +(require 'jao-afio) +(require 'browse-url) ;;; PDF info (declare-function 'pdf-info-outline "pdf-info") +(defvar jao-pdf-org-dir nil) (defvar-local jao-pdf--outline nil) @@ -56,7 +59,7 @@ (setq-local jao-pdf--outline (doc-view--pdf-outline file-name))) (let ((page (or page (and (derived-mode-p 'doc-view-mode) (doc-view-current-page)) - (and (derived-mode-p 'pdf-view) (pdf-view-current-page)))) + (and (fboundp 'pdf-view-current-page) (pdf-view-current-page)))) (outline jao-pdf--outline) (cur-page 0) (cur-title (jao-pdf-title (or file-name buffer-file-name "title")))) @@ -91,21 +94,11 @@ (fn (file-name-nondirectory file)) (lnk (format "doc:%s::%s" fn page)) (desc (format "%s (p. %s)" (jao-pdf-section-title page file) no))) - (org-make-link-string lnk desc))) + (org-link-make-string lnk desc))) (defun jao-pdf-zathura-org-link (title) (jao-pdf--zathura-link (jao-pdf-zathura-file-info title))) -(defun jao-zathura-open (file page) - (let ((id (jao-x11-search-window (jao-pdf-zathura-title-rx file)))) - (if (string-blank-p id) - (progn - (when jao-xmonad-enabled (jao-x11-goto-ws 2)) - (jao-shell-exec (jao-pdf-zathura-open-cmd file page))) - (let* ((page (if page (format " && xdotool type %dg" page) "")) - (cmd (format "xdotool windowactivate %s%s" id page))) - (jao-shell-exec cmd t))))) - ;;; Mac (when (eq system-type 'darwin) @@ -115,7 +108,7 @@ (file (file-name-nondirectory (car fp))) (page (cadr fp)) (lnk (format "doc:%s::%s" file page))) - (org-make-link-string lnk title))) + (org-link-make-string lnk title))) (defun jao-pdf-insert-skim-org-link () (interactive) @@ -127,27 +120,11 @@ ;;; Open doc functions (defvar jao-pdf-open-in-emacs t) -(defun jao-find-or-open (file &optional page height) - (cond ((and jao-pdf-open-in-emacs window-system) - (let* ((buffs (buffer-list)) - (b (catch 'done - (while buffs - (when (string-equal (buffer-file-name (car buffs)) file) - (throw 'done (car buffs))) - (setq buffs (cdr buffs)))))) - (jao-afio-goto-docs) - (if b (pop-to-buffer b) (find-file file)) - (when page (jao-doc-view-goto-page page height)))) - (jao-river-enabled (jao-river-open-with-zathura file page)) - (jao-sway-enabled (jao-sway-open-with-zathura file page)) - ((eq system-type 'darwin) (jao-mac-open-in-skim file page)) - (t (jao-zathura-open file page)))) - (defun jao-open-doc (&optional file page height) (interactive) (when-let* ((file (or file (read-file-name "Document: " - (concat jao-org-dir "/doc/"))))) + (concat jao-pdf-org-dir "/doc/"))))) (funcall jao-open-doc-fun file page height))) (defun jao-select-pdf () @@ -155,14 +132,6 @@ (jao-buffer-same-mode '(pdf-view-mode doc-view-mode org-mode) #'jao-afio-goto-docs)) -(defun jao-open-with-zathura () - (interactive) - (when-let* ((f buffer-file-name)) - (let ((p (jao-doc-view-current-page))) - (cond (jao-river-enabled (jao-river-open-with-zathura f p)) - (jao-sway-enabled (jao-sway-open-with-zathura f p)) - (t (jao-zathura-open f p)))))) - ;;; doc:// links for browse-url (defun jao-open-doc-url (url &rest _) |
