JW Library Linker

by msakowski
5
4
3
2
1
Score: 56/100

Description

This Obsidian plugin enhances your note-taking experience by providing seamless integration with JW Library links and Bible references.

Reviews

No reviews yet.

Stats

34
stars
3,980
downloads
17
forks
148
days
1
days
6
days
291
total PRs
4
open PRs
40
closed PRs
247
merged PRs
43
total issues
1
open issues
42
closed issues
531
commits

Latest Version

6 days ago

Changelog

Minor Changes

  • #325 b752f68 Thanks @schoenwaldnils! - Add support for Hungarian (H) and Hungarian Sign Language (HDF), including Bible book names and UI translations. Hungarian Sign Language reuses the Hungarian book names.

  • #328 807c749 Thanks @Daruma198! - Add support for Indonesian (IN) and Indonesian Sign Language (INI), including Bible book names and UI transalations. Indonesian Sign Language reuses the Indonesian book names.

  • #332 d3c06d2 Thanks @kentgran! - Add support for Norwegian (N) and Norwegian Sign Language (NDF), including Bible book names and UI translations. Norwegian Sign Language reuses the Norwegian book names.

  • #336 7df6574 Thanks @msakowski! - Address Obsidian Community Scorecard findings: drop the desktop curl fallback for fetching Bible text (no more child_process), use setDestructive() instead of the deprecated setWarning(), avoid inline styles, and raise minAppVersion to 1.13.0. Tooling now uses eslint-plugin-obsidianmd, ESLint's defineConfig(), and nano-staged instead of lint-staged.

    Expose settings through the declarative API so their names and descriptions appear in settings search. Enforce zero warnings in TypeScript lint checks and staged-file checks.

Patch Changes

  • #316 6f82523 Thanks @schoenwaldnils! - Migrate the test runner from Jest to Vitest. This removes jest, jest-environment-jsdom, @swc/jest, and @swc/core from the dependency tree, which in turn drops transitive packages flagged by Snyk (@babel/core, [email protected], inflight). The BibleTextFetcher desktop curl fallback now loads child_process/util via lazy dynamic import() instead of runtime require() (behaviour unchanged — still desktop-only and lazily loaded). Test wall-clock time is unchanged (~3.6s for the full suite).

README file from

Github

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
N Norsk / Norwegian
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.

Complete references prefer exact book names and abbreviations. For example, Norwegian Fil 1:1 resolves to Philippians; suggestions still show books matching the typed prefix.

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:1–4: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

Requires Obsidian 1.13.0 or later. Settings are searchable by name and description in Obsidian's settings search.

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.