;;; -*- 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) :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)) (require 'denote) (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)) (provide 'bd--notes) ;;; bd-notes ends here