divan/api/src
Anas Rashid 0a507d1fdd E-books as a section of every poet, with tabs and covers; a right-to-left PDF reader; page bookmarks; book details
- ای بکس card beside the poet's books and genres on every poet page; /<poet>/ebooks with tabs
  پی ڈی ایف (PDF) / ای پب (ePUB) / یونیکوڈ متن (Unicode) (+ آرکائیو when present) and a grid of covers.
- Covers: made in the moderator's browser from a PDF's first page (pdf.js) or an EPUB's cover (epub.js); archive.org's
  thumbnail; a styled card for text; or the moderator's own image. سرورق بنائیں on existing books.
- PDF reader (pdf.js) reading right to left: next page to the left (button, ← key, left half), facing pages with the
  cover alone then 2|3; left to right for LTR books; full screen (F); opens in a new tab; byte-range requests.
- Page bookmarks in the reader's library (kind 'page'), listed in نشانات and opening at that page.
- Details: writer as printed, co-authors (linked to poets on the site, who list the book too; new names kept as text),
  language, reading direction (RTL/LTR), extra tags (on tag pages), source, copyright, note; in upload and review.
- Word lookup and selection menu only on reading text, not menus, buttons or tabs.
- Schema: the library kind check lists 'page' where it is defined (it was re-added without it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 15:16:06 +02:00
..
admin-cli.ts Admin panel: users, password reset on request, disable, roles, delete, audit log (#27) 2026-10-08 23:08:19 +02:00
admin.test.ts Admin panel: users, password reset on request, disable, roles, delete, audit log (#27) 2026-10-08 23:08:19 +02:00
admin.ts Permissions (IAM): L2/L1 moderators and scoped grants (#29) 2026-10-08 23:13:06 +02:00
auth.test.ts Profile: full name and bio (#42) 2026-10-08 23:31:19 +02:00
auth.ts Publishing commits to divan-data git (#34); public names only; 'last edited' on poems 2026-10-09 00:37:39 +02:00
db.ts Divan v2: Node.js API + PostgreSQL (proof of concept) 2026-10-08 20:24:20 +02:00
dict-sync.ts Word dictionary: full Wiktionary data for Urdu, Persian and Arabic in PostgreSQL, kept in sync 2026-10-08 21:48:56 +02:00
dictionary.test.ts Word dictionary in full: all senses with usage examples, every IPA with dialect labels, every recording, full etymologies, synonyms, derived and related words 2026-10-08 22:27:37 +02:00
dictionary.ts Word dictionary in full: all senses with usage examples, every IPA with dialect labels, every recording, full etymologies, synonyms, derived and related words 2026-10-08 22:27:37 +02:00
diff.ts Moderation: versions of works and the L2 -> L1 -> admin pipeline (#31, #51) 2026-10-09 00:31:47 +02:00
divantext.test.ts Urdu content editor on Tiptap (#28): structured editing of Divan text, with the source view 2026-10-09 00:53:17 +02:00
divantext.ts Urdu content editor on Tiptap (#28): structured editing of Divan text, with the source view 2026-10-09 00:53:17 +02:00
ebooks.test.ts E-books as a section of every poet, with tabs and covers; a right-to-left PDF reader; page bookmarks; book details 2026-10-09 15:16:06 +02:00
ebooks.ts E-books as a section of every poet, with tabs and covers; a right-to-left PDF reader; page bookmarks; book details 2026-10-09 15:16:06 +02:00
git.ts Publishing commits to divan-data git (#34); public names only; 'last edited' on poems 2026-10-09 00:37:39 +02:00
import.ts Tags (#52): typed tags on poets, books/chapters, works and couplets; tag pages; tag: in search 2026-10-09 14:42:19 +02:00
library.test.ts Tags (#52): typed tags on poets, books/chapters, works and couplets; tag pages; tag: in search 2026-10-09 14:42:19 +02:00
library.ts E-books as a section of every poet, with tabs and covers; a right-to-left PDF reader; page bookmarks; book details 2026-10-09 15:16:06 +02:00
moderation.test.ts Tags (#52): typed tags on poets, books/chapters, works and couplets; tag pages; tag: in search 2026-10-09 14:42:19 +02:00
moderation.ts Fix publishing: a constant named URL hid the global URL (default divan-data folder), so every publish failed with 'URL is not a constructor' 2026-10-09 14:58:56 +02:00
order.test.ts E-books: a poet's books as PDF, EPUB, text (DOCX made text) or archive.org items, uploaded with their own permission and approved like any change 2026-10-09 14:52:23 +02:00
order.ts Arranging content (#41): reorder a book or section's works and sub-sections, a poet's books 2026-10-09 14:02:26 +02:00
owned.ts Publishing commits to divan-data git (#34); public names only; 'last edited' on poems 2026-10-09 00:37:39 +02:00
permissions.test.ts Permissions (IAM): L2/L1 moderators and scoped grants (#29) 2026-10-08 23:13:06 +02:00
permissions.ts E-books: a poet's books as PDF, EPUB, text (DOCX made text) or archive.org items, uploaded with their own permission and approved like any change 2026-10-09 14:52:23 +02:00
search.test.ts Search: poets/writers and books separate from content; numbered pages; filter by authors with Urdu input 2026-10-09 00:14:26 +02:00
search.ts Search: poets/writers and books separate from content; numbered pages; filter by authors with Urdu input 2026-10-09 00:14:26 +02:00
server.ts E-books: a poet's books as PDF, EPUB, text (DOCX made text) or archive.org items, uploaded with their own permission and approved like any change 2026-10-09 14:52:23 +02:00
site.test.ts Home page sections (site permission): rename, add, remove and reorder sections; chosen poets; sort by hand, alphabetically or by timeline 2026-10-09 14:24:43 +02:00
site.ts Home page sections (site permission): rename, add, remove and reorder sections; chosen poets; sort by hand, alphabetically or by timeline 2026-10-09 14:24:43 +02:00
tags.test.ts Tags (#52): typed tags on poets, books/chapters, works and couplets; tag pages; tag: in search 2026-10-09 14:42:19 +02:00
tags.ts E-books as a section of every poet, with tabs and covers; a right-to-left PDF reader; page bookmarks; book details 2026-10-09 15:16:06 +02:00
urdu.test.ts Search: highlighted matches, matching couplet or prose excerpt, exact phrase first; opened pages keep the highlight (?hl=) 2026-10-08 21:30:42 +02:00
urdu.ts Search: highlighted matches, matching couplet or prose excerpt, exact phrase first; opened pages keep the highlight (?hl=) 2026-10-08 21:30:42 +02:00