diff options
Diffstat (limited to 'emacs/work_inits/27-gemini.el')
| -rw-r--r-- | emacs/work_inits/27-gemini.el | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/emacs/work_inits/27-gemini.el b/emacs/work_inits/27-gemini.el new file mode 100644 index 0000000..65a499d --- /dev/null +++ b/emacs/work_inits/27-gemini.el @@ -0,0 +1,61 @@ +;; Time-stamp: <2021-09-27 08h48 EDT (hobbies)> + +(use-package elpher + :ensure t + :defer) + +(use-package visual-fill-column + :ensure t + :defer) + +(defvar gemlog-directory (expand-file-name "~/hobbies/l-3.space/")) +(defvar gemlog-file-name "%y%02m%02d") +(defvar gemlog-time-string "%Y-%02m-%02d %02Hh%02M %Z") +(defvar gemlog-time-zone "UTC") + +(defun gemlog-new-entry () + (interactive) + (let* ((title (read-string "Title: ")) + (number 1) + (file (format "%s/log-%s-%d.gmi" + gemlog-directory + (format-time-string gemlog-file-name nil t) + number))) + (while (file-exists-p file) + (setq number (+ 1 number)) + (setq file (format "%s/log-%s-%d.gmi" + gemlog-directory + (format-time-string gemlog-file-name nil t) + number))) + (find-file file) + (setq-local time-stamp-time-zone gemlog-time-zone + time-stamp-format gemlog-time-string) + (insert "Time-stamp: <>") (newline) (newline) + (insert "# " title) (newline) (newline) + (time-stamp))) + +(defvar gemini-footnote-symbols '("⁰" "¹" "²" "³" "⁴" "⁵" "⁶" "⁷" "⁸" "⁹" "ᵃ" "ᵇ" "ᶜ" "ᵈ" "ᵉ" "ᶠ")) + +(defun gemini-insert-footnote () + (interactive) + (let ((symb (car gemini-footnote-symbols)) + (n 0)) + (while (and symb (save-excursion (beginning-of-buffer) (search-forward symb nil t))) + (setq n (1+ n) + symb (nth n gemini-footnote-symbols))) + (if (not symb) (message "Ran out of footnote symbols. Customise `gemini-footnote-symbols'.") + (insert symb) + (end-of-buffer) + (unless (= (point) (point-at-bol)) (newline)) + (insert symb " ")))) + +(use-package gemini-mode + :ensure t + :bind (:map gemini-mode-map + ("C-c C-f" . gemini-insert-footnote)) + :hook (gemini-mode . (lambda () + (setq time-stamp-time-zone gemlog-time-zone + time-stamp-format gemlog-time-string) + (setq-local indent-tabs-mode nil) + (auto-fill-mode -1) + (set-fill-column 80)))) |
