Quran categorization
run: full_usmani_v1 · click a category, or pick a surah →
❓ Help & controls
- Categories — click one to list its passages. Click a passage card to open it in the surah; the verse flashes so your eye lands on it.
- ← back — the blue button returns you exactly where you came from (same scroll), flashing the card you left.
- 📖 tafsir — on every passage card and verse row: opens the classical commentary (Ibn Kathir, abridged). A commentary often covers a group of verses — all of them are quoted at the top, and ‹ › steps between commentaries. Back works from there too.
- ♡ favorite — saves a verse to the currently selected ♥ label (works in any mode). Favorites live in labeled lists: “Favorites” is the default, and + new label… in the sidebar creates more (Duas, Patience, …). The ♥-marked label is the active one — hearts save there; click a label to view and activate it, ✕ deletes it (with its saves). On a card, ⇄ copy / move… sends the verse to another label. Each label exports to PDF separately. Consecutive favorited ayats (e.g. 4:148–150) are shown grouped in the list and the export, so passages that belong together are read together. Click ♥ again to remove. With a khatmah active, favoriting also marks the verse read; you can still un-mark it later without losing the favorite (and vice versa).
- ↶ Undo — after any favorite or read-mark change (single verses, shift-ranges, passages, whole surahs, even deleting a khatmah) a pill appears bottom-right for ~10s; click it or press Ctrl+Z to revert. Up to 20 steps, kept until you reload the page. When the change was made from a list (category cards, favorites) the pill also offers s:a → to open that verse in its surah — useful when the card just vanished because “hide read verses” is on.
- Text & translation — pick one or more translations to display together (click the box to open the list; each verse shows every selected translation, labeled, in the order you picked them — ✕ on a chip removes it), and/or show the Arabic text and English transliteration alongside (run
scripts/fetch_translations.py once to download these). Word-by-word gloss shows each Arabic word with its meaning beneath it (in the reader, tafsir, and PDF export; source: Quran.com — the English glosses are Dr. Shehnaz Shaikh & Kausar Khatri's word-for-word translation; also available in Urdu, Indonesian, Bengali and Turkish, following your selected translation, else English; run scripts/fetch_wbw.py once). Display only — the category labels were derived from the Usmani text. Your choices are saved with your other user data.
- ⬇ Export PDF — in Favorites: pick which saved verses to include (select all / untick a few), then export a formatted document with references and category labels via your browser's print dialog — choose “Save as PDF” as the destination.
- Reading mode — “Just browsing” tracks nothing. Create a khatmah (a named read-through) to track progress; keep several and switch anytime.
- Marking read (khatmah active) — click ○ next to a verse to mark it read; shift-click marks the whole range from your last-clicked ○ to this one (like selecting a range of emails); the button atop each surah marks/clears the whole surah. On passage cards in the category view, ○ marks the whole passage read (◐ = partially read), and shift-click marks every passage between your last-clicked card and this one.
- 📊 Stats — progress dashboard for the active khatmah: overall %, per-category progress, and a clickable map of all surahs.
- 🗺 Verse map (Browse panel) — two views, toggled on the page: LLM categories (default) lays every verse out by its assigned taxonomy label — category blobs, subcategory circles, verses spiralling in mushaf order — and meaning clusters shows verses embedded with a local model and clustered purely by meaning, an axis independent of the curated categories. Drag to pan, scroll or pinch to zoom, ⛶ for fullscreen, hover for the verse, click to open it in its surah. Scope it to the whole Quran, one ♥ label, or a surah list like
2, 12, 90-114; the hover popup shows both the semantic cluster and the verse's taxonomy categories. Shift-drag a rectangle (or the ▭ select toggle) to open every verse in that area as a card list in chronological order. Built by scripts/embed_verses.py → cluster_verses.py → label_clusters.py.
- ★ highlights — specially valuable verses; the checkbox filters categories to just those.
- Hide read verses (khatmah active) — filters the categories and their counts down to what you haven't read yet; fully-read passages disappear and the sidebar shows how many verses are excluded. Great for finding "what's left" in a topic.
- Saving & sync — on the hosted site, sign in with Google and your favorites/khatmahs/settings are saved to your account; without signing in they live only in this browser and can be lost. Locally, run
scripts/serve.py and they live in userdata.json in the project. Signed-in (or serve.py) sessions sync automatically: a change in one open tab/device appears in the others within ~15 s, without losing your place on the page.