isnady 0.3.2 → 0.3.4

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 +54 -15
  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.3.2-1D4777?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI">
11
+ <img src="https://img.shields.io/badge/PyPI-v0.3.4-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.3.2-14304F?style=for-the-badge&logo=npm" alt="npm">
16
+ <img src="https://img.shields.io/badge/npm-v0.3.4-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.3.2).** Search, chains of transmission, narrators, books, scholars, statistics and
48
+ > **Pre-alpha (0.3.4).** 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
 
@@ -204,9 +204,11 @@ administrator prompt on Windows). If an old copy starts even for `iy update`, ru
204
204
 
205
205
  ## 🚀 Quick Start
206
206
 
207
- 1. **Open isnady** — `iy`, or the desktop application.
207
+ 1. **Open isnady** — `iy`, or the desktop application. The first time, with no books yet, it offers to import
208
+ isnady-data at once, in the background.
208
209
  2. **File → Data Sources.** The repository is already chosen: **isnady-data**. Tick the books and
209
- the languages you want and press **Import** — or **Import all**.
210
+ the languages you want and press **Import** — or **Import all**. **Languages for every book** adds a language to
211
+ all the books that have it (or takes it out of all of them) in one step.
210
212
  3. **Import the narrators too** — Ibn Hajar's *Taqrib* for the Sunni books, al-Najashi's *Rijal*
211
213
  for the Shia books — and every name in every chain is matched to its narrator.
212
214
  4. **Search**, open a chain, open a narrator, read a book.
@@ -340,6 +342,8 @@ without authentication (credentials are never stored), are read as well.
340
342
  | **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 |
341
343
  | **Grades** | Shown under each hadith with the scholar's name, exactly as given, and explained when you point at them |
342
344
  | **Highlighting** | On the original, diacritised text, diacritics included |
345
+ | **Recent searches** | The last twenty, under the examples on the start page — a click searches again, one link forgets them all; kept with your profile. `iy search --recent`, `iy search --clear-recent` |
346
+ | **Home** | ⌂ beside the box (Alt+Home) brings the page back to how it opens: no words, every filter at its default. Esc empties the box |
343
347
  | **Narrators and scholars** | The same box finds narrators — Sunni and Shia, each marked — and scholars, by Arabic or Latin name |
344
348
 
345
349
  Results appear at once and fill in as you read; the window never waits for them.
@@ -371,7 +375,17 @@ Sahih al-Bukhari 1
371
375
  In the window, each result shows its chain as a row of names ending at whom it reaches, and
372
376
  **View chain** opens it as a timeline from the book to the Prophet ﷺ — or, in a Shia book, to the
373
377
  Imam — with the Arabic text below: the chain in lighter ink, the text of the hadith in full ink.
374
- Every link says who the narrator is and what his critic says of him; a click opens him.
378
+ Every link says who the narrator is and what his critic says of him; a click anywhere on him opens him, and pointing
379
+ at him says how he was identified (by his name, by the narrators around him, or as the famous one of that name). A
380
+ name not identified looks for its narrators on Search; the book at the top opens the hadith in its book; the
381
+ Prophet ﷺ at the end opens his life in the Genealogies (on road B, the Imam the chain reaches). The chains drawn
382
+ on the cards of Search and Books open the same way, name by name, and every teacher and student named in a life
383
+ looks for himself among the narrators.
384
+
385
+ Choose a book and a number, or let isnady choose: the number field shows the book's range ("1 – 7563 · 7,583
386
+ hadith"), the arrow keys and the mouse wheel go to the next or the previous hadith, typing lists the numbers that
387
+ begin so, a number the book does not have offers the nearest, and **Random hadith** picks one. `iy chain kafi`
388
+ prints the range.
375
389
 
376
390
  <p align="center">
377
391
  <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/chain.png" alt="Isnad Chains — the chain of Sahih al-Bukhari 1 as a timeline from the book to the Prophet" width="850">
@@ -488,8 +502,15 @@ The **Narrators** page lists every narrator of the imported rijal works — **Al
488
502
  "al-Hasan" — and isnady reads each name against the Taqrib (or al-Najashi on road B) by the name itself, the
489
503
  generation, the books, and then by its neighbours: whom the same pair of teacher and student is in the chains where
490
504
  they are named in full; a client named "mawla of X" by his patron; the well-known men a bare name means in a given
