Config: migrate from org-journal to denote-journal
This commit is contained in:
182
lisp/init-org.el
182
lisp/init-org.el
@@ -53,9 +53,9 @@
|
||||
(setq org-agenda-files '("h:/emacs/hugo/this-is-my-blog/all-blog.org"
|
||||
"h:/emacs/my-org-daily/")))
|
||||
(*is-mac*
|
||||
(setq org-agenda-files '("~/org/my-org-daily")))
|
||||
(setq org-agenda-files '("~/org/my-org-note/20260509T232442==agenda--all-my-todos__org.org")))
|
||||
(*is-linux*
|
||||
(setq org-agenda-files '("~/org/my-org-daily/"))))
|
||||
(setq org-agenda-files '("~/org/my-org-note/20260509T232442==agenda--all-my-todos__org.org"))))
|
||||
|
||||
(setq org-agenda-span 'day)
|
||||
(setq org-default-priority ?C)
|
||||
@@ -83,6 +83,15 @@
|
||||
;; denote-org
|
||||
(use-package denote-org)
|
||||
|
||||
;; denote-journal
|
||||
(use-package denote-journal
|
||||
:init
|
||||
(add-hook 'calendar-mode-hook #'denote-journal-calendar-mode)
|
||||
:config
|
||||
(setq denote-journal-directory (expand-file-name "journal" denote-directory))
|
||||
(setq denote-journal-keyword nil)
|
||||
(setq denote-journal-signature "journal"))
|
||||
|
||||
;; denote-explore
|
||||
(use-package denote-explore)
|
||||
|
||||
@@ -93,8 +102,6 @@
|
||||
:init
|
||||
(consult-notes-denote-mode)
|
||||
:config
|
||||
(setq consult-notes-file-dir-sources '(("Org Notes" ?n "~/org/my-org-note/" :hidden t)
|
||||
("Org Journal" ?j "~/org/my-org-daily/" :hidden t)))
|
||||
(setq consult-notes-denote-display-keywords-indicator "_")
|
||||
(setq consult-notes-denote-display-id-format 'date)
|
||||
(setq consult-notes-denote-display-signature t))
|
||||
@@ -116,108 +123,8 @@
|
||||
(require 'org-download)
|
||||
(setq org-return-follows-link t)))
|
||||
|
||||
;; org-journal
|
||||
(use-package org-journal
|
||||
:config
|
||||
(setq org-journal-file-format "%Y-%m-%d.org"
|
||||
org-journal-file-header "#+category: journal\n#+STARTUP: content\n\n"
|
||||
org-journal-time-prefix "\n*** TODO "
|
||||
org-journal-time-format "%m-%d \n<%Y-%m-%d %a %H:%M:%S>\n"
|
||||
org-journal-hide-entries-p t
|
||||
org-journal-date-format (lambda (time)
|
||||
(format "* %s %s\n\n[%s]\n"
|
||||
(format-time-string "%Y-%m-%d" time)
|
||||
(format-time-string "%a" time)
|
||||
(format-time-string "%Y-%m-%d %a" time)))
|
||||
org-journal-carryover-items "TODO=\"TODO\"|TODO=\"STARTED\"|TODO=\"WAITING\"|TODO=\"SOMEDAY\"")
|
||||
|
||||
(if *is-windows*
|
||||
(setq org-journal-dir "h:/emacs/my-org-daily/")
|
||||
(setq org-journal-dir "~/org/my-org-daily/"))
|
||||
|
||||
(add-hook 'org-journal-mode-hook 'font-lock-update)
|
||||
|
||||
(defun my/journal-setup-new-day ()
|
||||
(save-excursion
|
||||
(org-back-to-heading)
|
||||
(let ((day-end (save-excursion (org-end-of-subtree) (point))))
|
||||
(unless (search-forward "** daily" day-end t)
|
||||
(goto-char day-end)
|
||||
(unless (bolp) (insert "\n"))
|
||||
(insert "\n\n** daily\n\n\n")
|
||||
(insert "** tasks\n")))))
|
||||
|
||||
(add-hook 'org-journal-after-header-create-hook #'my/journal-setup-new-day)
|
||||
|
||||
(defun my/journal-position-cursor-after-time ()
|
||||
(when (derived-mode-p 'org-journal-mode)
|
||||
(org-back-to-heading)
|
||||
(end-of-line)))
|
||||
|
||||
(add-hook 'org-journal-after-entry-create-hook #'my/journal-position-cursor-after-time)
|
||||
|
||||
(defun org-journal-open-entry-for-editing (&optional event)
|
||||
"Open journal entry for the date under cursor in calendar for editing."
|
||||
(interactive
|
||||
(list last-nonmenu-event))
|
||||
(let* ((date (calendar-cursor-to-date t event))
|
||||
(time (org-journal--calendar-date->time date))
|
||||
(org-journal-file (org-journal--get-entry-path time)))
|
||||
(if (file-exists-p org-journal-file)
|
||||
(progn
|
||||
(funcall org-journal-find-file org-journal-file)
|
||||
(unless (org-journal--daily-p)
|
||||
(org-journal--goto-entry date)))
|
||||
(message "No journal entry for this date."))))
|
||||
|
||||
(defun my/org-journal-mark-old-todos-as-comment (entries)
|
||||
"Change TODO entry's TODO keyword to COMMENT after carryover."
|
||||
(save-excursion
|
||||
(let* ((todo-keywords (cl-remove-if
|
||||
(lambda (kw) (member kw org-done-keywords))
|
||||
org-todo-keywords-1))
|
||||
(todo-pattern (when todo-keywords
|
||||
(regexp-opt todo-keywords 'words))))
|
||||
(when todo-pattern
|
||||
(mapc (lambda (entry)
|
||||
(let ((start (car entry))
|
||||
(end (set-marker (make-marker) (cadr entry))))
|
||||
(goto-char start)
|
||||
(while (re-search-forward (concat "^\\(\\*+ \\)" todo-pattern) end t)
|
||||
(replace-match "\\1COMMENT" t nil))
|
||||
(set-marker end nil)))
|
||||
(reverse entries))))
|
||||
(save-buffer)))
|
||||
|
||||
(setq org-journal-handle-old-carryover-fn #'my/org-journal-mark-old-todos-as-comment)
|
||||
|
||||
;; 在org-journal加载cns-mode
|
||||
(add-hook 'org-journal-mode-hook
|
||||
(lambda ()
|
||||
(global-cns-mode-enable-in-buffer))))
|
||||
|
||||
;; org-ql
|
||||
(use-package org-ql
|
||||
:config
|
||||
(with-eval-after-load 'org-ql-view
|
||||
(keymap-set org-ql-view-map (kbd "q") 'org-agenda-Quit))
|
||||
|
||||
(setq org-ql-views
|
||||
'(("tags: emacs category:note"
|
||||
:buffers-files org-agenda-files
|
||||
:query (and (tags "emacs") (category "note"))
|
||||
:sort date)
|
||||
|
||||
("group by time"
|
||||
:buffers-files org-agenda-files
|
||||
:query (and (ts :to "today") (tags "root"))
|
||||
:sort date
|
||||
:super-groups ((:auto-ts t)))
|
||||
|
||||
("group by category"
|
||||
:buffers-files org-agenda-files
|
||||
:query (tags "root")
|
||||
:super-groups ((:auto-property "CATEGORY"))))))
|
||||
(use-package org-ql)
|
||||
|
||||
;; org-super-agenda 配置
|
||||
(use-package org-super-agenda
|
||||
@@ -235,25 +142,21 @@
|
||||
("qd" "TODO entries sort by closed time"
|
||||
((org-ql-block '(closed)
|
||||
((org-ql-block-header "Closed TODOs")
|
||||
(org-ql-sort '(closed))
|
||||
(org-super-agenda-groups
|
||||
'((:auto-ts t)))))))
|
||||
("qS" "SOMEDAYs"
|
||||
((org-ql-block '(todo "SOMEDAY")
|
||||
((org-ql-block-header "SOMEDAYs")
|
||||
(org-ql-sort '(start-time))
|
||||
(org-super-agenda-groups
|
||||
'((:auto-ts t)))))))
|
||||
("qs" "STARTEDs"
|
||||
((org-ql-block '(todo "STARTED")
|
||||
((org-ql-block-header "STARTEDs")
|
||||
(org-ql-sort '(start-time))
|
||||
(org-super-agenda-groups
|
||||
'((:auto-ts t)))))))
|
||||
("qt" "TODOs sort by start time"
|
||||
((org-ql-block '(todo)
|
||||
((org-ql-block-header "TODOs")
|
||||
(org-ql-sort '(start-time))
|
||||
(org-super-agenda-groups
|
||||
'((:auto-ts t)))))))
|
||||
("qa" "all TODO entries"
|
||||
@@ -267,55 +170,18 @@
|
||||
(:name "someday" :todo "SOMEDAY")
|
||||
))))))))
|
||||
|
||||
(setq org-tag-alist '(
|
||||
("scheme" . ?s)
|
||||
("emacs" . ?e)
|
||||
("elisp" . ?E)
|
||||
("org" . ?o)
|
||||
("linux" . ?l)
|
||||
("computer-stuff" . ?c)
|
||||
("philosophy" . ?p)
|
||||
("film" . ?f)
|
||||
("game" . ?g)
|
||||
("gamestudies" . ?G)
|
||||
("masterpiece" . ?m)
|
||||
))
|
||||
|
||||
;; (setq org-tags-exclude-from-inheritance '())
|
||||
|
||||
;; capture模板
|
||||
(defvar my-org-capture-temp-title "" "Temporarily store the org-capture filename.")
|
||||
(setq org-capture-templates
|
||||
'(("n" "New Note" plain
|
||||
(file (lambda ()
|
||||
(setq my-org-capture-temp-title (read-string "Filename (without .org): "))
|
||||
(expand-file-name (if *is-windows*
|
||||
(format "%s/%s-%s.org"
|
||||
"h:/emacs/my-org-note/"
|
||||
(format-time-string "%Y%m%d")
|
||||
my-org-capture-temp-title)
|
||||
(format "%s/%s-%s.org"
|
||||
"~/org/my-org-note/"
|
||||
(format-time-string "%Y%m%d")
|
||||
my-org-capture-temp-title)))))
|
||||
"
|
||||
#+title: %(symbol-value 'my-org-capture-temp-title)
|
||||
#+date: %U
|
||||
#+category: %^{Category|none|project|book|article|note|wisdom|fun|data}
|
||||
|
||||
* %(symbol-value 'my-org-capture-temp-title) :root%^g
|
||||
:PROPERTIES:
|
||||
:END:
|
||||
%U
|
||||
|
||||
%?
|
||||
|
||||
|
||||
# Local Variables:
|
||||
# org-use-tag-inheritance: nil
|
||||
# End:
|
||||
"
|
||||
:jump-to-captured t)))
|
||||
(unless *is-windows*
|
||||
(setq org-capture-templates
|
||||
'(("t" "TODO" entry
|
||||
(file+headline "~/org/my-org-note/20260509T232442==agenda--all-my-todos__org.org" "Something to do")
|
||||
"* TODO %<%m-%d> %?\n%T"
|
||||
:empty-lines 1
|
||||
:jump-to-captured t)
|
||||
("S" "someday" entry
|
||||
(file+headline "~/org/my-org-note/20260509T232442==agenda--all-my-todos__org.org" "Something to do")
|
||||
"* SOMEDAY %<%m-%d> %?\n%T"
|
||||
:empty-lines 1
|
||||
:jump-to-captured t))))
|
||||
|
||||
(setq org-bookmark-names-plist nil)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user