No description
Find a file
Martin Sakowski f5354acbe3
Merge pull request #316 from msakowski/chore/migrate-jest-to-vitest
build: migrate test runner from Jest to Vitest
2026-07-03 08:35:17 +02:00
.changeset build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
.claude chore: add remark-based markdown linting 2026-05-23 00:14:55 +02:00
.github build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
.vscode chore: add remark-based markdown linting 2026-05-23 00:14:55 +02:00
graphify-out add graphify skill and output 2026-04-26 21:31:29 +02:00
locale Merge branch 'main' into feat/add-language-bemba 2026-05-22 12:47:36 +02:00
scripts chore: skip pre-push tests on branch-deletion pushes 2026-06-04 13:34:01 +02:00
src build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
.editorconfig Move eslint config, edit editorconfig and prettierconfig. Lint all the files 2025-02-17 23:32:50 +01:00
.gitignore refactor: add getLocaleFromLanguage/getLanguageFromLocale utils and derive types from consts 2026-04-26 20:32:48 +02:00
.graphifyignore add graphify skill and output 2026-04-26 21:31:29 +02:00
.npmrc fix npm ci 2025-02-19 15:35:55 +01:00
.nvmrc chore: upgrade to Node 24 and modernize CI toolchain 2026-05-16 14:26:31 +02:00
.prettierignore Install eslint, use prettier to lock linting and code styling 2025-02-17 14:29:12 +01:00
.prettierrc Merge branch 'main' into feat/linting 2025-02-17 23:38:14 +01:00
.remarkignore chore: add remark-based markdown linting 2026-05-23 00:14:55 +02:00
.remarkrc.json chore: add remark-based markdown linting 2026-05-23 00:14:55 +02:00
AGENTS.md chore: add remark-based markdown linting 2026-05-23 00:14:55 +02:00
CHANGELOG.md Version Packages 2026-06-04 18:18:25 +00:00
CLAUDE.md build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
CONTRIBUTING.md build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
DEVELOPMENT.md build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
esbuild-yaml-plugin.mjs fix: resolve Obsidian plugin scanner warnings 2026-05-15 14:19:44 +02:00
esbuild.config.mjs fix: resolve Obsidian plugin scanner warnings 2026-05-15 14:19:44 +02:00
eslint.config.ts edit CLAUDE.md 2026-05-21 01:10:06 +02:00
LICENSE Initial commit 2025-02-05 23:30:25 +01:00
LOCALIZATION.md chore: add remark-based markdown linting 2026-05-23 00:14:55 +02:00
manifest.json Version Packages 2026-06-04 18:18:25 +00:00
package.json build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
pnpm-lock.yaml build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
pnpm-workspace.yaml fix missing build scripts 2026-05-17 02:16:28 +02:00
README.md chore: add remark-based markdown linting 2026-05-23 00:14:55 +02:00
styles.css refactor: split settings UI into per-section modules 2026-05-18 02:33:59 +02:00
tsconfig.json build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00
version-bump.mjs bundle all locales into main.js. have all the needed files in root 2026-01-01 21:45:08 +01:00
versions.json Version Packages 2026-06-04 18:18:25 +00:00
vitest.config.ts build: migrate test runner from Jest to Vitest 2026-07-02 22:02:21 +02:00

JW Library Linker for Obsidian

Instantly create, convert, and enrich Bible references with direct links to JW Library. Type a reference, get a clickable link — it's that simple.

Supported Languages

Code Language
E English / English
S español / Spanish
TPO português / Portuguese (Portugal)
F français / French
I Italiano / Italian
X Deutsch / German
J 日本語 / Japanese
TG Tagalog / Tagalog
KO 한국어 / Korean
U русский / Russian
VT Tiếng Việt / Vietnamese

… and many more. See LOCALIZATION.md for the full list and instructions on adding a new language.

Features

Type a Bible reference and the plugin creates a markdown link that opens directly in JW Library.

Command mode — type /b followed by a reference:

