isnady 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +73 -7
  2. package/index.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -8,12 +8,12 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://pypi.org/project/isnady/">
11
- <img src="https://img.shields.io/badge/PyPI-v0.2.0-1D4777?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI">
11
+ <img src="https://img.shields.io/badge/PyPI-v0.2.2-1D4777?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI">
12
12
  </a>
13
13
  <img src="https://img.shields.io/pypi/pyversions/isnady?style=for-the-badge&color=A47E24&logo=python&logoColor=white" alt="Python">
14
14
  <img src="https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS-5B6878?style=for-the-badge" alt="Platform">
15
15
  <a href="https://www.npmjs.com/package/isnady">
16
- <img src="https://img.shields.io/badge/npm-v0.2.0-14304F?style=for-the-badge&logo=npm" alt="npm">
16
+ <img src="https://img.shields.io/badge/npm-v0.2.2-14304F?style=for-the-badge&logo=npm" alt="npm">
17
17
  </a>
18
18
  <a href="https://github.com/bayramkotan/isnady-data">
19
19
  <img src="https://img.shields.io/badge/data-isnady--data-2E6B4F?style=for-the-badge&logo=github" alt="isnady-data">
@@ -45,7 +45,7 @@
45
45
  <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/search-arabic.png" alt="Searching النيات finds بالنيات in Sahih al-Bukhari 1, with the chain above the text" width="850">
46
46
  </p>
47
47
 
48
- > **Pre-alpha (0.2.0).** Search, chains of transmission, narrators, books, scholars, statistics and
48
+ > **Pre-alpha (0.2.2).** Search, chains of transmission, narrators, books, scholars, statistics and
49
49
  > the glossary work today, Sunni and Shia, on data you import in one click. Everything is built in
50
50
  > the open, one piece at a time.
51
51
 
@@ -194,8 +194,11 @@ when its chain reader has changed (a minute or two, once).
194
194
 
195
195
  `iy doctor` lists every copy and which one each command really starts — an older copy in the user
196
196
  folder can start before a newer one elsewhere, so every copy is kept at the same version. The same
197
- report is under **Help → Check Installation**. If an old copy starts even for `iy update`, run
198
- `python3 -s -m isnady update` (Windows: `py -s -m isnady update`).
197
+ report is under **Help → Check Installation** (and the ⚠ button in the sidebar when something is behind), with an
198
+ **Update** button that does what `iy update` does: every copy updated where it is, the output shown as it comes; a
199
+ copy installed for all users asks for the administrator password in the system's own window (pkexec on Linux, the
200
+ administrator prompt on Windows). If an old copy starts even for `iy update`, run `python3 -s -m isnady update`
201
+ (Windows: `py -s -m isnady update`).
199
202
 
200
203
  ---
201
204
 
@@ -329,7 +332,7 @@ without authentication (credentials are never stored), are read as well.
329
332
  | **Match** | All words, any word, the exact phrase — or by meaning (AI, below) |
330
333
  | **Books** | All books, all Sunni, all Shia, or any few ticked one by one |
331
334
  | **Order** | Book by book in the order of the book lists — Sahih al-Bukhari, Sahih Muslim, Sunan Abi Dawud … then the Shia books — and within a book by its numbering |
332
- | **Language** | One language to search in; the languages you do not read are folded behind an arrow on each hadith, a click opens them |
335
+ | **Language** | One language to search in; the languages you do not read are folded behind an arrow on each hadith, a click opens them. The list holds the languages imported; the languages the same books have in isnady-data (Urdu, Indonesian, Bengali, French, Russian, Tamil) are named at its end — choosing them opens **File → Data Sources** to import them |
333
336
  | **Active books** | A book can be switched off in **Settings → Books and languages**: it stays imported but is left out of searches, book lists and statistics until switched on |
334
337
  | **Grades** | Shown under each hadith with the scholar's name, exactly as given, and explained when you point at them |
335
338
  | **Highlighting** | On the original, diacritised text, diacritics included |
@@ -483,6 +486,12 @@ al-Najashi's *Rijal* read entry by entry, each narrator a click away. Find withi
483
486
  the previous or next one, and isnady remembers where you were. From any search result, **In its
