Mohamed Saleh69 downloadsContextual Quran extraction, snippet trimming, and multi-source tafsir lookup for Obsidian — fully re-architected for customizability.
Toolkit for Islamic studies and Quran research with verse lookup, multi-source tafsir, and reflection notes.
See the roadmap and vault-note schema for planned surah/ayah note workflows and the structure of plugin-generated notes.

The bundled Quran corpus is based on Tanzil Quran Text (Uthmani, Version 1.1). Production rendering uses one fixed display: the canonical corpus with the embedded QPC Hafs v18 font. U+06DF is omitted from the generated production text because this font does not render it reliably. Sequential tanween is not inserted into stored production text, keeping copying and searching safe.
This is a deliberate source decision; the alternatives considered and the
conditions for any future corpus replacement are recorded in
docs/QURAN_SOURCE_DECISION.md.
Run npm run quran:import after replacing the source file. The importer
validates the 114 surahs and 6,236 ayahs before generating the JSON corpus.
Tanzil attribution, display options, and usage terms are
available at
https://tanzil.net/download/.
Type a search query, select text, or write a chapter/verse mention, then execute Extract Quran verse from context.

Crop specific phrases using (word1-word2) shorthand next to a reference, or repeat the extract command to toggle between the snippet and the full verse.

Fetch commentary for single ayahs or multi-ayah ranges using your preferred books or auto-detected authors mentioned on the line.

Select your reflection text and choose a category to create or append directly to the unified verse note.
▶ Click here to watch the full walkthrough demo
| Command | Description |
|---|---|
Extract Quran verse from context |
Primary extraction: resolves queries, ranges, or selections on the current line. |
Open global Quran search modal |
Opens the full-corpus search modal with live analytics. |
Fetch contextual tafsir for current line |
Retrieves tafsir commentary for the verse/range at the cursor. |
Open global tafsir selection modal |
Interactive picker to choose commentary sources first, then select verse range. |
Log selection to reflection (choose category) |
Interactive modal to pick or create a reflection category for selected text. |
Link related ayahs |
Multi-select modal to cross-link two or more related verses in frontmatter. |
Open or create Quran surah note |
Choose a surah and open its complete mushaf-style note; ayah notes are created only when reached. |
Log note on Quran ayah |
Search for an ayah, optionally choose a range, select a reflection section, and write directly into the notes from one modal. |
Convert Quran reference to footnote |
Converts inline [Surah:Ayah] to a numbered markdown footnote [^quran1]. |
Remove Quran reference from line |
Strips matched Qur'anic citations from the current line. |
Strip tashkeel from selection or line |
Removes diacritics/tashkeel from selection or active line. |
You can target plugin elements using Obsidian snippets or via the Custom CSS field in plugin settings:
| CSS Selector | Description |
|---|---|
.cm-quran-key-text |
The Qur'anic verse body inside wrapper glyphs (Editor & Live Preview). |
.quran-key-ornate-number |
The Arabic-Indic verse number decoration. |
.quran-key-ayah-note-link, .quran-key-lazy-ayah |
The ayah marker that opens an existing or lazily created ayah note. |
.quran-key-highlight |
Highlighted matching words inside search modals. |
.quran-key-analytics-dashboard |
The live analytics stat bar in the search modal. |
.quran-key-picker-modal |
Modals for tafsir sources, category selection, and ayah linking. |
Power-user options, including the optional @ section trigger in the ayah
entry modal, are available under Settings → Advanced and are disabled by
default.
/* Add a decorative side border to inserted verses */
.cm-quran-key-text {
border-right: 3px solid var(--quran-key-color, #dfc56b);
padding-right: 8px;
}
/* Style ayah numbers with a badge background */
.quran-key-ornate-number {
background: rgba(223, 197, 107, 0.15);
padding: 1px 6px;
border-radius: 4px;
font-size: 0.9em;
}
In compliance with Obsidian Developer Policies:
This project is open source and licensed under the MIT License.