/b mat 24:14     →  [Matthew 24:14](jwlibrary:///finder?bible=40024014)
/b joh 3:16      →  [John 3:16](jwlibrary:///finder?bible=43003016)

Silent mode — just type the reference directly. Once a valid reference is detected, the suggestion popup appears automatically.

Supported reference formats:

Format Example Result
Single verse /b mat 24:14 Matthew 24:14
Verse range /b rom 8:28-30 Romans 8:28-30
Multiple verses /b joh 1:1,2,4 John 1:1-2, 4
Complex ranges /b joh 1:1,2,4,6,7-8,12-14 John 1:1-2, 4, 6-8, 12-14
Multi-chapter /b mat 3:1-4:11 Matthew 3:14:11
Single-chapter books /b jude 3 Jude 3

2. Insert Bible Quotes

Fetch actual Bible text from jw.org and insert it directly into your notes.

Three ways to insert quotes:

  1. Command palette → "Insert Bible quotes for JW Library links" — processes selected text or the entire note
  2. Command palette → "Insert Bible quote at cursor" — inserts a quote for the link at your cursor
  3. Right-click on a JW Library link → "Insert Bible quote"

Customizable quote templates:

<!-- Link + quote -->

[Matthew 6:33](jwlibrary:///finder?bible=40006033)

> But keep on seeking first the Kingdom...

<!-- Foldable callout (collapsed by default) -->

> [!quote]- [Matthew 6:33](jwlibrary:///finder?bible=40006033)
> But keep on seeking first the Kingdom...

<!-- Expanded callout -->

> [!quote] [Matthew 6:33](jwlibrary:///finder?bible=40006033)
> But keep on seeking first the Kingdom...

You can also create your own template using the variables {bibleRef}, {bibleRefLinked}, and {quote}.

Convert jwpub:// links, publication links, and jw.org web links into jwlibrary:// links that open directly in JW Library.

  1. Select text containing links
  2. Open the command palette (Ctrl/Cmd + P)
  3. Run "Convert links in selection to JW Library links"
  4. Choose what to convert:
    • All — Bible verses, publications, and web links
    • Bible — Bible verse links only
    • Publication — Publication links only

Have plain-text Bible references in your notes? Convert them all at once.

  1. Select text containing references like "John 3:16" or "Romans 8:28"
  2. Open the command palette (Ctrl/Cmd + P)
  3. Run "Link unlinked Bible references"

The plugin detects valid references and converts them to JW Library links.

Settings

Language

Choose the language for Bible book names and link generation. The plugin UI language follows your Obsidian language setting automatically.

Open Automatically

Moves the "Create link and open" option to the top of the suggestion list, so pressing Enter opens the link in JW Library immediately.

Customize how links appear in your notes:

  • Book name length — short (Mat), medium (Matt.), or long (Matthew)
  • Prefix/suffix — add text before or after the link (e.g., parentheses)
  • Font style — normal, italic, or bold
  • Presets — quickly apply common styles like (Mat 3:16) or 📖 Mat 3:16

Omits the language parameter from generated links. Links will open in JW Library's default language instead.

When converting existing links, choose whether to preserve the original link text or reformat it using your plugin settings.

Re-process already converted jwlibrary:// links with your current formatting settings.

Bible Quote Template

Customize the format of inserted Bible quotes with a live preview. Choose from presets or write your own template.

Commands

Command Description
Link unlinked Bible references Convert plain text references in selection to links
Convert links in selection to JW Library links Convert jwpub/web links to JW Library format
Insert Bible quotes for JW Library links Fetch and insert Bible text for links in selection or note
Insert Bible quote at cursor Insert Bible text for the link at cursor position

Known Issues

Plugin Issue Fix
Iconize Clock emoji shows when typing : Change Iconize trigger from : to ::
Various Complements Suggestions get overwritten No fix available

Contributing

If you have ideas or want to help improve this plugin, take a look at our contribution guidelines.

Support

If you find this plugin useful, consider buying me a coffee.