484
487
  book** opens the hadith where it stands, among the hadith of its chapter.
485
488
 
489
+ Book and chapter titles follow the interface language: the sources give chapter titles in English only, so
490
+ isnady carries its own — all 642 chapter titles of the 33 books in Turkish and in Arabic ("Vahyin Başlangıcı",
491
+ "كتاب بدء الوحي" for "Revelation"), and the Arabic titles a source gives itself where it has them (al-Adab
492
+ al-Mufrad, Bulugh al-Maram, Mishkat, Riyad al-Salihin, al-Shama'il). The book titles too: *Sahîh-i Buhârî*,
493
+ *صحيح البخاري*.
494
+
486
495
  The shelf holds the Sunni and the Shia books together, each under its own heading — *All*, *Sunni*
487
496
  or *Shia* at the top shows one of them alone — and every Shia book carries a gold *Shia* tag. Books
488
497
  are not tied to hadith collections: a work is a tree of any depth (volume, book, chapter, section)
@@ -573,8 +582,63 @@ measures. Each with its Arabic, a one-line and a longer definition in **English,
573
582
  has it — related terms one click away, and its source. The grades on every result explain themselves
574
583
  when you point at them. `iy term mursal --lang tr`, `iy term mursal --lang ar`.
575
584
 
585
+ Each of the ten categories has its own colour and sign — on the chips above the list (a click shows that
586
+ category alone), the dot before each term, the band of the term's card, its "In short" box and the chips of its
587
+ related terms; the card reads from the top: the term large with its Arabic, its names in the other languages,
588
+ *In short*, *In detail*, the source, the related terms, and more of the same category to read on.
589
+
590
+ <p align="center">
591
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/learn.png" alt="Learn — the term mursal in its category's colour: Arabic, In short, In detail, source, related terms" width="850">
592
+ </p>
593
+
594
+ ---
595
+
596
+ ## 🌳 Genealogies
597
+
598
+ Four trees, drawn so they can be zoomed, moved and clicked (**Genealogies** in the sidebar, `iy tree`):
599
+
600
+ | Tree | What it shows |
601
+ |---|---|
602
+ | **The prophets** | From Adam to Muhammad ﷺ as the Qur'an, al-Bukhari and the classical historians give it — Ibn Hisham, Ibn Sa'd, al-Tabari, Ibn Kathir: Nuh, Ibrahim and his sons, the prophets of the Children of Israel, the line of Isma'il to 'Adnan and on to the Prophet ﷺ. A link whose generations are not known is drawn dashed; a report the sources differ on has a dashed box and says so |
603
+ | **Quraysh and the Prophet's family** | From Ka'b b. Lu'ayy: the Prophet's family ﷺ, the lineages of the four caliphs joining his, the Umayyads, and the Imams of the Shia |
604
+ | **A narrator's family** | Read from the narrators' own names: "X b. Y b. Z" is the son of "Y b. Z" when exactly one narrator of that name, of the same tradition and of an earlier or the same generation, is found — over a thousand such links in the Taqrib and al-Najashi (Ibn 'Umar's sons and grandsons, the family of al-Zubayr …). A reading of the names, said so on the page |
605
+ | **A narrator's line of learning** | His teachers above him and theirs, his students below him and theirs, the most frequent at each step, counted from the imported chains |
606
+
607
+ **Where the written trees come from.** Sunni sources, each link marked with how strong its source is: the Qur'an
608
+ where it names a relation (Ibrahim's sons Isma'il and Ishaq, Ya'qub …); al-Bukhari's *Sahih* (Manaqib al-Ansar,
609
+ the Prophet's lineage ﷺ up to 'Adnan, on which the scholars agree); the sira and history works (Ibn Hisham, Ibn
610
+ Sa'd, al-Tabari, Ibn Kathir); the genealogists of Quraysh (Mus'ab al-Zubayri, Ibn Hazm). The names between Adam
611
+ and Ibrahim and between Isma'il and 'Adnan are the historians' only — they took them partly from the People of the
612
+ Book, and neither the Qur'an nor an authentic hadith gives them; the page says so on those names. The Imams of the
613
+ Shia are shown as the line of the Prophet's family ﷺ that the Sunni genealogists record too; that they are Imams
614
+ is the Shia's belief, shown as theirs (where the Sunni historians differ — a son of al-Hasan al-'Askari — the box
615
+ is dashed and both are given).
616
+
617
+ Click a name for what the sources say about it; a narrator opens on the Narrators page, which has the links to
618
+ his family and his line of learning too. `iy tree prophets`, `iy tree prophets Musa`, `iy tree family "Ibn
619
+ Umar"`, `iy tree learning al-Zuhri --depth 2 --width 4`.
620
+
621
+ <p align="center">
622
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/genealogy.png" alt="Genealogies — the prophets: Ibrahim, his sons Isma'il and Ishaq, Ya'qub and the tribes" width="850">
623
+ </p>
624
+ <p align="center">
625
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/genealogy-family.png" alt="Genealogies — a narrator's family read from the narrators' names: 'Umar b. al-Khattab, Ibn 'Umar, Salim and their sons" width="850">
626
+ </p>
627
+
628
+ ---
629
+
630
+ ## ⭐ Bookmarks
631
+
632
+ Every hadith card, narrator, scholar, term of Learn and chapter of Books has a ☆: one click keeps it among
633
+ your **Bookmarks**. There they live in folders of your own — nested as deep as you like, one bookmark in as
634
+ many folders as you want, dragged onto a folder to file it — each with a note of your own, found by words or by
635
+ kind, opened with a click where it belongs. They are kept in `bookmarks.json` in isnady's data folder (yours
636
+ alone, never published) and can be exported and imported as a file; a hadith is kept by its book and number, so a
637
+ bookmark survives a new import. `iy bookmark add hadith bukhari:1 --folder "Intention/Deeds" --note "…"`,
638
+ `iy bookmark list`, `iy bookmark folders`, `iy bookmark export file.json`.
639
+
576
640
  <p align="center">
