divan/web/package.json
Anas Rashid 09336ead0e 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
- ebooks permission (create, per poet); the upload button only for L2/L1 moderators with it (and admins).
- Files kept by SHA-256 in DIVAN_FILES_DIR (ab/cd/<sha>.<ext>; one copy per file), up to 100 MB, kind read from
  the bytes; details in PostgreSQL indexed by poet and trigram (title, text of text books); search shows e-books.
- An upload is a revision (entity 'ebook') through L2 -> L1 -> admin; unpublished files only for moderators;
  approved details committed to divan-data (divan/<poet>/ebooks/<id>.txt).
- ای بکس on the poet page; /ebook/<id>: PDF in the browser viewer, EPUB with epub.js, text, archive.org embed.
- README: e-books and the file store (attach growable block storage or an S3 bucket via rclone).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 14:52:23 +02:00

24 lines
651 B
JSON

{
"name": "divan-web",
"private": true,
"type": "module",
"description": "Divan website (Astro, server-rendered) over the Divan API",
"scripts": {
"dev": "astro dev --port 4200",
"build": "astro build",
"start": "node dist/server/entry.mjs"
},
"dependencies": {
"@astrojs/node": "^11.1.7",
"@fontsource/noto-naskh-arabic": "^5.3.0",
"@fontsource/noto-nastaliq-urdu": "^5.3.0",
"@tiptap/core": "^3.31.4",
"@tiptap/extension-document": "^3.31.4",
"@tiptap/extension-text": "^3.31.4",
"@tiptap/extensions": "^3.31.4",
"@tiptap/pm": "^3.31.4",
"astro": "^7.3.8",
"epubjs": "^0.3.93"
}
}