Skip to content

zeeyado/quran-ebook

Repository files navigation

الحمد لله رب العالمين، والصلاة والسلام على سيدنا محمد خاتم النبيين وإمام المرسلين

Quran Ebook

Latest Release

Arabic flowing text Bilingual Arabic + English Word-by-word interlinear

Pre-built and reproducible Quran EPUBs with correct Arabic rendering, in 42 languages.

Download from the EPUB table below or see the latest release.

Best used in KOReader. See KOReader Settings for essential setup.

Extra features with the Quran Helper KOReader plugin: per-instance word dictionary with automatic entry matching, grammar dictionaries with WBW + syntax + i'rab, tafsir lookup (20 tafsirs, 6 languages), surah overviews, juz' and surah name in status bar, and more.

This tool uses validated script/font pairing to avoid the rendering bugs (broken sukun marks, mangled ligatures) common in other Quran EPUBs. Feedback and bug reports welcome — open a Feature Request for desired content or formats.

Ebook Types

Each translation is available in up to three formats:

  • Bilingual — Arabic and translation shown together, ayah by ayah. Best for studying or reading with a translation side by side.
  • Interactive — Arabic text only, tap any ayah (number marker) to see the translation in a footnote popup. Best for reading the Arabic with occasional reference to the translation.
  • Word-by-Word — Each Arabic word shown with its meaning directly below, forming visual word stacks. A full sentence translation follows each ayah. 8 languages have native word-level glosses; all translations also have an English-gloss WBW variant (plus Indonesian gloss for Malay). Best for vocabulary study and understanding how Arabic maps to the translation word by word.

There is also an Arabic-only EPUB with no translation — continuous flowing text. It is identical to the interactive version in visual layout.

All released EPUBs use Riwayat Hafs 'an 'Asim, anchored to the Madinah Mushaf (1405 AH / 604 pages). An experimental build for Riwayat Warsh 'an Nafi' is also available — see Other Versions (Work in Progress) for details and known limitations.

Screenshots — Arabic, bilingual, interactive, word-by-word, multilingual

Arabic full page Arabic mid-surah Bilingual Arabic + English Interactive surah start with popup Word-by-word English Chinese bilingual French bilingual Turkish bilingual Bengali bilingual

Reader Compatibility

These EPUBs use embedded Arabic fonts and EPUB3 features (like footnotes and interactive lookup) that most proprietary e-reader software does not handle well. In those cases, KOReader is highly recommended — open-source, excellent Arabic rendering, runs on Android, Kobo, Kindle, PocketBook, and Linux.

See KOReader Settings for essential setup — footnote popups, RTL page turns, mushaf page numbers, and more.

  • Kobo: Native reader struggles with Arabic. Install KOReader — no jailbreak needed.
  • Kindle: Stock Kindle does not render Arabic EPUBs correctly. Requires jailbreaking + KOReader.
  • Other e-readers: Proprietary readers will likely have rendering errors.
  • Apple Books: Mostly works well on iOS and macOS, no changes needed. Some features may not fully work.
  • Android e-readers: Most popular e-reader software like Moon+ Reader, Readera, Librera, etc., have various formatting errors and issues with rendering. Use KOReader where possible.
  • Windows/Mac/Linux: You can also use the Calibre ebook viewer, which mostly works fine.

NB: Translation text uses your e-reader's built-in serif font. For non-Latin scripts (Urdu, Bengali, Hindi, etc.), make sure your device has fonts for that script installed. KOReader ships with Noto fonts covering most scripts. The Quranic fonts are embedded in the EPUB itself.

Updating EPUBs

Overwrite the old file with the new one, keeping the same filename. KOReader (and most e-readers) store your reading position, highlights, and settings separately — they will be preserved. Do not delete the book from within KOReader before replacing, as this will delete your data. After updating, you can force refresh metadata (cover, etc) by long-pressing the book in KOReader and selecting Refresh cached metadata.

KOReader Settings

Essential Settings for a good reading experience. Footnote popups, RTL page turns, page numbers, and more

(Click to expand/collapse)

Important: Footnote popups