577
- <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/learn.png" alt="Learn — the term mursal: Arabic, definition, related terms and source" width="850">
641
+ <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/bookmarks.png" alt="Bookmarks — folders on the left, a hadith, a narrator, a scholar and a term with their folders and a note" width="850">
578
642
  </p>
579
643
 
580
644
  ---
@@ -681,6 +745,8 @@ command line never loads Qt. Every command that takes a book accepts its full na
681
745
  | `iy tahric BOOK NUMBER` | `iy tahric bukhari 1` | Other narrations of a hadith in the imported books (takhrij) |
682
746
  | `iy stats [SECTION]` | `iy stats graders --book abudawud` | `corpus`, `narrators`, `chains`, `grades`, `books`, `graders`, `model`, `lab`; `--csv DIR`, `--recompute` |
683
747
  | `iy term [NAME]` | `iy term --search tadlis` | The glossary, English, Turkish or Arabic (`--lang tr`, `--lang ar`) |
748
+ | `iy tree WHICH [NAME]` | `iy tree family "Ibn Umar"` | Genealogies: `prophets`, `quraysh`, a narrator's `family`, his line of `learning` (`--depth`, `--width`) |
749
+ | `iy bookmark ACTION` | `iy bookmark add hadith bukhari:1 --folder Prayer` | Bookmarks: `list`, `folders`, `add`, `remove`, `export`, `import` |
684
750
  | `iy ai build` | `iy ai status` | Learn the meaning index from the imported texts |
685
751
  | `iy catalog list` | `iy catalog list --repo lk-hadith-corpus` | The books of the repository in use, and your own, with what is imported |
686
752
  | `iy catalog import ID` | `iy catalog import sahih_muslim --language tur` | Import a book; `--all` imports every one; `remove`, `add`, `delete` manage the list |
package/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * database (used by both the Python and JavaScript packages) exists.
7
7
  */
8
8
 
9
- export const version = "0.2.0";
9
+ export const version = "0.2.2";
10
10
  export const name = "isnady";
11
11
 
12
12
  /** Returns basic package information. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isnady",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Hadith search with full isnad chains, narrator biographies, jarh wa ta'dil verdicts and reliability scores",
5
5
  "type": "module",
6
6
  "main": "./index.js",