Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Scripture Index

Joseph LouthanJoseph Louthan24 downloads

Builds a Scripture index page, with plain Markdown links for mdBook, of every Bible reference in a folder.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

Builds a Scripture index page for a book you write in Obsidian and publish with mdBook. The plugin finds every Bible reference in your book folder and writes one page that lists each passage in canonical order, with links back to the pages that cite it.

## Genesis

- **Genesis 1** — [Our Forever Home](genesis/genesis01-6-13.md) · [The Fall of Mankind](confession/06-1-fall.md)
- **Genesis 1:1** — [The Creator of Heaven and Earth](creed/creator.md)
- **Genesis 22:1–14** — [The Gospel Sacrifice](genesis/genesis22.md)

The page uses plain Markdown links, not wikilinks, so mdBook (or any static site generator) can publish it as-is. It has no front matter.

See it live: theologic.us Scripture Index.

What it recognizes

  • Full names and common abbreviations: Romans 8:28, Rom. 8:28, Mt 5:3, Jn. 3:16, Ps 23:1
  • Numbered books: 1 John, 1John, I John, 1st John, First John
  • Ranges, including ranges that cross chapters: Genesis 22:1-14, Genesis 1:1–2:3
  • Lists: John 3:16-18, 22 and Romans 8:28; 9:1, 5
  • Whole chapters: Psalm 23, Genesis 1–11. These count only with the full book name, and you can turn them off.
  • Single-chapter books: Jude 3 is indexed as Jude 1:3.
  • . as the chapter–verse separator (Matthew 5.3) and verse parts (Romans 3:23a)

It skips code, HTML tags and comments, URLs, and link targets.

Each link's text is the page's first # heading. If a page has none (for example, its title is styled HTML), the link uses the page's title from SUMMARY.md, then the filename. It also discards references that don't exist, such as Genesis 51:1.

Settings

Setting Default Notes
Include whole chapters on Off keeps only references with a verse.
When to update Once a day, when idle Rebuilds at most once every 24 hours, after the book folder has been quiet for the idle time. Other options: Whenever idle and Manual only.
Idle minutes 5 How long to wait after the last edit before writing.
Book folder src Scanned recursively. SUMMARY.md is read from here.
Index page src/scripture-index.md The generated page. Anything you edit in it is overwritten.
Page title Scripture Index
Header image (empty) Optional src for an <img class="intro-right"> line above the title.
Only pages listed in SUMMARY.md on mdBook builds only the pages listed in SUMMARY.md, so links to any other page would be broken.
Exclude CHANGELOG.md Comma-separated paths inside the book folder.
Coverage report (empty = off) Vault path for a coverage note (see below). Keep it outside the book folder to keep it private.
Coverage on index page off Also append the coverage section to the published index page, with a Coverage link under the quick links at the top.

The command Rebuild Scripture index now rebuilds the page immediately.

Coverage report

The coverage report shows which parts of the Bible your book cites and which it doesn't, which helps when planning what to write next. For each book it shows a coverage bar, the number of chapters cited, the number of pages citing it, and the chapters not yet cited, for example Exodus | ▓▓▓▓▓▓░░░░ | 22/40 | 51 | 1–2, 4–5, 9–11, …. It also lists the books that are never cited and the 10 least-covered books.

A chapter counts as cited if any reference touches it, even a single verse. Whole-chapter references count toward coverage even when Include whole chapters is off. The command Open Scripture coverage report opens the note.

The plugin rewrites the index page only when its content changes. If your vault is synced or auto-committed to git, an unchanged index doesn't create a new commit.

Getting started

  1. Install Scripture Index from Community plugins and enable it.
  2. Set Book folder to the folder that holds your mdBook SUMMARY.md. Set Index page to a path inside it.
  3. Run Rebuild Scripture index now.
  4. Add the page to SUMMARY.md once, for example: - [Scripture Index](scripture-index.md).

Manual install

Download main.js and manifest.json from the latest release. Put them in <vault>/.obsidian/plugins/bible-ref-index/, then enable the plugin.

Limitations

  • Only English book names are recognized, and only the 66-book Protestant canon.
  • Abbreviations must include a verse. Is 3 and Am 5 look too much like ordinary words, so they're skipped. Is 3:16 and Am 5:24 are indexed.
  • The index is a single page. A large book can produce a big page: about 5,000 passages from 1,100 pages comes to roughly 1 MB of Markdown.

Development

npm install
npm test          # parser tests (Node 22.6+)
npm run build     # type-check and bundle main.js
npm run preview -- /path/to/book/src   # dry run; writes /tmp/scripture-index.md
VAULT=/path/to/vault npm run install-plugin

To release, bump version in manifest.json and package.json and add it to versions.json. Commit, then push a tag that matches the version exactly, with no v prefix (git tag 0.2.0 && git push origin 0.2.0). GitHub Actions builds the plugin and creates a draft release. Publish the draft.

Changelog

See CHANGELOG.md.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Build a single Markdown Scripture index for an Obsidian book published with mdBook by scanning the book folder for Bible references and listing each passage in canonical order with links back to the pages that cite it. Recognize common abbreviations, numbered books, ranges, lists, whole-chapter and single-chapter citations and verse parts, while skipping code, HTML, URLs and invalid references; output plain Markdown links ready for static-site publishing.
PublishingSearchLinks
Details
Current version
0.3.0
Last updated
3 days ago
Created
3 days ago
Updates
3 releases
Downloads
24
Compatible with
Obsidian 1.5.7+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Joseph LouthanJoseph Louthanjoelouthan
theologic.us/
GitHubjoelouthan
GitHubjoelouthan
joelouthan
XJosephLouthan
  1. Community
  2. Plugins
  3. Publishing
  4. Scripture Index

Related plugins

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Another Quick Switcher

Another choice of Quick switcher.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

ExcaliBrain

An interactive, structured mind-map of your Obsidian vault.

Quick Switcher++

Enhanced Quick Switcher, search open panels, and symbols.

Advanced URI

Control everything with URI.

Breadcrumbs

Visualise the hierarchy of your vault using a breadcrumb trail or matrix view.

Tag Wrangler

Rename, merge, toggle, and search tags from the tag pane.

Share Note

Instantly share/publish a note, with the full theme and content exactly like you see in Obsidian. Data is shared encrypted by default, and only you and the person you send it to have the key.

Omnisearch

Intelligent search for your notes, PDFs, and OCR for images.