KOReader shows footnotes inline (on the page) by default, which breaks the layout of most EPUBs (Bilingual (annotated/with footnotes) and interactive versions) in this collection. Enable popups instead:

  1. You must have a book open (be in Reader view). Some settings are per-book unless you long-press to set a new default
  2. Disable in-page footnotes: Top Menu → Document icon → Style tweaks → In-page Footnotes → uncheck "In-page EPUB footnotes" (long-press and select "Don't use on all books" to disable for all books)
  3. Enable popup footnotes: Top Menu → Gear icon → Taps and Gestures → Links → check "Show Footnotes in Popup"
  4. Adjust popup font size: In the same Links menu, in Footnote popup settings, in "Footnote popup font size", lower the relative font size (-8 to -10 recommended) or use an absolute value (e.g. 14). This is because the default pop up font size is relative to 1em, and not to the (shrunken) inline translation in the EPUBs.
  5. Tip: check "Allow larger area around links" in Links menu for easier footnote tapping

Overlap status bar

Reclaims the bottom screen space used by the status bar — the bar overlaps the page content instead of shrinking the reading area:

  1. You must have a book open (be in Reader view)
  2. Top Menu → Gear icon → Status bar → check Overlap status bar

Margins

  1. You must have a book open (be in Reader view)
  2. Bottom Menu → Crop icon → Adjust margins to taste

In cobination with Overlap status bar, this let's you fill the screen to the bottom.

Font Size

Adjust the size of the font for the whole EPUB.

  1. You must have a book open (be in Reader view)
  2. Bottom Menu → Letter icon → Adjust font size to taste

Word spacing

Makes justified full page content look denser if you prefer smaller/fewer gaps (Interactive and Arabic-only EPUBs):

  1. You must have a book open (be in Reader view)
  2. Bottom Menu → Letter icon → Word Spacing → Try out Small, or press Dot Menu → Change Scaling and Reduction to experiment.

Hide endnotes from page flow

Bilingual and interactive — without this, the endnotes section appears as regular pages at the end of the book and in the status bar:

  1. You must have a book open (be in Reader view) and the book must be compatibe (it must contain non-linear fragments) to see this setting
  2. Top Menu → Bookmark icon → Settings → Hide non-linear fragments
  3. Long-press the setting (after enabling it) to make it default for all books

Mushaf page numbers

Shows the traditional 604-page Madinah Mushaf pagination in margins and/or status bar:

  1. You must have a book open (be in Reader view)
  2. Top Menu → Bookmark icon → Settings → Stable page numbers
  3. Check "Use stable page numbers" for the status bar and TOC (KOReader counts the mushaf pages as the "real" pages, not the actual page turns you make on your ereader)
  4. Check "Show stable page numbers in margin" for showing the mushaf pages in the right margin (at the line of the ayah that begins the mushaf page)
  5. Default settings for new books → Pick the same settings as you picked above for Use stable page number and Show stable page numbers to make this the default

You can use one, both, or neither of these settings, depending on what you prefer

RTL page turns

KOReader does not auto-detect RTL page direction from the EPUB. Without this, swiping goes the wrong way:

  1. You must have a book open (be in Reader view). Setting is per-book unless you long-press to set a new default
  2. Top Menu → Gear icon → Taps and Gestures → Page Turns → check Invert page turn taps and swipes
  3. Physical buttons: Top Menu → Gear icon → Navigation → Physical Buttons → check Invert page turn buttons (this is useful if you read with the buttons on the bottom so they are left-right in orientation, i.e. landscape on devices with side buttons or portrait on devices with bottom buttons)

Line heights

The EPUBs in this collection enforce steady line heights (1.7×) for consistent Arabic diacritic spacing regardless of diacritical complexity.

To adjust:

  1. You must have a book open (be in Reader view). Setting is per-book unless you long-press to set a new default
  2. Top Menu → Document icon → Style tweaks → Text → Line heights → check "Ignore publisher line heights" to revert to the font's natural line height
  3. Combine 2 with a Override font-based normal line-height to set your own value

"Enforce steady line heights" toggle has no additional effect since the EPUB already enforces this.

Font weight

KOReader does not add wight by default. If you feel the Arabic looks thin (not small, but lacking weight):

  1. You must have a book open (be in Reader view). Setting is per-book unless you long-press to set a new default
  2. Bottom Menu → Contrast icon → Font weight → try +1/2 or more

EPUBs

Arabic

Riwayah
Hafs epub Continuous flowing text, no translation
Warsh (experimental) epub Arabic-only, Riwayat Warsh 'an Nafi' — see known limitations

