Skip to content

Instantly share code, notes, and snippets.

@Trevoke
Created January 8, 2025 15:01
Show Gist options
  • Save Trevoke/a1a4422a764feef39dd8e702701d0b19 to your computer and use it in GitHub Desktop.
Save Trevoke/a1a4422a764feef39dd8e702701d0b19 to your computer and use it in GitHub Desktop.
;; paste in a buffer and (eval-buffer)
;; start with M-x org-roam-dailies-preview
;; stop with M-x org-roam-dailies-quit-preview
;; Puts you in the org-roam-dailies directory
;; binds <up> and <down> to functions that move up and down
;; the dailies and place the contents of the daily in a preview buffer
(defun ordp--buffer ()
(let ((buffer (get-buffer-create "* Org Roam Dailies Preview *")))
(with-current-buffer buffer
(unless (eq major-mode #'org-mode)
(org-mode)
(view-mode 1)))
buffer))
(defun ordp--preview-daily-at-point ()
"Must be in a dired window. Preferably with the org-roam dailies."
(let ((buffer (ordp--buffer))
(file-to-visit (dired-get-file-for-visit)))
(delete-other-windows)
(split-window-horizontally)
(other-window 1 nil)
(with-current-buffer buffer
(view-mode -1)
(insert-file-contents file-to-visit nil nil nil t)
(view-mode -1))
(set-window-buffer (selected-window) buffer)
(other-window 1 nil)))
(defun ordp-up ()
(interactive nil 'dired-mode)
(dired-previous-line 1)
(ordp--preview-daily-at-point))
(defun ordp-down ()
(interactive nil 'dired-mode)
(dired-next-line 1)
(ordp--preview-daily-at-point))
(defun org-roam-dailies-preview ()
(interactive)
(org-roam-dailies-find-directory)
(delete-other-windows)
(org-roam-dailies-preview-mode 1))
(defun org-roam-dailies-quit-preview ()
(interactive)
(save-excursion
(org-roam-dailies-find-directory)
(org-roam-dailies-preview-mode -1)))
(defvar org-roam-dailies-preview-mode-map
(let ((keymap (make-sparse-keymap)))
(keymap-set keymap "<up>" 'ordp-up)
(keymap-set keymap "<down>" 'ordp-down)
keymap))
(define-minor-mode org-roam-dailies-preview-mode
"Foobar"
:global nil
:lighter " ORD")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment