Obsidian.md plugin that allows you to link multiple bible verses easily

Overview

Obsidian Bible Linker

Plugin for easier linking of multiple bible verses in Obsdian.md note taking app.

Usage

  1. Use command "Add biblical link" or click the link icon in the left panel.
  2. Insert bible link, for example "Gen 1,1-3 or Gen 1.1". Note: Links across more chapters are not supported (yet?).
  3. Watch the magic.

Output format

Verses are not linked using ![[link]] syntax - instead text of given verses is copied. Linking is done using "invisible" links after the verses (those links are visible only in source mode).

Example output (input: Gen 1,1-3)

>[[Gen-01#v1|Gen 1,1-3]] In the beginning, God created the heavens and the earth. The earth was formless and empty. Darkness was on the surface of the deep and God's Spirit was hovering over the surface of the waters. God said, "Let there be light," and there was light. [[Gen-01#v1|]][[Gen-01#v2|]][[Gen-01#v3|]]

Pros of this approach

  • More verses can be displayed as one block of text, which is more visually pleasing than multiple link blocks after each other.
  • You can edit the text if you want (for example add some in-line notes, bold important part...)

Other output formats

Other output formats may be added later, but I don't have enough time to do it now. Feel free to create issue describing what output format would you like and why (or even better create PR).

Requirements

This plugin requires you to have bible in markdown in your vault, with similar structure to Obsidian bible study kit - that is:

  • 1 file = 1 chapter
  • All verses of given chapter are present
  • Verse is marked with heading (any level), verse text is on the next line after said heading

Example File

# Name of chapter (or some other text)

... 

# v1
1st verse text

###### 2
2nd verse text

### verse 3
3rd verse text

Link format

  • File names are deduced from the link you enter:
    • if your file is named "Gen 1", you will have to enter "Gen 1,1-4"
    • if your file is named "Genesis 1", you will have to enter "Genesis 1,1-4"
    • exception: if your file is named "Gen-01", you can type either "Gen-01,1-4" or "Gen 1,1-4"

Wrong verses are linked? Or linking doesn't work and you have files with right format?

  • Go to Plugin settings and try changing "Verse offset" accordingly.

Installing

Available through Obsidian Community plugins (Settings/Comumnity plugins)

Manual install

Copy over main.js, manifest.json to your vault VaultFolder/.obsidian/plugins/your-plugin-id/

Comments
  • Move verse link out of verse body

    Move verse link out of verse body

    Thank you so much for this plugin -- this is exactly what I looking for and am so glad I stumbled upon it!

    I would like to make a feature request:

    Can you add an option to move the verse link out of the verse body and give options for prefix?

    As an example, the current insert looks like this:

    Gen 1:1-2 1 In the beginning, God created the heavens and the earth. 2 The earth was without form and void, and darkness was over the face of the deep. And the Spirit of God was hovering over the face of the waters.

    I would like it do this:

    Gen 1:1-2

    1 In the beginning, God created the heavens and the earth. 2 The earth was without form and void, and darkness was over the face of the deep. And the Spirit of God was hovering over the face of the waters.

    Prior to this I would use 5th level header for my verse references and then manually type the ![[verse]] under it. I would like to replicate that look but using your plugin.

    I tried poking around the .js but I'm woefully underequipped

    enhancement 
    opened by anthonysciutto 7
  • Multiple Translations doesn't work as designed

    Multiple Translations doesn't work as designed

    My settings set two bibles in these folders:

    Bibel/GNT Bibel/NWT

    grafik

    For testing reasons the GNT files are duplicated from NWT.

    So in both bibles the the Gen 1:1 starts in this German text as:

    # 1Mo 1
    
    ### 1
    Am Anfang erschuf Gott Himmel und Erde.
    
    ### 2
    Die Erde nun war formlos und öde. Über dem tiefen Wasser war Dunkelheit und Gottes aktive Kraft bewegte sich über der Wasseroberfläche hin und her.
    

    The pathes are like this:

    C:\Users\Oliver\Documents\Lernen\obsidian\zettelkasten\private\80-Religion\Bibel\GNT
    C:\Users\Oliver\Documents\Lernen\obsidian\zettelkasten\private\80-Religion\Bibel\NWT
    

    I use the dialog as below:

    grafik

    I can click between the two translation but will always see the same link. What's wrong?

    (Using Windows 11 / Obsidian 1.1.9 / Bible Linker 1.4.3)

    opened by lexiconwriter 4
  • Suggestion: invisible links alias verse prefixes

    Suggestion: invisible links alias verse prefixes

    I like the invisible links - I wonder if a good option would be - instead of making them invisible (only seen in edit mode), we make the option for the {n} prefix to alias the wiki link to each verse

    See: https://www.dropbox.com/s/zuae40zqkt65iun/Screenshot%202022-08-18%20at%209.49.49%20am.png?dl=0

    opened by Oblique82 4
  • Request - Make References to Multiple Chapters Too (Not Only Verses)

    Request - Make References to Multiple Chapters Too (Not Only Verses)

    First of all, I love this plugin. It really helps when i want to input multiple versicles like Psalm 119:1-4. And it evens allows me to do it in the way i write in portuguese, Sl 119:1-4, and it returns:

    [[Sl 119#1]] [[Sl 119#2]] [[Sl 119#3]] [[Sl 119#4]]

    So i love it.

    I would love if it have a feature so i can also input "Sl 1-5" or "Sl 1-5:" to get:

    [[Sl 1]] [[Sl 2]] [[Sl 3]] [[Sl 4]] [[Sl 5]]

    Hope this can be done. Thanks!

    enhancement good first issue 
    opened by RodWarrior 4
  • Comma or full stop?

    Comma or full stop?

    Hi, Kuchejak.

    I would like to thank you for developing this wonderful plugin and I enjoy this so much and it makes my life much easier when I study the Bible. I wanted to ask about output when I copy verses.

    For example, when I pull Isa 9:6, the output is like this: [[Isa 9#v6|Isa 9.6]] contents

    but when I pull Isaiah 9:6-9, the output is as follows: [[Isa 9#v6|Isa 9,6-9]] contents

    As you might notice, some verses show [[Bookname Chapter#vVerse|Bookname Chapter.Verse]] whereas some show [[Bookname Chapter#vVerse|Bookname Chapter,Verse]].

    And it is quite random that I can't find the pattern. I wanted only a full stop(.) to come before Verse, not a comma.

    Would it be possible to do this by tweaking something?

    Many thanks

    opened by wpdlfjsejs 4
  • When a verse contains multiple lines, only the first line is copied but not the ones after

    When a verse contains multiple lines, only the first line is copied but not the ones after

    Not sure if I'm the only one having this issue, but when using the Copy Bible verses command for books or verses with line breaks for each verse (particularly, verses with poetic structure like in the Psalms), only the first line of the verse gets copied, and it proceeds to the next verse with the verse before that being incomplete. Here's an example:

    [[Ps. 23#1|Ps. 23,1-6]] The Lord is my shepherd, I shall not want; he makes me lie down in green pastures. he restores my soul. Even though I walk through the valley of the shadow of death, Thou preparest a table before me Surely goodness and mercy shall follow me [[Ps. 23#1|]][[Ps. 23#2|]][[Ps. 23#3|]][[Ps. 23#4|]][[Ps. 23#5|]][[Ps. 23#6|]]

    or

    [[Ps. 23#1|Ps. 23,1-6]] The Lord is my shepherd, I shall not want; he makes me lie down in green pastures. he restores my soul. Even though I walk through the valley of the shadow of death, Thou preparest a table before me Surely goodness and mercy shall follow me[[Ps. 23#1|]][[Ps. 23#2|]][[Ps. 23#3|]][[Ps. 23#4|]][[Ps. 23#5|]][[Ps. 23#6|]]

    I'm copying all six verses of Psalm 23, but it's missing a lot of parts: Psalm 23:1 only contains one line, so it's complete; but Psalm 23:2 has two lines, but only the first lines gets copied and then the plugin copies the 3rd verse while ignoring the second line of the 2nd verse.

    Am I missing something from the settings that can fix this issue, or is this an actual bug? Appreciate your response and everything you're already doing with this plugin!

    enhancement 
    opened by AngelusDomini 3
  • Allow non-verse headings in between verses

    Allow non-verse headings in between verses

    Thanks a lot for your efforts to develop this plugin, I really like it!

    Two things didn't work for my markdown bible when trying to "Copy Bible verses". With this pull request I'd like to fix these.

    1. Support having headings (of higher level) in between verses

    ###### 1
    1st verse text
    
    ## Some helpful heading that is not a verse number
    
    ###### 2
    2nd verse text
    
    ###### 3
    3rd verse text
    

    => Support added by new setting to specify which heading level to search for when copying verses.

    2. Support empty line between verse heading and verse text

    Because I format my markdown to have an empty line underneath each heading:

    ###### 1
    
    1st verse text
    
    ###### 2
    
    2st verse text
    

    If these cases seem to specific to you, feel free to say so or only use part of it :)

    opened by Castlepool 3
  • Alternative format for the chapter file and the internal link.

    Alternative format for the chapter file and the internal link.

    Thank you so, so much for making this plugin! I have been copy, paste and clean the verses manually for a long time. Thank you for your excellent work for the glory of God!

    I would like to suggest, if possible, supports for more formats of the chapter files and the internal links. For example:

    • File name: Gen1 (without space)
    • Verse range: 1-4
    • Verse number: 1, 2, 3, 4
    • Internal link: [[Gen1#1|Gen1:1]][[Gen1#4|-4]] OR [[Gen1#1|Gen 1:1]][[Gen1#4|-4]] (Then both the beginning verse and the ending verse can be clicked.) (If only 1 verse is quoted, [[Gen1#1|Gen1:1]] OR [[Gen1#1|Gen 1:1]])
    • Starting symbol: unordered list "-" OR blockquote ">"
    opened by An-qi-Zhang 3
  • "Create Obsidian Links to Bible Verses" does not like to my verses accurately

    When I use the Copy Bible Verses action, it accommodates my file formats for the individual verses by adding the - in the file tile and including the v prefix for verses.

    [[Gn-01#v1|Gn 1:1-2]] 
    In the beginning God created the heavens and the earth. 
    The earth was without form and void, and darkness was upon the face of the deep; and the Spirit of God was moving over the face of the waters. 
    [[Gn-01#v1|]][[Gn-01#v2|]]
    

    However, when I use the Create Obsidian Links to Bible Verses action, it does not:

    [[Gn 1#1]]
    [[Gn 1#2]]
    

    You'll notice the difference between [[Gn-01#v1|]] and [[Gn 1#1]].

    • It doesn't add the - in between the books and the chapter
    • It doesn't add the v as a prefix for the verse (this one I can fix by using #v as my Link Separator, but it's weird that it behaves differently than the invisible link for the Copy Bible Verses action)
    enhancement wontfix 
    opened by cjolson 2
  • Problem with Plug-In

    Problem with Plug-In

    Hello @kuchejak , first of all, thank you for providing this plug-in. I looked for this functionality.

    Sadly, it does not work. My Questions: Is there a specific folder structure required? I use the Obsidian bible study kit, but changed the folder structure.

    Maybe I use the wrong Input. I write: ![[Matt-01#v1|Matt-01,1-3]], but there is only the first Vers shown.

    Could you support?

    Kind regards Mick

    question 
    opened by MickToews 2
  • Correct shifted verses. Inherit separators.

    Correct shifted verses. Inherit separators.

    Hi, Kuchejak! Sorry to bother you again.

    I found a few places available for perfection. I tried to modify the code to relieve your workload. However, I don't know how to use typescript well yet. I attached the main.js code as below. I am sorry for my inability to do a pull request.

    Example:

    Input

    Gen1:1

    Output

    [[Gen1#2|Gen1,1-1]] but actually Verse 2! [[Gen1#2|]]

    Potential improvements

    • The array variable headings may start from 0, instead of 1, like Python. Whenever there is headings[verseNumber/beginVerse/endVerse], you might want to -1 for the indexing.
    • We can define bookChapter - majorSeparator - beginVerse - minorSeparator - endVerse. It would be great to pass down the separators in the input to the output, such as ":".
    • If there is only 1 verse quoted, we may want "Gen1,1" instead of "Gen1,1-1".
    • I don't see the necessity to append invisible links like [[Gen1#2|]] at the end, because Obsidian does not have backlink tracking for the headings (only the whole file), as I know of. If you see the value of keeping it, could you make it a toggle setting?

    Attempts to fix

    link-regexes.ts

    add parentheses to retrieve the major and minor separators

    var oneVerseRegEx = new RegExp(/([a-zA-Z0-9\s.ěščřžýáíé]+)([,#.:;])(\d+)$/); var multipleVersesRegEx = new RegExp( /([a-zA-Z0-9\s.ěščřžýáíé]+)([,#.:;])(\d+)\s*([-.=])\s*(\d+)$/ );

    convert-link.ts > convertLinkToQuote

    catch up the major and minor separators

    let majorSeparator; let minorSeparator;

    case oneVerseRegEx.test(userInput): { const [_, matchedChapter, matchedMajorSeparator, matchedVerse] = userInput.match(oneVerseRegEx); bookAndChapter = matchedChapter; majorSeparator = matchedMajorSeparator; beginVerse = Number(matchedVerse); endVerse = Number(matchedVerse); break; } case multipleVersesRegEx.test(userInput): { const [ _, matchedChapter, matchedMajorSeparator, matchedBeginVerse, matchedMinorSeparator, matchedEndVerse, ] = userInput.match(multipleVersesRegEx); bookAndChapter = matchedChapter; majorSeparator = matchedMajorSeparator; beginVerse = Number(matchedBeginVerse); minorSeparator = matchedMinorSeparator; endVerse = Number(matchedEndVerse); break; }

    if (tFile) { return yield createLinkOutput( ... majorSeparator, minorSeparator, ... );

    convert-link.ts > getVerseText

    get the correct range of verses

    const headingLine = headings[verseNumber - 1].position.start.line;

    convert-link.ts > createLinkOutput

    Delete or toggle the invisible links

    for (let i = beginVerse; i <= endVerse; i++) { res += [[${fileName}#${headings[i].heading}|]]; }

    Achieve desired formats

    ... let res = settings.prefix; if (beginVerse == endVerse) { res += [[${fileName}#${ headings[beginVerse - 1].heading }|${fileName}${majorSeparator}${beginVerse}]]; } else { if (settings.linkEndVerse) { res += [[${fileName}#${ headings[beginVerse - 1].heading }|${fileName}${majorSeparator}${beginVerse}]]; res += [[${fileName}#${ headings[endVerse - 1].heading }|${minorSeparator}${endVerse}]]; } else { res += [[${fileName}#${ headings[beginVerse - 1].heading }|${fileName}${majorSeparator}${beginVerse}${minorSeparator}${endVerse}]]; } } ...

    What this achieves is consistent with the input-output pairs below:

    A tentative test

    One verse

    Gen1,1 [[Gen1#1|Gen1,1]] In the beginning God created the heavens and the earth. Gen1:1 [[Gen1#1|Gen1:1]] In the beginning God created the heavens and the earth.

    Multiple verses + With a link to the last verse

    Gen1,1-3

    [[Gen1#1|Gen1,1]][[Gen1#3|-3]] In the beginning God created the heavens and the earth. Now the earth was formless and empty, darkness was over the surface of the deep, and the Spirit of God was hovering over the waters. And God said, "Let there be light," and there was light.

    Gen1:1=3

    [[Gen1#1|Gen1:1]][[Gen1#3|=3]] In the beginning God created the heavens and the earth. Now the earth was formless and empty, darkness was over the surface of the deep, and the Spirit of God was hovering over the waters. And God said, "Let there be light," and there was light.

    Multiple verses + Without a link to the last verse

    Gen1,1-3

    [[Gen1#1|Gen1,1-3]] In the beginning God created the heavens and the earth. Now the earth was formless and empty, darkness was over the surface of the deep, and the Spirit of God was hovering over the waters. And God said, "Let there be light," and there was light.

    Gen1:1=3

    [[Gen1#1|Gen1:1=3]] In the beginning God created the heavens and the earth. Now the earth was formless and empty, darkness was over the surface of the deep, and the Spirit of God was hovering over the waters. And God said, "Let there be light," and there was light.

    Thank you!

    opened by An-qi-Zhang 2
  • [Feature/Enhancement Requests] 1: Copy Select Verses and 2: Toggle for Copy and Link Command

    [Feature/Enhancement Requests] 1: Copy Select Verses and 2: Toggle for Copy and Link Command

    Hello Kuchejak,

    Thank you so much for the work you have done on this tool. It has been such a blessing to me (and I'm sure many others)!

    • It would be very nice if under the "Copy and Link" command you could request select verses like you can in popular citation.

    For example: Gen 1:1,3 would look something like [[Gen-01#v1|Gen 1:1,]][[Gen-01#v3|3]] In the beginning, God created the heavens and the earth... And God said, “Let there be light,” and there was light. [[Gen-01#v1|]][[Gen-01#v3|]]


    • I'd greatly appreciate it if you could also place a toggle box setting in the "Copy and Link" command console to switch it to link only.

    Since you already have the "Link Bible verses" command I understand if this is too much work for too little payoff, but it would be nice to utilize the higher level of functionality built into your "Copy and Link" command that allows for aliases and the like. I know this is similar to issue #19 but I'm hoping toggling the "Copy" functionality already built in will prove easier to implement than changing the functionality of the "Link" command and not negatively impact those who can only use the "Link" command.

    Peace be with you.

    enhancement help wanted 
    opened by SavageManChild 2
  • [Feature/Enhancement Request] Full Book names in displayed links

    [Feature/Enhancement Request] Full Book names in displayed links

    Thank you so much for this awesome plugin. It makes my sermon writing that much easier instead of having to copy from a different Bible app and paste, then fix the formatting.

    One hopefully small thing I would like is to present the references (Book, chapter, verse(s)) with full book names. The actual link of course has to match whatever the file names are, which are usually a shortened form, especially if folks are like me and just using the BibleGateway-to-Obsidian script to download their Bibles. So basically, the link currently looks like [[Gen 1#1|Gen 1.1]], it would be nice if it was automatically presented as [[Gen1#1|Genesis 1.1]]. Currently it's not that difficult to do a Find & Replace, but I figure a simple script would hopefully be a quick fix. Dunno how you would account for different short forms though. Looks like with the above script at least the folder names are the full name, so maybe look at the parent folder for the link alias?

    I would love to contribute such a seemingly small thing myself, but alas, my coding skills are non-existent. Maybe I'll take this little thing as a learning opportunity. Who knows?

    enhancement 
    opened by abbasou 1
  • Expanded copy syntax - linked chapters and full chapters

    Expanded copy syntax - linked chapters and full chapters

    Firstly, let me say thankyou for everything you are doing for this community!

    I would really like to suggest expansions to the already great workflow. Both of these relate to the 'copy verses' command

    I would like to be able to extend the block of text copied from an arbitrary verse to the end of the chapter, or simply copy a full chapter if possible. I would also like to quote blocks of text across. multiple chapters if possible please.

    eg If I want to quote Genesis 1 verse 3 to (end of chapter) eg I could write "Genesis 1:3-end"

    for a full chapter maybe Genesis 1:full

    ...where "end" and "full" (or something similar) become trigger words for this process

    I would also like to be able to quote a block across multiple chapters eg Genesis 1-2:7 (all of genesis 1 until genesis 2:7)

    enhancement help wanted 
    opened by Oblique82 3
Releases(1.4.3)
Owner
null
A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the link 🔗 or via mail ✉️ which remains active for 24hours 🕙.

eShare | File Sharing App A file sharing service, where you can upload files and provide a download link for anyone on the internet by sharing the lin

Akhil Bhalerao 7 Nov 20, 2022
Welcome contributers❤️🎉. Just add your name, Github profile link and Linkedin link🔗 Look at Readme for more.📖

Hello Welcome Developers! Step - 1 Create a GitHub account, if you don't already have one. Step - 2 Register for Hacktoberfest: Navigate to the Hackto

Prineth Fernando 28 Oct 31, 2022
Hexo-backlink - This plugin is for transfer Obsidian-type backlink to standard hexo in-site post link.

Hexo-Backlink A plugin to convert backlink in .md file to in-site link. Install npm install hexo-backlink configuration Add backlink:true in _config.y

null 8 Sep 27, 2022
An Obsidian plugin that lets you browse the web within Obsidian.

Obsidian Web Browser An Obsidian plugin that allows you to browse the web within Obsidian using v1.0 tabs. The core functionality of the plugin, rende

Dion Tryban 102 Dec 28, 2022
A plugin for the Obsidian markdown note application, adding functionality to render markdown documents with multiple columns of text.

Multi-Column Markdown Take your boring markdown document and add some columns to it! With Multi Column Markdown rather than limiting your document lay

Cameron Robinson 91 Jan 2, 2023
Cindy Dorantes 12 Oct 18, 2022
An Obsidian plugin to paste Excel tables as Markdown tables in Obsidian editor.

Obsidian Excel to Markdown Table An Obsidian plugin to paste Excel tables as Markdown tables in Obsidian editor. Demo You can paste the copied Excel d

Ganessh Kumar 108 Jan 4, 2023
This is a plugin for Obsidian (https://obsidian.md). Can open document with `.html` and `.htm` file extensions.

Obsidian HTML reader Plugin This is a plugin for Obsidian (https://obsidian.md). Can open document with .html and .htm file extensions. Obsidian HTML

null 37 Dec 27, 2022
This plugin allows you to track the progress of Atlassian Jira issues from your Obsidian notes.

Obsidian jira-issue This plugin allows you to track the progress of Atlassian Jira issues from your Obsidian notes. Usage Configuration Use the plugin

Marco Lucarella 74 Dec 30, 2022
A simple editor allows you to easily add and customize all the sections you need for your profile's readme.

Create your Profile README using the best Templates tomper-readmify.herokuapp.com This is the frontend + backend of TomperReadmify build with MERN sta

Varun Tiwari 15 Jan 2, 2023
True P2P concept for your p2p powered website/app/client. MSC/MEP (Multiple Strategy Concept/Multiple Entry Points)

TRUE P2P CONCEPT - Lets redecentralize the web This repo is just conceptual. Active development of the endproduct (TRUE P2P) happens here https://gith

Bo 6 Mar 29, 2022
⚡🚀 Call multiple view functions, from multiple Smart Contracts, in a single RPC query!

ethers-multicall ⚡ ?? Call multiple view functions, from multiple Smart Contracts, in a single RPC query! Querying an RPC endpoint can be very costly

Morpho Labs 20 Dec 30, 2022
A Tailwind plugin that allows to create multiple groups utilities such as group-card or group-1 and works with Tailwind 3 features and all variations.

Tailwind Labeled Groups A plugin that allows to create multiple groups utilities such as group-card or group-1 and works with Tailwind 3 features and

Max 18 Nov 21, 2022
A Jquery plugin that allows user to enter multiple emails using one input field

multi-emails A Jquery plugin that allows user to enter multiple emails using one input field Usage $("...").multiEmails() Options color textColor font

null 1 Aug 26, 2022
Tool made to easily merge multiple GTA 5 vehicle meta files.

mmVehiclesMetaMerger Tool made to easily merge multiple GTA5 vehicle meta files. Showcase Go to Youtube video. Download Click here to go to the releas

Mateusz Mleczek 11 Jan 2, 2023
Obsidian-dataview-table-filter-menu - Dynamically created filter menu for dataview tables in obsidian

Dataview table Filter Menu for Obsidian Dynamically created filter menu for data

shiro 17 Sep 24, 2022
Obsidian-Snippet-collection - A collection of snippet to customize obsidian

This repo is a collection of CSS snippets for Obsidian.md. To install them on PC

Mara 110 Dec 22, 2022
Obsidian Web: Connect your browser with your Obsidian notes

Obsidian Web: Connect your browser with your Obsidian notes This is an unofficial Chrome extension for Obsidian that lets you send content from the we

Adam Coddington 97 Jan 3, 2023
⚡Chrome extension allows you to create lists of Google and Github dork to open multiple tabs with one click, import "scope/out of scope" from #HackerOne #Bugcrowd #Intigriti ...

FastDork v0.1 This chrome extension allows you to create lists of Google and Github dork to open multiple tabs with one click, import "scope/out of sc

skvndr 74 Dec 31, 2022