English

Translator Bilingual Interactive WBW
Sahih International epub epub epub
M.A.S. Abdel Haleem epub epub epub
Sayyid Abul Ala Maududi (Tafhim ul-Quran) epub epub epub
Dr. Mustafa Khattab / The Clear Quran epub epub epub
Dr. Mustafa Khattab / The Clear Quran (annotated) epub epub epub

Other languages

Français, Deutsch, Español, Türkçe, اردو — Urdu, Bahasa Indonesia, Русский, বাংলা — Bengali
Language Translator Bilingual Interactive WBW
Français Hamidullah epub epub epuben wbw
Deutsch Bubenheim & Elyas epub epub epuben wbw
Español Isa Garcia epub epub epuben wbw
Türkçe Diyanet İşleri epub epub epub
epuben wbw
اردو — Urdu Jalandhari epub epub epub
epuben wbw
اردو — Urdu Sayyid Abul Ala Maududi (Tafheem-ul-Quran) epub epub epub
epuben wbw
Bahasa Indonesia Kementerian Agama epub epub epub
epuben wbw
Русский Kuliev epub epub epuben wbw
বাংলা — Bengali Taisirul Quran epub epub epub
epuben wbw
فارسی — Persian, Bahasa Melayu, Português, Italiano, Nederlands, Norsk, Svenska, Bosanski, Soomaali, Hausa, Fulfulde, Kiswahili
Language Translator Bilingual Interactive WBW
فارسی — Persian Hussein Taji Kal Dari epub epub epub
epuben wbw
Bahasa Melayu Abdullah Muhammad Basmeih epub epub epuben wbw
epubid wbw
Português Helmi Nasr epub epub epuben wbw
Italiano Hamza Roberto Piccardo epub epub epuben wbw
Nederlands Sofian S. Siregar epub epub epuben wbw
Norsk Einar Berg epub epub epuben wbw
Svenska Knut Bernström epub epub epuben wbw
Bosanski Besim Korkut epub epub epuben wbw
Soomaali Mahmud Muhammad Abduh epub epub epuben wbw
Hausa Abubakar Mahmoud Gumi epub epub epuben wbw
Fulfulde — Fula Rowad Translation Center epub epub epuben wbw
Kiswahili Ali Muhsin Al-Barwani epub epub epuben wbw
हिन्दी — Hindi, தமிழ் — Tamil, മലയാളം — Malayalam, پښتو — Pashto, کوردی — Kurdish, ئۇيغۇرچە — Uyghur, 中文, 한국어, 日本語, ไทย, Tiếng Việt, Filipino
Language Translator Bilingual Interactive WBW
हिन्दी — Hindi Maulana Azizul Haque al-Umari epub epub epub
epuben wbw
தமிழ் — Tamil Abdul Hameed Baqavi epub epub epub
epuben wbw
മലയാളം — Malayalam Abdul Hameed & Kunhi Mohammed epub epub epuben wbw
پښتو — Pashto Zakaria Abulsalam epub epub epuben wbw
کوردی — Kurdish Muhammad Saleh Bamoki epub epub epuben wbw
ئۇيغۇرچە — Uyghur Muhammad Saleh epub epub epuben wbw
中文 — Chinese Ma Jian epub epub epuben wbw
한국어 — Korean Hamed Choi epub epub epuben wbw
日本語 — Japanese Saeed Sato epub epub epuben wbw
ไทย — Thai King Fahad Quran Complex epub epub epuben wbw
Tiếng Việt Ruwwad Center epub epub epuben wbw
Filipino Dar Al-Salam Center epub epub epuben wbw
Azərbaycanca, Oʻzbekcha, Тоҷикӣ — Tajik, Қазақша — Kazakh, Shqip — Albanian, Polski, Українська — Ukrainian, አማርኛ — Amharic, Yorùbá
Language Translator Bilingual Interactive WBW
Azərbaycanca Alikhan Musayev epub epub epuben wbw
Oʻzbekcha Muhammad Sodiq Muhammad Yusuf epub epub epuben wbw
Тоҷикӣ — Tajik Khawaja Mirof & Khawaja Mir epub epub epuben wbw
Қазақша — Kazakh Khalifa Altay epub epub epuben wbw
Shqip — Albanian Sherif Ahmeti epub epub epuben wbw
Polski Józef Bielawski epub epub epuben wbw
Українська — Ukrainian Dr. Mikhailo Yaqubovic epub epub epuben wbw
አማርኛ — Amharic Sadiq and Sani epub epub epuben wbw
Yorùbá Shaykh Abu Rahimah Mikael Aykyuni epub epub epuben wbw