491
- circle (Ibrahim from 'Alqama is al-Nakha'i, Abu Ishaq from al-Bara' is al-Sabi'i). About 218,000 links are
492
- identified this way, more than half of every Sunni chain.
505
+ circle (Ibrahim from 'Alqama is al-Nakha'i, Abu Ishaq from al-Bara' is al-Sabi'i, al-Humaydi's Sufyan is Ibn
506
+ 'Uyayna, Abu Nu'aym's al-Thawri, "Hisham from his father" Hisham b. 'Urwa); and last, a bare name still open is the
507
+ famous man of that name when nothing else excludes him ("Anas" Anas b. Malik, "Malik" Malik b. Anas, "Ibn 'Umar"
508
+ 'Abd Allah b. 'Umar). The unnamed men of the Taqrib ("'Ata' b. Yasar from one of the Companions") are never matched
509
+ to a name. On road B the same help reads al-Kulayni's chains: his teachers named short ("'Ali b. Ibrahim" b. Hashim
510
+ al-Qummi, "Muhammad b. Yahya" al-'Attar), the nisbas and kunyas the chains use alone (al-Sakuni, al-Nawfali, Abu
511
+ Basir, al-Halabi, Ibn Faddal) and "from his father" read from the son's full name ("'Ali b. Ibrahim from his father"
512
+ is Ibrahim b. Hashim). About 273,000 links are identified this way — two of every three in the Sunni chains, one in
513
+ two in the Shia ones.
493
514
 
494
515
  Sunni narrators filter by tabaqa, rank and book; Shia narrators by the Imami assessment.
495
516
 
@@ -523,7 +544,8 @@ Household of the Prophet ﷺ, the Companions who narrated most, the Companions o
523
544
  Ansar, the Tribes) and under them the musnad of each Companion — 1,252 in all, Abu Bakr al-Siddiq's first —; al-Darimi
524
545
  in its 24 books (Introduction, Purification, Prayer …) and 1,382 chapters (bab). The parts and books are named in
525
546
  the interface language; the musnad of every Companion in Turkish and English too ("Hz. Ebû Bekir es-Sıddîk (r.a.)
526
- müsnedi", "Musnad of Abu Bakr al-Siddiq (RA)"), al-Darimi's chapters in the Arabic of the book.
547
+ müsnedi", "Musnad of Abu Bakr al-Siddiq (RA)"), and al-Darimi's 1,382 chapters as well ("Temizlik", "Purification"…
548
+ "Abdestin fazileti", "The virtue of ablution").
527
549
 
528
550
  The shelf holds the Sunni and the Shia books together, each under its own heading — *All*, *Sunni*
529
551
  or *Shia* at the top shows one of them alone — and every Shia book carries a gold *Shia* tag. Books
@@ -667,13 +689,17 @@ Umar"`, `iy tree learning al-Zuhri --depth 2 --width 4`.
667
689
 
668
690
  ## ⭐ Bookmarks
669
691
 
670
- Every hadith card, narrator, scholar, term of Learn and chapter of Books has a ☆: one click keeps it among
671
- your **Bookmarks**. There they live in folders of your own — nested as deep as you like, one bookmark in as
692
+ Every hadith card, narrator, scholar, term of Learn, chapter of Books and place in the Genealogies has a ☆: one
693
+ click keeps it among your **Bookmarks**, and the star says what it keeps ("Add this narrator to your bookmarks").
694
+ Each bookmark shows its kind — Hadith, Narrator, Scholar, Term, Chapter, Genealogy — and a line on what it is (a
695
+ narrator's road, tabaqa, death and verdict; which tree); the list filters by kind, and a narrator kept as a
696
+ narrator and the same man kept as a place in his family tree are two bookmarks. There they live in folders of your own — nested as deep as you like, one bookmark in as
672
697
  many folders as you want, dragged onto a folder to file it — each with a note of your own, found by words or by
673
698
  kind, opened with a click where it belongs. They are kept in `bookmarks.json` in isnady's data folder (yours
674
699
  alone, never published) and can be exported and imported as a file; a hadith is kept by its book and number, so a
675
700
  bookmark survives a new import. `iy bookmark add hadith bukhari:1 --folder "Intention/Deeds" --note "…"`,
676
- `iy bookmark list`, `iy bookmark folders`, `iy bookmark export file.json`.
701
+ `iy bookmark list`, `iy bookmark list tree`, `iy bookmark add tree prophets:musa`, `iy bookmark folders`,
702
+ `iy bookmark export file.json`.
677
703
 
678
704
  <p align="center">
679
705
  <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">
@@ -754,6 +780,18 @@ nothing to restart. `iy config set view.ui_language tr`. The hadith texts keep t
754
780
  <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/preferences.png" alt="Preferences — font, size, line spacing and colour for each script" width="760">
755
781
  </p>
756
782
 
