summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--notes.el
blob: fafc56ab06010c91797223ac483bdcd829f4f8d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
;;; -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:


(use-package denote
  :hook
  ((dired-mode . denote-dired-mode-in-directories))
  :bind (("H-d f" . 'denote-open-or-create)
         ("H-d j" . 'denote-journal-extras-new-or-existing-entry)
         :map org-mode-map
         ("C-c l" . 'denote-link))
  :config
  (require 'denote-journal-extras)

  ;;;; skribe
  (defvar bd/denote-skribe-front-matter
    "(post
 :title \"%s\"
 :date %s
 :tags '(\"%s\")
 ;; identifier: %s
\n\n)")
  (defun bd/denote-skribe-format-date (date)
    "Format DATE as a scheme procedure."
    (format-time-string "(make-date* %Y %m %d %H %M)" date))
  (defun bd/denote-format-keywords-for-skribe-front-matter (keywords)
    "Format front matter KEYWORDS for skribe file type.
KEYWORDS is a list of strings."
    (string-join keywords "\" \""))
  (add-to-list 'denote-file-types '(skribe
                                    :extension ".skr"
                                    :date-function bd/denote-skribe-format-date
                                    :front-matter bd/denote-skribe-front-matter
                                    :title-key-regexp "^:title\\s-*"
                                    :title-value-function identity
                                    :title-value-reverse-function denote-trim-whitespace
                                    :keywords-key-regexp "^:tags\\s-*"
                                    :keywords-value-function bd/denote-format-keywords-for-skribe-front-matter
                                    :keywords-value-reverse-function denote-extract-keywords-from-front-matter
                                    :link my-denote-shell-link-format
                                    :link-in-context-regexp my-denote-shell-link-in-context-regexp))
  :custom
  (denote-file-type 'org)
  (denote-known-keywords '("ss" "writing" "reading" "art" "csu" "umass" "cs" "guix" "emacs" "programs" "mem"))
  (denote-directory (expand-file-name "~/dc/"))
  (denote-prompts '(title file-type keywords))
  (denote-dired-directories (list denote-directory))
  (denote-journal-extras-directory (expand-file-name "~/dc/log"))
  (denote-journal-extras-title-format 'day-date-month-year))


(provide 'bd--notes)
;;; bd-notes ends here