Word-by-Word download links: epub = native-language word gloss, epuben wbw = English word gloss, epubid wbw = Indonesian word gloss. Cross-language WBW pairs English (or Indonesian) word-level meanings with a full sentence translation in the target language — useful for readers who understand basic English vocabulary but prefer reading a translation in their own language.

Many translations include translator footnotes where the source data provides them (Sahih International, Hamidullah, Garcia, Hamza Roberto Piccardo, Nasr, and others). Editions marked "with commentary" or "annotated" have especially extensive notes — Tafhim ul-Quran includes Sayyid Abul Ala Maududi's full tafseer-style commentary, and the annotated Clear Quran has 1,270 scholarly footnotes. See KOReader Settings for footnote popup setup.

Note on Maududi footnotes: A small number (~9%) of Tafhim ul-Quran footnotes are truncated in the upstream source data (ending mid-sentence). This is a known issue in the digitized text that all online sources share — not specific to this project.

KOReader Plugin

The Quran Helper plugin enhances the reading experience with automatic word dictionary matching, grammar and tafsir lookup, surah overviews, and juz' status bar info.

Install

Download quran_koplugin_v1.8.zip (18 KB), unzip quran.koplugin/ into KOReader's plugins/ folder:

Platform Path
Android /sdcard/koreader/plugins/
Kobo /mnt/onboard/.adds/koreader/plugins/
Kindle /mnt/us/koreader/plugins/
Desktop ~/.config/koreader/plugins/

For the plugin to be installed correctly, the file structure should look like this (no nested folder, and foldername must be quran.koplugin exactly; remove "-main" or similar if you downloaded the zip from head):

koreader
└── plugins
    └── quran.koplugin
        ├── _meta.lua
        ├── main.lua
        └── ...

Restart KOReader. Go to Top Menu → Tool icon → Quran Helper to configure.

Juz Status Bar

Shows the current juz in KOReader's footer status bar while reading.

  • Six juz display formats: جزء ٣ (default), Juz 3, Arabic name (تلك الرسل), Arabic name with جزء (جزء تلك الرسل), Latin name (Tilkar-Rusul), Latin name with Juz' (Juz' Tilkar-Rusul)
  • Optional surah name appended (off by default), e.g. جزء ٣ — البقرة or Juz 3 — Al-Baqarah, with five format options including سورة/Surat prefix variants
  • Boundary indicator (*) when a new juz begins on the current page (e.g., جزء ٣*)

Enable juz' title in status bar — the juz display is on by default in the plugin, but KOReader needs "External content" enabled in the status bar to show it:

  1. You must have a book open (be in Reader view)
  2. Top Menu → Gear icon → Status bar → Status bar items → check External content. After this you can change the plugin settings on-the-fly.

You can also sort the status bar items in this menu.

Screenshots — status bar, plugin settings

Status bar with juz info Plugin settings menu

Plugin settings — configure juz format, surah name display, and other options:

  1. You should have a book open (be in Reader view) and status bar visible to see the results immediately for testing
  2. Top Menu → Tool icon → Quran Helper
  3. Adjust settings as needed

Word Dictionary

Per-instance English word-by-word StarDict dictionary for KOReader. Long-press any Quranic word while reading to see:

  • Translation — English word meaning for that specific occurrence
  • Transliteration — Latin script pronunciation
  • Morphology — part of speech (Arabic + English), grammatical case/mood, gender/number/person, verb form and pattern (wazn) — specific to this occurrence
  • Lemma and root — dictionary form and Arabic root letters
  • Root definition — Lane's Lexicon summary for the root
  • Occurrence counts — how many times this lemma and this exact form appear in the Quran
Screenshot — dictionary popup

Dictionary popup

~33,000 unique entries covering every word instance in the Quran (77,426 instances, combined where the content is identical). Headwords use QPC Uthmani Hafs encoding — the same script as the EPUBs above. Other Quran text encodings will not match.

