This commit is contained in:
Chris Cochrun 2025-08-25 13:36:57 -05:00
parent 635842d7cb
commit 00d79d6edf
3 changed files with 118 additions and 33 deletions

105
bible.el
View file

@ -75,9 +75,18 @@
(pulsar-recenter-top))))
(defun org-bible-select ()
"Pick a different bible that is formatted in org-mode"
"Pick a different bible that is formatted in org-mode
If in a bible switch to the other version whilst keeping that position"
(interactive)
(let ((bible (completing-read "Pick a bible version: " '("ESV" "CSB" "NASB"))))))
(let ((bible (completing-read "Pick a bible version: " '("ESV" "CSB" "NLT"))))
(cond ((string= bible "ESV") (setq org-bible-selected "~/docs/bibles/esv.org"))
((string= bible "CSB") (setq org-bible-selected "~/docs/bibles/csb.org"))
((string= bible "NLT") (setq org-bible-selected "~/docs/bibles/nlt.org")))
(if (or (string= (buffer-name) "csb.org")
(string= (buffer-name) "esv.org")
(string= (buffer-name) "nlt.org"))
(let* ((verse (search-backward "Verse" (beginning-of-line)))))
(find-file org-bible-selected))))
;; (define-minor-mode org-bible-mode
;; "Toggles the org bible minor mode"
@ -85,11 +94,91 @@
;; :global t
;; :lighter " bible")
(defun org-bible-from-xml ()
;;; A helper function for creating org bibles from xml data
(defun org-bible-from-xml (&optional file)
"Get the bible from xml and render as org buffer"
(interactive)
(let ((bible (xml-parse-file "~/docs/bibles/engwebu_usfx.xml")))
(with-current-buffer (get-buffer-create "*web-bible*")
(insert (string bible))
(insert "hello")
(save-buffer))))
(with-current-buffer (get-buffer-create "*nlt-bible*")
(insert-file "~/docs/bibles/Bible_English_NLT.xml")
(let ((bible (cddr (libxml-parse-xml-region))))
(erase-buffer)
(insert "#+title: NLT - New Living Translation Bible
#+description: The New Living Translation Bible formatted in Org syntax: Copyright © 2015 by Tyndale House.
#+STARTUP: hidedrawers
#+OPTIONS: ^:{}
")
(cl-loop for book in bible
do (progn (insert "* "
(cond
((string= (alist-get 'bnumber (cadr book)) "1") "Genesis")
((string= (alist-get 'bnumber (cadr book)) "2") "Exodus")
((string= (alist-get 'bnumber (cadr book)) "3") "Leviticus")
((string= (alist-get 'bnumber (cadr book)) "4") "Numbers")
((string= (alist-get 'bnumber (cadr book)) "5") "Dueteronomy")
((string= (alist-get 'bnumber (cadr book)) "6") "Joshua")
((string= (alist-get 'bnumber (cadr book)) "7") "Judges")
((string= (alist-get 'bnumber (cadr book)) "8") "Ruth")
((string= (alist-get 'bnumber (cadr book)) "9") "1 Samuel")
((string= (alist-get 'bnumber (cadr book)) "10") "2 Samuel")
((string= (alist-get 'bnumber (cadr book)) "11") "1 Kings")
((string= (alist-get 'bnumber (cadr book)) "12") "2 Kings")
((string= (alist-get 'bnumber (cadr book)) "13") "1 Chronicles")
((string= (alist-get 'bnumber (cadr book)) "14") "2 Chronicles")
((string= (alist-get 'bnumber (cadr book)) "15") "Ezra")
((string= (alist-get 'bnumber (cadr book)) "16") "Nehemiah")
((string= (alist-get 'bnumber (cadr book)) "17") "Esther")
((string= (alist-get 'bnumber (cadr book)) "18") "Job")
((string= (alist-get 'bnumber (cadr book)) "19") "Psalms")
((string= (alist-get 'bnumber (cadr book)) "20") "Proverbs")
((string= (alist-get 'bnumber (cadr book)) "21") "Ecclesiastes")
((string= (alist-get 'bnumber (cadr book)) "22") "Song of Solomon")
((string= (alist-get 'bnumber (cadr book)) "23") "Isaiah")
((string= (alist-get 'bnumber (cadr book)) "24") "Jeremiah")
((string= (alist-get 'bnumber (cadr book)) "25") "Lamentations")
((string= (alist-get 'bnumber (cadr book)) "26") "Ezekiel")
((string= (alist-get 'bnumber (cadr book)) "27") "Daniel")
((string= (alist-get 'bnumber (cadr book)) "28") "Hosea")
((string= (alist-get 'bnumber (cadr book)) "29") "Joel")
((string= (alist-get 'bnumber (cadr book)) "30") "Amos")
((string= (alist-get 'bnumber (cadr book)) "31") "Obadiah")
((string= (alist-get 'bnumber (cadr book)) "32") "Jonah")
((string= (alist-get 'bnumber (cadr book)) "33") "Micah")
((string= (alist-get 'bnumber (cadr book)) "34") "Nahum")
((string= (alist-get 'bnumber (cadr book)) "35") "Habakkuk")
((string= (alist-get 'bnumber (cadr book)) "36") "Zephaniah")
((string= (alist-get 'bnumber (cadr book)) "37") "Haggai")
((string= (alist-get 'bnumber (cadr book)) "38") "Zechariah")
((string= (alist-get 'bnumber (cadr book)) "39") "Malachi")
((string= (alist-get 'bnumber (cadr book)) "40") "Matthew")
((string= (alist-get 'bnumber (cadr book)) "41") "Mark")
((string= (alist-get 'bnumber (cadr book)) "42") "Luke")
((string= (alist-get 'bnumber (cadr book)) "43") "John")
((string= (alist-get 'bnumber (cadr book)) "44") "Acts")
((string= (alist-get 'bnumber (cadr book)) "45") "Romans")
((string= (alist-get 'bnumber (cadr book)) "46") "1 Corinthians")
((string= (alist-get 'bnumber (cadr book)) "47") "2 Corinthians")
((string= (alist-get 'bnumber (cadr book)) "48") "Galatians")
((string= (alist-get 'bnumber (cadr book)) "49") "Ephesians")
((string= (alist-get 'bnumber (cadr book)) "50") "Phillipians")
((string= (alist-get 'bnumber (cadr book)) "51") "Colossians")
((string= (alist-get 'bnumber (cadr book)) "52") "1 Thessalonians")
((string= (alist-get 'bnumber (cadr book)) "53") "2 Thessalonians")
((string= (alist-get 'bnumber (cadr book)) "54") "1 Timothy")
((string= (alist-get 'bnumber (cadr book)) "55") "2 Timothy")
((string= (alist-get 'bnumber (cadr book)) "56") "Titus")
((string= (alist-get 'bnumber (cadr book)) "57") "Philemon")
((string= (alist-get 'bnumber (cadr book)) "58") "Hebrews")
((string= (alist-get 'bnumber (cadr book)) "59") "James")
((string= (alist-get 'bnumber (cadr book)) "60") "1 Peter")
((string= (alist-get 'bnumber (cadr book)) "61") "2 Peter")
((string= (alist-get 'bnumber (cadr book)) "62") "1 John")
((string= (alist-get 'bnumber (cadr book)) "63") "2 John")
((string= (alist-get 'bnumber (cadr book)) "64") "3 John")
((string= (alist-get 'bnumber (cadr book)) "65") "Jude")
((string= (alist-get 'bnumber (cadr book)) "66") "Revelation"))
"\n")
(cl-loop for chapter in (cddr book)
do (progn (insert "** Chapter " (alist-get 'cnumber (cadr chapter)) "\n")
(cl-loop for verse in (cddr chapter)
do (insert "*** Verse " (alist-get 'vnumber (cadr verse)) "\n" (caddr verse) "\n")))))))))