Config: fix org-journal template
This commit is contained in:
115
lisp/init-org.el
115
lisp/init-org.el
@@ -42,7 +42,7 @@
|
||||
(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\"")
|
||||
org-journal-carryover-items "TODO=\"TODO\"|TODO=\"STARTED\"|TODO=\"WAITING\"|TODO=\"SOMEDAY\"")
|
||||
|
||||
(when *is-windows*
|
||||
(setq org-journal-dir "h:/emacs/my-org-daily/"))
|
||||
@@ -58,6 +58,7 @@
|
||||
(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")))))
|
||||
|
||||
@@ -82,7 +83,7 @@
|
||||
(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."))))
|
||||
(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."
|
||||
@@ -92,48 +93,48 @@
|
||||
org-todo-keywords-1))
|
||||
(todo-pattern (when todo-keywords
|
||||
(regexp-opt todo-keywords 'words))))
|
||||
(when todo-pattern
|
||||
(when todo-pattern
|
||||
(mapc (lambda (entry)
|
||||
(let ((start (car entry))
|
||||
(end (set-marker (make-marker) (cadr 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))))
|
||||
(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)))
|
||||
(lambda ()
|
||||
(global-cns-mode-enable-in-buffer)))
|
||||
|
||||
|
||||
;; 一些随org-mode加载的基础配置
|
||||
(add-hook 'org-mode-hook
|
||||
(lambda ()
|
||||
(require 'org-tempo)
|
||||
(org-indent-mode)
|
||||
(setq-local electric-pair-inhibit-predicate
|
||||
(lambda ()
|
||||
(require 'org-tempo)
|
||||
(org-indent-mode)
|
||||
(setq-local electric-pair-inhibit-predicate
|
||||
(lambda (char)
|
||||
(or (eq char ?<)
|
||||
(electric-pair-default-inhibit char))))))
|
||||
|
||||
(with-eval-after-load 'org
|
||||
(require 'org-download)
|
||||
(setq org-return-follows-link t))
|
||||
(setq org-return-follows-link t))
|
||||
|
||||
;; 预加载,防止windows的org-mode加载卡顿
|
||||
(if *is-windows*
|
||||
(progn (run-with-idle-timer
|
||||
0.5 nil
|
||||
(lambda ()
|
||||
(with-temp-buffer
|
||||
(org-mode)
|
||||
(org-mode))
|
||||
(message "Org preloaded")))))
|
||||
0.5 nil
|
||||
(lambda ()
|
||||
(with-temp-buffer
|
||||
(org-mode)
|
||||
(org-mode))
|
||||
(message "Org preloaded")))))
|
||||
|
||||
;; 设置标题字体大小
|
||||
;; (dolist (face org-level-faces)
|
||||
@@ -200,34 +201,34 @@
|
||||
(setq org-agenda-custom-commands
|
||||
'(("pa" "Priority >= A"
|
||||
((tags-todo "+PRIORITY=\"A\"")))
|
||||
("pb" "Priority >= B"
|
||||
((tags-todo "+PRIORITY<=\"B\"")))
|
||||
("pc" "Priority >= C"
|
||||
((tags-todo "+PRIORITY<=\"C\"")))
|
||||
("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)))))))))
|
||||
("pb" "Priority >= B"
|
||||
((tags-todo "+PRIORITY<=\"B\"")))
|
||||
("pc" "Priority >= C"
|
||||
((tags-todo "+PRIORITY<=\"C\"")))
|
||||
("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)))))))))
|
||||
|
||||
(setq org-tag-alist '(
|
||||
("scheme" . ?s)
|
||||
@@ -279,7 +280,7 @@
|
||||
|
||||
;; 批量调整表格
|
||||
(defun org-table-align-all ()
|
||||
"Ajust all table in current buffer."
|
||||
"Ajust all table in current buffer."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
@@ -316,14 +317,14 @@ See `org-capture-templates' for more information."
|
||||
(file+headline "h:/emacs/hugo/this-is-my-blog/all-blog.org" "Blog Ideas")
|
||||
(function org-hugo-new-subtree-post-capture-template)))
|
||||
(add-to-list 'org-capture-templates
|
||||
'("h" ;`org-capture' binding + h
|
||||
"Hugo post"
|
||||
entry
|
||||
;; It is assumed that below file is present in `org-directory'
|
||||
;; and that it has a "Blog Ideas" heading. It can even be a
|
||||
;; symlink pointing to the actual location of all-posts.org!
|
||||
(file+headline "~/org/hugo/this-is-my-blog/all-blog.org" "Blog Ideas")
|
||||
(function org-hugo-new-subtree-post-capture-template)))))
|
||||
'("h" ;`org-capture' binding + h
|
||||
"Hugo post"
|
||||
entry
|
||||
;; It is assumed that below file is present in `org-directory'
|
||||
;; and that it has a "Blog Ideas" heading. It can even be a
|
||||
;; symlink pointing to the actual location of all-posts.org!
|
||||
(file+headline "~/org/hugo/this-is-my-blog/all-blog.org" "Blog Ideas")
|
||||
(function org-hugo-new-subtree-post-capture-template)))))
|
||||
|
||||
;; 快速部署
|
||||
(defun my-blog-publish ()
|
||||
@@ -350,8 +351,8 @@ See `org-capture-templates' for more information."
|
||||
(message "Pushing to remote...")
|
||||
(let ((exit-code (eshell-command "git push")))
|
||||
(if (eq exit-code t)
|
||||
(message "Push may have failed or nothing to push, check *Messages* buffer for details")
|
||||
(message "Push successfully %s" timestamp)))))
|
||||
(message "Push may have failed or nothing to push, check *Messages* buffer for details")
|
||||
(message "Push successfully %s" timestamp)))))
|
||||
|
||||
(global-set-key (kbd "C-c o p") 'my-blog-publish)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user