With the plugin installed: the plugin detects which ayah you are reading and automatically filters the dictionary results to show only the entry matching that position — one result with the correct translation and morphology for that exact word occurrence.

Without the plugin: KOReader shows all entries for the word form. Each unique translation/morphology combination is a separate entry that you scroll through (e.g. 1/5). Functional but less convenient for common words.

Install: Download quran_qpc_en_stardict_v1.3.zip (2.1 MB), unzip into KOReader's data/dict/ folder (creates a quran_qpc_en/ subfolder). Subfolder names and nesting does not matter as long as the files are in the dict folder. Restart KOReader.

Platform Path
Android /sdcard/koreader/data/dict/
Kobo /mnt/onboard/.adds/koreader/data/dict/
Kindle /mnt/us/koreader/data/dict/
Desktop ~/.config/koreader/data/dict/
koreader
└── data
    └── dict
        └── quran_qpc_en
            ├── quran_qpc_en.dict
            ├── quran_qpc_en.idx
            └── quran_qpc_en.ifo

You can sort your dictionaries in Top menu → Magnifying glass icon → Settings → Dictionary settings. Here you can also set book-specific preferences for the open book.

Build your own: python tools/build_dictionary.py --instance (requires cached data from Quran.com API, EQTB morphology, and Lane's Lexicon — see script for details).

Known upstream data issues:

  • Transliteration from Quran.com API omits hamza (شَآءَ → shāa instead of shā'a) and sometimes drops shaddah doubling (ٱلۡحَقُّ → l-ḥaqu instead of l-ḥaqqu)
  • Root definitions from Lane's Lexicon are per-root, not per-lemma — a verb and its derived noun share the same root gloss (e.g. شَآءَ "to will" shows the root شيأ gloss for "thing")
  • Lemma data from EQTB (Extended Quranic Treebank) has known errors: some verb lemmas show the conjugated surface form instead of the dictionary headword, and some plural noun lemmas are incorrect. This is being investigated — an alternative lemma source will replace the EQTB lemmas in a future update. If you notice an incorrect lemma, please report it.
  • QPC repurposes three Unicode codepoints for tanween variants (U+0657 for open fathatan, U+065E for open dammatan, U+0656 for kasratan) with custom glyphs in the QPC font. KOReader's dictionary popup uses a standard Arabic font, which renders these as their literal Unicode glyphs (inverted damma, fatha-with-dots, subscript alef). The dictionary builder normalizes headwords to standard tanween (U+064B, U+064C, U+064D) for correct rendering, and includes the original QPC forms as synonym keys for backward compatibility. With the KOReader plugin installed, lookups are normalized automatically for exact matching. Without the plugin, the QPC synonym keys provide exact matching with the original (cosmetically incorrect) rendering

Grammar Dictionary

Long-press any ayah number marker while reading to see per-ayah grammatical analysis. Requires the plugin.

  • Word-by-word translation — English gloss for each word in the ayah (from Quran.com word-by-word data)
  • Morphology — 35 POS types, case/mood, gender/number/person, verb form and wazn, passive voice, indefinite state (from EQTB)
  • Syntax roles — subject, predicate, complement, conjunction, etc. with target word shown (e.g. "predicate (خبر) of ٱللَّهُ") — from the EQTB dependency treebank (full Quran coverage)
  • I'rab — traditional Arabic grammatical analysis prose (إعراب), ~93% coverage (from QAC)
Screenshots — grammar, i'rab

Grammar Lite popup I'rab popup

6,236 entries covering every ayah in the Quran. The plugin detects the current surah from the table of contents and handles the lookup automatically — just long-press the ayah number. The grammar dictionaries use special keys (e.g. "Al-Baqarah 255") that are not searchable without the plugin — the plugin is required.

Install: Pick one or more grammar dictionary variants and unzip into KOReader's data/dict/ folder (same location as the word dictionary):

Platform Path
Android /sdcard/koreader/data/dict/
Kobo /mnt/onboard/.adds/koreader/data/dict/
Kindle /mnt/us/koreader/data/dict/
Desktop ~/.config/koreader/data/dict/
koreader
└── data
    └── dict
        └── quran_grammar_combined
            ├── quran_grammar_combined.dict
            ├── quran_grammar_combined.idx
            └── quran_grammar_combined.ifo
Variant Language Contents Size
Combined v1.4 EN + AR WBW + morphology + syntax + i'rab 4.9 MB
Grammar (Lite) v1.4 EN WBW + morphology + syntax (no i'rab) 2.2 MB
I'rab only v1.4 AR Traditional Arabic grammatical analysis only 2.2 MB

Build your own: python tools/build_grammar_dictionary.py --variant all (requires cached data — see script for details).

Known upstream data issues:

  • Word-by-word translations from Quran.com API use phrase-level rather than word-level glosses in ~50 chapters (mostly chapters 4+). E.g. three words may all show "O you who believe" instead of individual glosses. Chapters 1–3 have clean word-level data. This is the upstream API data, not a processing error.
  • I'rab data covers ~93% of ayahs (5,790 of 6,236). The remaining ~446 ayahs have no i'rab analysis in the QAC source data.
  • Lemma data from EQTB has known errors for some verb and noun forms (same issue as the word dictionary — shared data source). Being investigated. If you notice an incorrect lemma, please report it.

Surah Overview

Long-press a surah name header (the decorative calligraphic name at the start of each surah) to see an introduction and overview of that surah. Navigate between surahs with the prev/next buttons or volume keys. Requires the plugin.

Screenshot — surah overview

Surah overview popup

Install: Pick one or more languages and unzip into KOReader's data/dict/ folder. You can install multiple languages — all will show in the popup.

Platform Path
Android /sdcard/koreader/data/dict/
Kobo /mnt/onboard/.adds/koreader/data/dict/
Kindle /mnt/us/koreader/data/dict/
Desktop ~/.config/koreader/data/dict/
koreader
└── data
    └── dict
        └── quran_surah_overview_en
            ├── quran_surah_overview_en.dict
            ├── quran_surah_overview_en.idx
            └── quran_surah_overview_en.ifo
Language Download Entries Size
English Surah Overview v1.1 114 298 KB
Urdu Surah Overview v1.1 114 380 KB
Indonesian Surah Overview v1.1 114 65 KB
Malayalam Surah Overview v1.1 114 429 KB
Tamil Surah Overview v1.1 114 27 KB
Italian Surah Overview v1.1 112 34 KB

Source: Quran.com API v4 surah info endpoint.

Build your own: python tools/build_surah_overview.py --all (or --language en for a single language).

Tafsir (Commentary)

Long-press any ayah number marker to see tafsir commentary for that ayah (in addition to grammar data, if installed). Each tafsir is a separate dictionary — install whichever ones you want. Navigate between ayahs with prev/next buttons or volume keys. Requires the plugin.

Screenshots — tafsir popups, tafsir picker

Tafsir Ibn Kathir English Tafsir Ibn Kathir Arabic Tafsir picker menu

Some tafsirs group multiple ayahs under one commentary entry (e.g. Ibn Kathir). The popup title shows the ayah range, and all ayahs in the group are reachable. Like the grammar dictionaries, the tafsir dictionaries use special keys that require the plugin.

Install: Pick one or more tafsirs and unzip into KOReader's data/dict/ folder (same location as the word dictionary). You can install multiple tafsirs — all will show in the popup.

Platform Path
Android /sdcard/koreader/data/dict/
Kobo /mnt/onboard/.adds/koreader/data/dict/
Kindle /mnt/us/koreader/data/dict/
Desktop ~/.config/koreader/data/dict/
koreader
└── data
    └── dict
        └── quran_tafsir_muyassar
            ├── quran_tafsir_muyassar.dict
            ├── quran_tafsir_muyassar.idx
            └── quran_tafsir_muyassar.ifo
Arabic tafsirs (7)
Tafsir Download Size
Tafsir al-Muyassar (المیسر) v1.1 650 KB
Tafsir al-Sa'di (السعدي) v1.1 1.7 MB
Tafsir al-Baghawi (البغوي) v1.1 2.1 MB
Tafsir Ibn Kathir (ابن كثير) v1.1 3.7 MB
al-Tafsir al-Wasit (Tantawi) v1.1 4.6 MB
Tafsir al-Qurtubi (القرطبي) v1.1 5.1 MB
Tafsir al-Tabari (الطبري) v1.1 8.2 MB
English tafsirs (3)
Tafsir Download Size
Tazkirul Quran (Wahiduddin Khan) v1.1 881 KB
Tafsir Ibn Kathir (Abridged) v1.1 4.9 MB
Ma'ariful Qur'an (Mufti Shafi) v1.1 4.4 MB
Urdu tafsirs (4)
Tafsir Download Size
Tazkir ul Quran (Wahiduddin Khan) v1.1 1.1 MB
Bayan ul Quran (Israr Ahmad) v1.1 2.2 MB
Tafsir Ibn Kathir (ابن کثیر) v1.1 6.5 MB
Fi Zilal al-Quran (Qutb) v1.1 7.4 MB
Bengali tafsirs (4)
Tafsir Download Size
Tafsir Ahsanul Bayaan v1.1 1.9 MB
Tafsir Abu Bakr Zakaria v1.1 2.6 MB
Tafsir Fathul Majid v1.1 3.5 MB
Tafsir Ibn Kathir (ইবনে কাসীর) v1.1 9.5 MB
Russian (1) · Kurdish (1)
Tafsir Language Download Size
Tafsir al-Sa'di Russian v1.1 2.2 MB
Rebar Kurdish Tafsir Kurdish v1.1 1.4 MB

Source: Quran.com API v4 tafsir endpoints. 20 tafsirs across 6 languages.

Build your own: python tools/build_tafseer_dictionary.py --all (or --tafsir muyassar for a single tafsir). Use --list to see all available tafsirs.

Build Your Own EPUBs

pip install -e ".[dev]"
quran-ebook build configs/bilingual/en_sahih.yaml

Each YAML file in configs/ defines one EPUB variant. Configs are organized by type: arabic/, bilingual/, interactive/. Build everything with quran-ebook build --all configs/.

PRs or FRs are welcome.

Data Sources

  • Arabic text: Quran.com API v4 — QPC Uthmani Hafs encoding (Riwayat Hafs 'an 'Asim), Madinah Mushaf V1 (1405 AH) page mapping
  • Translations: Quran.com API v4 + fawazahmed0/quran-api — 42 languages, 46 translators (see configs/ for full list)
  • Surah names: Quran.com API v4 for most languages; QuranEnc for languages not on the API (e.g. Fulfulde)
  • Surah overviews: Quran.com API v4/chapters/{id}/info endpoint, available in English, Urdu, Indonesian, Malayalam, Tamil, Italian
  • Tafsir: Quran.com API v4/tafsirs/{id}/by_chapter/{ch} endpoint, 20 tafsirs across 6 languages (Arabic, English, Urdu, Bengali, Russian, Kurdish)
  • Morphology & syntax (grammar + word dictionaries): EQTB (Extended Quranic Treebank) — POS, case, mood, gender, number, person, verb form, dependency relations with head pointers (CC BY 4.0)
  • I'rab: Quranic Arabic Corpus — traditional Arabic grammatical analysis prose (GPL)
  • Root definitions: Lane's Lexicon — root meanings (public domain)
  • Primary font (Hafs): KFGQPC Uthmanic Script Hafs — King Fahd Complex, via Tarteel CDN
  • Primary font (Warsh): KFGQPC Warsh Uthmanic Script v0.10 — King Fahd Complex, via thetruetruth/quran-data-kfgqpc
  • Symbol font: Scheherazade New (SIL International) — rub al-hizb markers, surah header numerals, TOC labels, and in-book cover text
  • Basmala font: Quran Common (QUL / King Fahd Complex) — ornamental bismillah ligature (U+FDFD)
  • Header font: Surah Name V4 (QUL / King Fahd Complex) — calligraphic surah name glyphs

Other Versions (Work in Progress)

Warsh 'an Nafi'

An experimental Arabic-only EPUB for Riwayat Warsh 'an Nafi' is included in the release. See the Arabic EPUB table for the download link.

Data source: KFGQPC (King Fahd Glorious Quran Printing Complex) via thetruetruth/quran-data-kfgqpc. This is the only freely available digital Warsh package with matched text and font. The same data is used by most open-source multi-qiraat projects.

Font: KFGQPC Warsh Uthmanic Script v0.10 (2018, Ashfaq Ahmad Niazi). The text encoding is inseparable from its font — Warsh text rendered with a Hafs font produces broken diacritics, and vice versa. The font uses Maghribi orthographic conventions: dot under fa (ف), compact comma-style damma, hamzat al-wasl markers (U+06EC), and the distinctive North African kaf.

What this edition is: The Quranic text follows Warsh 'an Nafi' with Madani ayah numbering (6,214 ayahs across 114 surahs, vs 6,236 in Hafs). The basmala is unnumbered and absent from Al-Fatiha's ayah count. 50 surahs have different ayah counts compared to Hafs. All 30 juz boundaries are present and correct for the Warsh tradition (12 of 30 differ from Hafs). Orthographic conventions such as sun-letter assimilation marking (shadda placement) follow the Medina Warsh printing tradition.

Page numbers: The KFGQPC data uses a 604-page digital layout that mirrors the Hafs Madinah Mushaf grid structure. These are not physical Warsh mushaf page numbers — the printed Warsh Madinah Mushaf has ~576 pages. All 114 surah start pages are identical between the KFGQPC Warsh and Hafs datasets. Page references in the EPUB footer are KFGQPC virtual pages, not references to any specific printed Warsh mushaf.

What works:

Feature Status
Arabic text rendering Correct (matched KFGQPC font + text)
Ayah numbering Correct Warsh/Madani tradition (6,214 ayahs)
Ayah markers (ornate) Correct (KFGQPC font renders Arabic-Indic digits as markers)
Juz boundaries & TOC Correct for Warsh (from KFGQPC data)
Hizb/rub markers Present (from KFGQPC data)
Basmala QPC-encoded text with correct Warsh diacritics (extracted from S27:30)
Surah headers Plain Arabic text in Warsh font (no calligraphic glyph, no side columns)
Page numbers in footer Functional but virtual (see above)

Known limitations:

  • No calligraphic surah headers or ornamental basmala. The Hafs decorative fonts (surah-name-v4, quran-common) use Mashriqi orthographic marks (different sukun, hamza shapes) that do not match Warsh/Maghribi conventions. No Warsh-specific decorative fonts exist in the digital Quran font ecosystem. The EPUB falls back to plain Arabic text in the Warsh font for both.
  • Single waqf marker type. The KFGQPC Warsh data uses only U+06D6 (صلى) for pause marking, consistent with the simplified waqf system used in many Medina Warsh mushafs. The multi-symbol waqf system (قلى, مـ, لا, ج, three dots) common in Hafs mushafs is not present in this data source.
  • KOReader plugin: The Quran navigation plugin hardcodes Hafs ayah counts and juz boundaries. Surah-level navigation works (reads the EPUB TOC), but ayah-level prev/next navigation will be incorrect. The juz status bar reads the EPUB TOC and should display correctly.
  • Dictionaries: The WBW, grammar, and tafsir dictionaries are keyed to Hafs ayah numbers (6,236 ayahs). Since Warsh has different ayah boundaries in 50 surahs, dictionary lookups will be misaligned for those surahs for now. The surah overview dictionary is also differently keyed.
  • Bilingual / interactive / WBW layouts are not yet available for Warsh (Arabic-only for now).

Tajweed (QCF Glyph Fonts)

Experimental support for tajweed color-coded Quran text using the Quran Foundation's per-page glyph fonts (QCF V4). Each word is rendered as a single pre-composed glyph with tajweed colors baked into the font via OpenType COLR/CPAL tables. This avoids the Arabic shaping breakage that CSS color spans cause in CREngine.

The EPUB build pipeline is functional — Arabic-only, bilingual, and interactive layouts all build and pass epubcheck. Spacing and sizing tuning is in progress.

Requires patched KOReader: QCF V4 tajweed colors need COLR v0 color font support in CREngine. A patch has been submitted as koreader/crengine#654. Until merged, tajweed colors only render in a locally patched KOReader build. A plain (non-color) QCF V1 variant works on stock KOReader.

Credits

Built on the work of many contributors to the Quranic digital ecosystem:

Fonts: KFGQPC Uthmanic Script (Hafs + Warsh), Quran Common, and Surah Name V4 (King Fahd Complex via QUL), Scheherazade New (SIL International, OFL 1.1).

License

GPL-3.0

Quran text and translation data sourced from Quran.com API. Font licenses: Scheherazade New (SIL OFL 1.1), KFGQPC Uthmanic Script / Quran Common / Surah Name V4 (King Fahd Complex — use, copy, and distribute permitted; modification not permitted).