From 64840e1a92e6a16dd58fe2ab01fd99c261913535 Mon Sep 17 00:00:00 2001 From: bth Date: Wed, 26 Aug 2026 12:54:35 -0700 Subject: [PATCH] um-mode is the featurep and filename, no more CLI hook --- um.el => um-mode.el | 48 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 40 deletions(-) rename um.el => um-mode.el (93%) diff --git a/um.el b/um-mode.el similarity index 93% rename from um.el rename to um-mode.el index 163b1e4..8b6ae73 100644 --- a/um.el +++ b/um-mode.el @@ -1,13 +1,13 @@ -;;; um.el --- An Ultralight database for Markdown composition. -*- lexical-binding: t -*- +;;; um-mode.el --- An Ultralight database for Markdown composition. -*- lexical-binding: t -*- ;; by bth -;; Version: 0.1 +;; Version: 0.2 ;; Um is an ultralight database design and emacs toolkit for organizing writing ;; into larger compositions. It consists of two parts: ;; -;; 1. Elisp for functionality within emacs. -;; 2. Go for the commandline interface. +;; 1. `um' commandline interface: https://git.bth.moi/bth/um +;; 2. `um-mode' and `um-minor-mode' within emacs: https://git.bth.moi/bth/um-mode ;; ;; This is somewhat like org-roam, except without any database dependency. (And ;; it assumes Markdown rather than org, which I don't care for.) @@ -57,12 +57,6 @@ :group 'um ) -(defcustom um-date-separator "-" - "Seperator used in date strings, used by `um--date-format' and `um--date-re'." - :type '(string) - :group 'um - ) - ;; NOTE: regexp-opt wraps the whole expression in (), so I can't omit the -. (defcustom um-locale-re (regexp-opt '( "- home" @@ -74,21 +68,17 @@ :group 'um ) -(defconst um--date-format (concat "%Y" um-date-separator "%m" um-date-separator "%d") - "Format passed to `format-time-string' when creating - `um--header'. ISO8601 with a custom `um-date-separator'.") - (defconst um--date-re (rx line-start (literal ": ") (group (repeat 4 digit) - (literal um-date-separator) + (literal ".") (repeat 1 2 digit) - (literal um-date-separator) + (literal ".") (repeat 1 2 digit)) line-end ) - "um date regexp. built from `um-date-separator'." + "um date regexp." ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -347,28 +337,6 @@ Prefix arg prompts for the directory instead. (ispell-buffer) )))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; CLI - -(defun um--header (filename &optional tags) - "Create a header composed of: - -# filename -: date -+ tags - -" - (with-temp-buffer (insert - (format "# %s\n: %s%s" filename (format-time-string um--date-format) um--header-end)) - (when tags - (forward-line -1) - (dolist (tag (split-string tags ",")) - (insert (format "+ %s\n" - (if (equal "+" tag) - (cadr (split-string filename "\\.")) - tag))))) - (buffer-string))) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; um-minor-mode ;; @@ -640,7 +608,7 @@ A negative prefix argument moves it backward. (cursor-intangible-mode) (read-only-mode)) -(provide 'um) +(provide 'um-mode) ;; Local Variables: ;; outline-regexp: ";;;+ [^;]+"