JW Library Linker

by Martin Sakowski
5
4
3
2
1
Score: 54/100

Description

The JW Library Linker plugin streamlines the process of working with JW Library content by converting jwpub:// links to the jwlibrary:// format, making them compatible with the JW Library app. It offers bulk conversion options for all links, Bible verses, or publication links in a note. Additionally, it includes a /b command that helps insert Bible references quickly, with options to just create the link or create and open it directly in JW Library. This is particularly useful for users who frequently reference scriptures or JW publications in their notes and want a more efficient linking experience.

Reviews

No reviews yet.

Stats

27
stars
1,763
downloads
9
forks
376
days
2
days
9
days
227
total PRs
4
open PRs
23
closed PRs
200
merged PRs
41
total issues
2
open issues
39
closed issues
0
commits

Latest Version

9 days ago

Changelog

Minor Changes

  • #270 2a24f6e Thanks @msakowski! - Add Danish language support (JW Library code D). Includes official Danish Bible book names, abbreviations, and UI translations.

  • #258 ef6ca19 Thanks @schoenwaldnils! - Add sign language support: 43 sign languages (ASL, BSL, DGS, SLV, and more) are now available in the language settings. Sign languages reuse Bible book names from their related spoken language while using their own wtlocale code in generated links (e.g. jwlibrary:///finder?bible=40024014&wtlocale=ASL).

  • #265 285bba5 Thanks @msakowski! - Add Czech language support (JW Library code B). Includes Czech Bible book names, abbreviations, and UI translations.

Patch Changes

  • #257 fe93b40 Thanks @schoenwaldnils! - refactor language metadata into centralized JSON config

  • #268 e5d5de2 Thanks @schoenwaldnils! - Remove unused convertBibleReference util and its test. Replace duplicate private padBook/padChapter methods in FileSystemOfflineBibleRepository with the shared padNumber utils.

  • #267 be0977c Thanks @schoenwaldnils! - Extract shared lazy Node.js module helpers into src/utils/lazyNodeModules.ts, removing duplicated lazy-require wrappers from BibleEpubImportService and FileSystemOfflineBibleRepository.

  • #255 b4faad6 Thanks @schoenwaldnils! - rename Croatian language code from CR to C

  • #265 454e89f Thanks @msakowski! - Fix pnpm dev on Windows by using cross-env for the DEBUG environment variable.

  • #264 aafb22b Thanks @msakowski! - Fix offline Bible EPUB language detection for locale aliases such as Portuguese pt, pt-pt, and pt_PT.

  • #271 193a6dc Thanks @schoenwaldnils! - Cleanup unsued exports and refactored functions

  • #263 33def8c Thanks @msakowski! - Harden offline EPUB Bible imports by preserving spacing across inline markup, improving nav parsing, and preventing trailing non-verse content from being included in extracted verses.

  • #262 d1e2be6 Thanks @msakowski! - fix truncated Bible quote insertion for WOL verses split across multiple HTML segments

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

Language Code
English E
Deutsch (German) X
Dansk (Danish) D
Suomi (Finnish) FI
Español (Spanish) S
Nederlands (Dutch) O
한국어 (Korean) KO
Français (French) F
Português (Portugal) TPO
Hrvatski (Croatian) C
Việt (Vietnamese) VT
Čeština (Czech) B

The plugin UI automatically adapts to your Obsidian language setting, and Bible book names are fully translated for each 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: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

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.