summaryrefslogtreecommitdiff
path: root/.config/emacs
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2024-09-14 13:07:14 -0400
committerbd <bdunahu@operationnull.com>2024-09-14 13:07:14 -0400
commitf77452602b3cafeeabbf1cdc6039b04565d2f0e6 (patch)
tree4a5ee504b356aacb06e18031d04be480e05f0f47 /.config/emacs
parent9f2a566fa39232d9bd8cbda60f5f4acb1992295e (diff)
.skr opens in scheme mode, denote format for skribe
Diffstat (limited to '.config/emacs')
-rw-r--r--.config/emacs/modules/bd--devel.el3
-rw-r--r--.config/emacs/modules/bd--notes.el32
2 files changed, 35 insertions, 0 deletions
diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el
index a37762d..d41fa27 100644
--- a/.config/emacs/modules/bd--devel.el
+++ b/.config/emacs/modules/bd--devel.el
@@ -59,6 +59,9 @@ to.")
;; questionable default
(indent-tabs-mode 0)
+;; skr is a scheme extension
+(add-to-list 'auto-mode-alist '("\\.skr\\'" . scheme-mode))
+
(use-package rainbow-mode
:hook css-mode)
diff --git a/.config/emacs/modules/bd--notes.el b/.config/emacs/modules/bd--notes.el
index 36e1f17..15b5f2c 100644
--- a/.config/emacs/modules/bd--notes.el
+++ b/.config/emacs/modules/bd--notes.el
@@ -20,6 +20,38 @@
(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