;; Time-stamp: <2024-07-13 15h03 CEST (471b3659)> (use-package elpher :ensure :defer :config (setq elpher-default-url-type "gemini")) (use-package visual-fill-column :ensure :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) (require 'gemini-mode) (gemini-mode))) (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 :defer :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))))