💾 Archived View for l-3.space › log-201206-1.gmi captured on 2023-11-14 at 07:41:35. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-11-30)
-=-=-=-=-=-=-
Time-stamp: <2020-12-06 22h30 UTC>
Here's a snippet i found i needed to write after laboriously using `C-x 8 RET' for the umpteenth time to insert footnote markers. Throw it in your config, bind it to a something⁰ and enjoy! The code should more-or-less speak for itself, but to be sure:
Actually, in the process of writing this article, i noticed a possibly unfortunate gap in the logic: it doesn't distinguish between verbatim blocks (```) and the rest of the body. I can't tell how i feel about this, for now though, WONTFIX :)
(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 " "))))
⁰ I have it bound to `C-c C-f' in gemini-mode.