Bible Study in Obsidian Kit (including the Bible in Markdown)

Has anyone considered the posibility to use block referencing instead of header referencing for the Bible? for example:

The children of Israel were fruitful, and increased abundantly, and multiplied, and grew exceedingly mighty; and the land was filled with them. ^Exod-01v7

That is a great idea! My dataview knowledge isn’t sufficient for that (yet) but I love the idea.

I thought about it lately (mostly because every once in a while my css snippet for the adjusted h6 headings crashes and needs readjusting).
But I disliked the idea of having the block references behind every verse. Also for me it would be more difficult to quickly write references. It would unnecessarily clutter my texts.

1 Like

First, thank you @Joschua for your work on this—it is great!

@Otolith I forked @Joschua’s script to BibleGateway-to-Obsidian-Catholic to work with multiple translations of the Catholic Bible.

I pasted each translation into a separate folder. My Obsidian directory in iCloud looks like this:

└── Obsidian
    ├── Scripture (NABRE)
    ├── Scripture (NRSVCE)
    └── Scripture (RSVCE)

You can then reference multiple translations:

When I use a short filepath ([[Job-01#v21]]) rather than the full filepath ([[Scripture (NABRE)/22 - Job/Job-01#v21]]) it defaults to the NABRE translation, which I think may be because I copied it into my Obsidian vault first? If you know how Obsidian handles this please let me know!

I may decide to leave only one translation to make the links cleaner in my primary vault, and put the other translations in a separate vault.

My fork has a few small updates to the script to include the Deuterocanonical books, which @somnicide and @sirredcrosse may find to be helpful.

1 Like

Yeah after giving it a thought, I came to the same conclusion.

Thanks for including Catholic translations!

Doing some experiments in my vault, Obsidian appears to default to the first created folder when unspecified. That’s just some brief testing, I am not sure about the underlying principles though.

As an FYI to readers who haven’t had a look at your vault, it also includes a helpful overview on handling references to multiple verses.

1 Like

Now that I have the Bible in Obsidian, I made a quick script ( that grabs the daily readings from the USCCB website and returns them formatted with links for Obsidian, like this:

**Daily Readings**
*Memorial of St. Maximilian Kolbe, Priest and Martyr*
Reading I: [[Jos-24]]:14-29
Psalm: [[Ps-16]]:1-2a and 5, 7-8, 11
Gospel: [[Mt-19]]:13-15

Then I set up a Keyboard Maestro macro so by typing ;rd it runs the script and pastes the text into my daily note.


Tried to download a bible with the “BibleGateway-to-Obsidian Script”, however, when running the “bash” script it gave the next error:

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require': cannot load such file -- colorize (LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require’
from bg2md.rb:77:in `’

How to make work?

Thank you for providing this script. I’m new to scripting, but due to the comprehensive guide I´ve successfully managed to execute the script. Thank you so much.

I do have a question though: As per now I have to reference using this formula [[Mark 3#v3]]. What I would really like to be able to, is to have a more natural referencing formula, like so: [[Mark 3:3]]. Is this possible? For now, my Bible database is divided into chapters, and I have not yet split into verses. But I’m open to split into verses if needed. Do I have to modify the files through Atom by using RegEx for example? If so, what are the find and replace formulas?

As I mentioned: I’m a total newbie to scripting (and RegEx for that matter), so there’s probably a simple solution to this, but any help is appreciated.


Edit: Nevermind. Finally figured out Joe Buhlig’s script.

Is there any way for the script to pull the verse numbers and place them at the beginning of each verse instead of on a different line?

I’m having the same problem as you did. I’ve tried everything but the book folders come empty.
Would you mind sharing the NVI-PT translation so I can download it?

It may be easier to do this with find and replace using regular expressions than it would be to altar the script. For example . . .


###### (v[0-9]{1,})\n



NOTE: there is a space after the “1” in the replace string.

This just takes the verse number out of the level 6 heading and sticks it in front of the verse. You could also style it with <sup> or whatever you like in the same step if you want. To do that, you would just alter your replace string:

1 Like

One other question, if I want to add other books of scripture to the script how would I need to change the script to make it run? I tried just going in and adding the additional books and verses, but when I try to run the script it only inserts the name of the book, but nothing else. I would love to get it working because it works really well with the books that are included. Thanks!

Hi - there’s two places the books need to be added…

biblebooks has the full name of the books e.g. Exodus
biblebooksShort has the short name of the books i.e. the name used in the downloaded markdown files e.g. Exod

You need to add the books to both, and make sure you keep both lists of books in the same order. Hope that works for you! Glad you’re finding the script useful!

1 Like

This would be awesome! Are you saying to do this find and replace inside of Obsidian? I can’t find how to do that.

You would need to use a separate program to perform the function on your .md files. If you are using Windows, I recommend Notepad++. On a Mac, I think Atom is the popular choice. In either program, you should be able to open up the entire folder and do the find/replace on the whole thing at once. Before you do, it would be good to make a backup copy in case something goes wrong.

1 Like

I was able to use Atom to find all the verses, but it didn’t recognize the “\n” function and replaced the verses (I tested on one page and I have backups) with just "\1 " instead of creating a new line. But I was able to search the entire folder and find every verse with the “###### (v[0-9]{1,})” part, but it didn’t recognize the “\n”.

I’m going to give it a shot in another app.

I got it! I did it in BBEdit and it worked perfectly. I added a space between the ) and the \n and it worked. Thanks so much!

Oh! Now that you mention it, I remember that I noticed there was a space at the end of each verse number line in my .md files very early on, so I took it out. :sweat_smile: I probably could have saved you some trouble if I had remembered that was there originally.

At any rate, I’m happy you were able to get yours configured the way you like!

1 Like

Really grateful for all the work that’s gone into this.

I’m just getting my Obsidian vault set up for the first time. I’m weighing whether to structure the Bible inside my vault as chapters or verses. I suspect it’s a matter of personal preference, but I’m curious if anyone has found one more useful than the other.