783
+ **Back and forward**, as in a browser: ◀ ▶ under the name in the sidebar, Alt+Left / Alt+Right, the mouse's back
784
+ and forward buttons — every narrator, chain, book, scholar, term and tree opened is a step, and pointing at the
785
+ button says where it goes.
786
+
787
+ **A new version starts clean:** what the earlier version computed (`cache/`, `derived/`) is deleted once and computed
788
+ again, and the footer says so; the settings, bookmarks, profiles, recent searches, the database and the downloaded
789
+ works are kept. **Help → Check for Updates** asks PyPI and npm (whichever isnady is installed from — both, ticked,
790
+ when both are behind) and shows what is new; `iy update --check`, `iy update --npm`. A page that cannot be built
791
+ shows a plain card instead of stopping isnady, the details go to `isnady.log` in the data folder, and an import that
792
+ was cut short is named on the Search page at the next start. On the very first start, with no books yet, isnady
793
+ offers to import isnady-data in the background, the progress in the bar at the bottom.
794
+
757
795
  **Settings → Books and languages** switches imported books on and off (Sunni and Shia apart) and
758
796
  chooses the languages the texts are shown in; the others are folded behind an arrow on each hadith.
759
797
 
@@ -798,8 +836,8 @@ command line never loads Qt. Every command that takes a book accepts its full na
798
836
  | Short | Example | What it does |
799
837
  |:------|:-----|:-------------|
800
838
  | `iy` | `isnady` | Open the window |
801
- | `iy search WORDS` | `iy search niyet --book abudawud` | Search; `--mode all\|any\|phrase\|meaning`, `--whole-words`, `--book`, `--language`, `--limit`; `--in narrators\|scholars`, `--tradition sunni\|shia` |
802
- | `iy chain BOOK NUMBER` | `iy chain kafi 5:1740` | One chain, narrator by narrator, with who each one is and whom it reaches; `--raw` adds the wording |
839
+ | `iy search WORDS` | `iy search niyet --book abudawud` | Search; `--mode all\|any\|phrase\|meaning`, `--whole-words`, `--book`, `--language`, `--limit`; `--in narrators\|scholars`, `--tradition sunni\|shia`; `--recent`, `--clear-recent` |
840
+ | `iy chain BOOK NUMBER` | `iy chain kafi 5:1740` | One chain, narrator by narrator, with who each one is and whom it reaches; `--raw` adds the wording; without a number, the book's range |
803
841
  | `iy isnads` | `iy isnads --rebuild` | Read every chain and report per book: split, reaching the Prophet or a Ma'sum, identified |
804
842
  | `iy narrator NAME` | `iy narrator "Ibn Umar"` | A narrator: his critic's verdict (Ibn Hajar's rank, or the Imami terms), tabaqa, death year, books; `--limit 1` adds teachers, students and hadith |
805
843
  | `iy book [KEY [CHAPTER]]` | `iy book bukhari 2` | The books; a book's chapters; a chapter read in order |
@@ -814,6 +852,7 @@ command line never loads Qt. Every command that takes a book accepts its full na
814
852
  | `iy ai build` | `iy ai status` | Learn the meaning index from the imported texts |
815
853
  | `iy catalog list` | `iy catalog list --repo lk-hadith-corpus` | The books of the repository in use, and your own, with what is imported |
816
854
  | `iy catalog import ID` | `iy catalog import sahih_muslim --language tur` | Import a book; `--all` imports every one; `remove`, `add`, `delete` manage the list |
855
+ | `iy catalog languages` | `iy catalog languages add tr en` | One language for every book: the list, `add`, `remove` (Arabic stays) |
817
856
  | `iy repo [list\|use\|show\|add\|remove]` | `iy repo add ~/isnady-data` | The data repositories: isnady-data (default), the optional ones, yours — a GitHub or Hugging Face address, a URL, or a folder |
818
857
  | `iy database [use FILE]` | `iy database use isnady-db-<date>.zip` | A ready database from a file; your own is kept beside it |
819
858
  | `iy import FORMAT FILE-OR-URL` | `iy import isnady ~/my_book/book.json` | Import a file of your own; `--book`, `--language`, `--license`, `--user`, `--token-env`, `--api-key-env` |
@@ -823,7 +862,7 @@ command line never loads Qt. Every command that takes a book accepts its full na
823
862
  | `iy datadir [FOLDER]` | `iy datadir /data/isnady` | Show or move the data folder; `--as-is`, `--default` |
824
863
  | `iy config list\|get\|set\|reset` | | Settings — the same as Edit → Preferences |
825
864
  | `iy shortcut` | `iy shortcut --no-desktop` | A desktop and applications-menu shortcut |
826
- | `iy update` | | Update every copy of isnady where it is installed |
865
+ | `iy update` | `iy update --check` | Update every copy of isnady where it is installed; `--check` only looks (PyPI and npm, what is new); `--npm` the npm package |
827
866
  | `iy doctor` | | Every copy of isnady on this computer and which one each command starts |
828
867
  | `iy -V` / `iy -h` | | Version / help |
829
868
 
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.3.2";
9
+ export const version = "0.3.4";
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.3.2",
3
+ "version": "0.3.4",
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",