Bible Search

unlisted

by Beomsu Koh

Search Korean/English Bible verses and insert with configurable template format.

Updated 5mo agoMIT
View on GitHub

Bible Search for Obsidian

Search Korean and English Bible verses and insert them directly into your notes with a configurable template format.

This repo is private due to copyright concerns with Bible text data. It is NOT published to the Obsidian community plugin directory.

Features

  • Verse search modal -- search by book, chapter, and verse range in Korean or English
  • Dual-language output -- insert Korean and English translations side by side
  • Configurable templates -- customize the output format using template variables ({bookKo}, {bookEn}, {chapter}, {range}, {versesKo}, {versesEn})
  • Multiple Bible versions -- supports Korean versions (GAE, etc.) and English versions (ESV, etc.)
  • Verse caching -- fetched verses are cached in memory to reduce repeated network requests
  • Verse numbers -- optionally include verse numbers in the output

Installation

Since the repo is private, BRAT cannot fetch releases without a PAT. Use one of:

Direct Copy (Recommended)

Build locally and copy to your vault:

pnpm build
cp main.js manifest.json "$OBSIDIAN_VAULT_PATH/.obsidian/plugins/obsidian-bible-search/"

Reload Obsidian or run obsidian plugin:reload id=obsidian-bible-search.

GitHub Release Download

Download from the latest GitHub release via gh:

gh release download --repo GoBeromsu/obsidian-bible-search \
  --dir "$OBSIDIAN_VAULT_PATH/.obsidian/plugins/obsidian-bible-search/" \
  --pattern 'main.js' --pattern 'manifest.json' --clobber

Usage

  1. Open a note and place your cursor where you want to insert a verse
  2. Open the Command Palette (Cmd/Ctrl + P) and run Bible Search: Search verse
  3. Type a book name, chapter, and verse range (e.g. "John 3:16" or "요한복음 3:16-18")
  4. Select the verse and it will be inserted at the cursor using your configured template

Commands

CommandDescription
Bible Search: Search verseOpen the verse search modal and insert the selected verse

Settings

SettingDefaultDescription
Korean versionGAEDefault Korean Bible translation
English versionESVDefault English Bible translation
Format templateblockquoteTemplate for inserted verses (supports {bookKo}, {bookEn}, {chapter}, {range}, {versesKo}, {versesEn})
Callout typebibleCallout type when using callout format
Show verse numberstrueInclude verse numbers in the output
Cache enabledtrueCache fetched verses in memory
Cache TTL30 minHow long cached verses are kept

Tech Stack

CategoryTechnology
PlatformObsidian Plugin API
LanguageTypeScript 5
Bundleresbuild
Data sourcesBolls API, BSKorea scraper
TestingVitest
LintingESLint + Husky + lint-staged

Pilot Docs

This repo is the first pilot for the workspace's minimal shared-contract model.

  • docs/Architecture.md — repo-specific architecture and boundary map
  • docs/Harness.md — verification and evidence expectations
  • docs/Pilot-Alignment.md — what stays shared vs local under the pilot
  • docs/runbooks/runtime-smoke.md — concrete local smoke proof steps
  • docs/contracts/source-adapter-contract.md — local adapter invariants and failure buckets

Project Structure

obsidian-bible-search/
├── src/
│   ├── main.ts              # Composition root
│   ├── domain/              # Settings, book map, verse cache
│   ├── ui/                  # Modal, settings tab, source adapters
│   ├── utils/               # Parsing, formatting, resilient fetch
│   ├── types/               # Pure type definitions
│   └── (no shared impl dir) # Pilot keeps implementation local by default
├── docs/                    # Repo-local architecture / harness / pilot prep docs
├── scripts/                 # dev.mjs, version.mjs, release.mjs
├── boiler.config.mjs        # Per-repo config
└── manifest.json            # Obsidian plugin manifest

Development

pnpm install
pnpm dev          # vault selection + esbuild watch + hot reload
pnpm build        # tsc type-check + production build
pnpm test         # Vitest unit tests
pnpm lint         # ESLint
pnpm run ci       # build + lint + test

Notes for the Workspace Pilot

  • open-connections is reference-only for this pilot.
  • Shared family surfaces are docs, contracts, and harness expectations.
  • Implementation code and deployment-line behavior remain repo-local by default.
  • Former legacy shared helpers have been localized in this repo.

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.