Add things to deal with reading list in org-mode
This commit is contained in:
parent
5cd4dee407
commit
7969cd4251
3 changed files with 41 additions and 2 deletions
9
oni-org/capture-templates/reading-url-protocol.org
Normal file
9
oni-org/capture-templates/reading-url-protocol.org
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
* READ %:description
|
||||||
|
:PROPERTIES:
|
||||||
|
:CREATED: %U
|
||||||
|
:END:
|
||||||
|
|
||||||
|
[[%:link]]
|
||||||
|
|
||||||
|
#+BEGIN: oni-backlinks
|
||||||
|
#+END
|
7
oni-org/capture-templates/reading-url.org
Normal file
7
oni-org/capture-templates/reading-url.org
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
* READ %(oni-org-get-url-link (read-from-minibuffer "URL: ")) %^g
|
||||||
|
:PROPERTIES:
|
||||||
|
:CREATED: %U
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+BEGIN: oni-backlinks
|
||||||
|
#+END
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
;; Author: Tom Willemse <tom@ryuslash.org>
|
;; Author: Tom Willemse <tom@ryuslash.org>
|
||||||
;; Keywords: local
|
;; Keywords: local
|
||||||
;; Version: 2020.1119.235712
|
;; Version: 2020.1130.123201
|
||||||
;; Package-Requires: (oni-yasnippet oni-alert oni-hydra org-plus-contrib org-bullets org-edna diminish all-the-icons)
|
;; Package-Requires: (oni-yasnippet oni-alert oni-hydra org-plus-contrib org-bullets org-edna diminish all-the-icons)
|
||||||
|
|
||||||
;; This program is free software; you can redistribute it and/or modify
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -335,6 +335,7 @@ also move point to the start of the heading."
|
||||||
(setq org-agenda-custom-commands
|
(setq org-agenda-custom-commands
|
||||||
'(("i" "Inbox" tags "CATEGORY=\"inbox\"")
|
'(("i" "Inbox" tags "CATEGORY=\"inbox\"")
|
||||||
("t" "Next" tags-todo "TODO=\"NEXT\"-CATEGORY=\"inbox\"")
|
("t" "Next" tags-todo "TODO=\"NEXT\"-CATEGORY=\"inbox\"")
|
||||||
|
("r" "Reading list" tags-todo "TODO=\"READ\"")
|
||||||
("s" "Someday" tags-todo "TODO=\"TODO\"-CATEGORY=\"inbox\"")
|
("s" "Someday" tags-todo "TODO=\"TODO\"-CATEGORY=\"inbox\"")
|
||||||
("p" "Projects & ideas" tags "CATEGORY=\"project\"|CATEGORY=\"idea\"")
|
("p" "Projects & ideas" tags "CATEGORY=\"project\"|CATEGORY=\"idea\"")
|
||||||
("c" "Today's (Current) tasks" tags "SCHEDULED=\"<today>\"")
|
("c" "Today's (Current) tasks" tags "SCHEDULED=\"<today>\"")
|
||||||
|
@ -342,7 +343,7 @@ also move point to the start of the heading."
|
||||||
("wo" "Overview" ((tags-todo "+work+FOR=\"\"")
|
("wo" "Overview" ((tags-todo "+work+FOR=\"\"")
|
||||||
(tags-todo "+work+FOR=\"Jordan\"")
|
(tags-todo "+work+FOR=\"Jordan\"")
|
||||||
(tags-todo "+work+FOR=\"Remy\"")))
|
(tags-todo "+work+FOR=\"Remy\"")))
|
||||||
("wt" "Word todo" tags-todo "+work+FOR=\"\"")
|
("wt" "Work todo" tags-todo "+work+FOR=\"\"")
|
||||||
("wj" "Topics for Jordan" tags-todo "+work+1o1+FOR=\"Jordan\"")
|
("wj" "Topics for Jordan" tags-todo "+work+1o1+FOR=\"Jordan\"")
|
||||||
("wr" "Topics for Remy" tags-todo "+work+1o1+FOR=\"Remy\"")
|
("wr" "Topics for Remy" tags-todo "+work+1o1+FOR=\"Remy\"")
|
||||||
("S" "Shopping" tags-todo "+shopping")))
|
("S" "Shopping" tags-todo "+shopping")))
|
||||||
|
@ -378,6 +379,22 @@ After running it once remove it from `org-capture-after-finalize-hook'."
|
||||||
(setf (frame-height) 24)
|
(setf (frame-height) 24)
|
||||||
(add-hook 'org-capture-after-finalize-hook 'oni-org-delete-frame-once)))
|
(add-hook 'org-capture-after-finalize-hook 'oni-org-delete-frame-once)))
|
||||||
|
|
||||||
|
(defun oni-org-get-url-title (url)
|
||||||
|
"Load URL and parse out the title."
|
||||||
|
(with-current-buffer
|
||||||
|
(url-retrieve-synchronously url)
|
||||||
|
(unwind-protect
|
||||||
|
(when (re-search-forward (rx "<title" (zero-or-more (not ">")) ">") nil t)
|
||||||
|
(let ((title-start (point)))
|
||||||
|
(when (re-search-forward (rx "</title>") nil t)
|
||||||
|
(string-trim (buffer-substring title-start (- (point) 8))))))
|
||||||
|
(kill-buffer))))
|
||||||
|
|
||||||
|
(defun oni-org-get-url-link (url)
|
||||||
|
"Turn URL into an org link."
|
||||||
|
(let ((title (oni-org-get-url-title url)))
|
||||||
|
(format "[[%s][%s]]" url title)))
|
||||||
|
|
||||||
(setq org-capture-templates
|
(setq org-capture-templates
|
||||||
`(("i" "Inbox" entry (file "")
|
`(("i" "Inbox" entry (file "")
|
||||||
(file ,(expand-file-name "inbox.org" oni-org-capture-template-directory)))
|
(file ,(expand-file-name "inbox.org" oni-org-capture-template-directory)))
|
||||||
|
@ -387,6 +404,12 @@ After running it once remove it from `org-capture-after-finalize-hook'."
|
||||||
(file ,(expand-file-name "task.org" oni-org-capture-template-directory)))
|
(file ,(expand-file-name "task.org" oni-org-capture-template-directory)))
|
||||||
("a" "Appointment" entry (file "")
|
("a" "Appointment" entry (file "")
|
||||||
(file ,(expand-file-name "appointment.org" oni-org-capture-template-directory)))
|
(file ,(expand-file-name "appointment.org" oni-org-capture-template-directory)))
|
||||||
|
("u" "URL to read" entry (file "")
|
||||||
|
(file ,(expand-file-name "reading-url.org" oni-org-capture-template-directory))
|
||||||
|
:immediate-finish t)
|
||||||
|
("U" "URL to read" entry (file "")
|
||||||
|
(file ,(expand-file-name "reading-url-protocol.org" oni-org-capture-template-directory))
|
||||||
|
:immediate-finish t)
|
||||||
("j" "Journal entry" entry
|
("j" "Journal entry" entry
|
||||||
(file+olp+datetree
|
(file+olp+datetree
|
||||||
,(oni-org-expand-to-home "documents/gtd/journal.org"))
|
,(oni-org-expand-to-home "documents/gtd/journal.org"))
|
||||||
|
|
Loading…
Reference in a new issue