Commit Graph

4345 Commits

Author SHA1 Message Date
a165f63ece Merge pull request 'One keyboard design across the site' (#105) from feature/unified-keyboard into main
Reviewed-on: #105
2026-10-09 23:00:56 +00:00
e9eb3c6f88 Merge pull request 'Text size slider in the display settings' (#104) from feature/text-size into main
Reviewed-on: #104
2026-10-09 23:00:44 +00:00
Anas Rashid
24fcbccccd One keyboard design everywhere: fixed rows that never wrap, a letter a tenth of the row, shift and delete a bit wider, the space bar filling its row; up to 640px wide and centred, in the header, under a field, in the note dialog and docked in the editor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 01:00:03 +02:00
Anas Rashid
61321b5130 Display settings: text size slider (90%-150%) beside Naskh's weight; the whole page scales, remembered, applied before paint
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:58:01 +02:00
77c07c1552 Merge pull request 'Attribution: Divan by Muhammad Anas Rashid' (#103) from feature/owner-name into main
Reviewed-on: #103
2026-10-09 22:54:57 +00:00
fdb42e78d8 Merge pull request 'Profile: Urdu keyboard on name and bio; field keyboards open under the field' (#102) from feature/profile-keyboard into main
Reviewed-on: #102
2026-10-09 22:54:42 +00:00
0694a2ed4f Merge pull request 'Naskh weight slider in the display settings' (#101) from feature/naskh-weight into main
Reviewed-on: #101
2026-10-09 22:54:33 +00:00
586f49f836 Merge pull request 'How to use the site: readers, moderators and admins' (#100) from feature/help-guide into main
Reviewed-on: #100
2026-10-09 22:54:27 +00:00
4fc4e644d6 Merge pull request 'Statistics for admins: views, visitors, moderation, accounts (no cookies)' (#99) from feature/stats into main
Reviewed-on: #99
2026-10-09 22:54:19 +00:00
Anas Rashid
f037968ef2 Attribution: Divan by Muhammad Anas Rashid (NOTICE, TRADEMARKS, README, brand.ts)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:53:33 +02:00
Anas Rashid
de2e3eb751 Profile: the Urdu keyboard and Roman typing on the name and bio; a field's keyboard opens right under that field (was at the top of the page, out of sight) and goes back to the header when closed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:53:08 +02:00
Anas Rashid
de1d7eb0a0 Display settings: a slider for Naskh's weight (regular to bold), heavier text for reading on phones; remembered, applied before paint; off for Nastaliq
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:50:24 +02:00
Anas Rashid
b2461e228a How to use the site: accounts and tag search for readers; moderators' tools (pipeline, editing, history and revert, arranging, tags, e-books, home page) and admins' (users, roles, permissions, statistics), shown to those roles
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:46:56 +02:00
Anas Rashid
86b26ba737 Statistics for admins (#86): page views, daily visitors and referring sites without cookies or stored addresses (one-day salted hash); moderation activity, accounts and library counts; /admin/stats; privacy page updated
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:45:08 +02:00
650b684ae8 Merge pull request 'Version history: compare versions, revert through the pipeline, log filters' (#98) from feature/version-history into main
Reviewed-on: #98
2026-10-09 22:43:15 +00:00
Anas Rashid
5c8559c8e9 Version history (#51): compare any two versions of a work, arrangement or tags (0 = the Wikisource text), bring an old version back as a draft through the pipeline, filter the moderation log by person, kind and step; one history table for the three pages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:42:26 +02:00
709b5d4594 Merge pull request 'SEO: page descriptions, canonical URLs, structured data' (#97) from feature/seo-pages into main
Reviewed-on: #97
2026-10-09 22:36:51 +00:00
Anas Rashid
46b3372433 SEO (#83): descriptions for works (opening couplet), books, poets, e-books, e-book and tag pages; canonical URLs on every page; structured data for poets (Person), books (CollectionPage) and e-books (Book)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:36:09 +02:00
7d398cc19d Merge pull request 'Tags at the end of a page: «ٹیگ» at the start of the line, the tags following it on the same line and wrapping across the width when opened (a sample on /design)' (#96) from anas/tags-help into main
Reviewed-on: #96
2026-10-09 22:25:43 +00:00
Anas Rashid
aa57dcd78c Tags at the end of a page: «ٹیگ» at the start of the line, the tags following it on the same line and wrapping across the width when opened (a sample on /design)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:24:30 +02:00
faf8931f44 Merge pull request 'Tags folded at the end of a page; a how-to-use page instead of the hint' (#95) from anas/tags-help into main
Reviewed-on: #95
2026-10-09 22:16:23 +00:00
Anas Rashid
f20cc25080 Tags folded at the end of a page; a "how to use" page instead of the hint
- A page's tags (poem, book, poet) move from the top into a closed «ٹیگ» section with their count at the end of the content, above previous/next; couplets keep their own tags
- The line under each poem ("select a word…") is gone; /help (استعمال کا طریقہ, linked in the footer) explains the features: search and Roman typing, meanings and the selection menu, a couplet's tools (and ⋯ on phones), notes, saved items and the word book, reading mode, fonts and colours, e-books, tags and RSS

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:13:45 +02:00
6fddb3b2e8 Merge pull request 'Phones: couplet tools on tap, e-book tabs on one line, a header that steps aside' (#94) from anas/mobile-polish into main
Reviewed-on: #94
2026-10-09 22:03:22 +00:00
Anas Rashid
bba1b93320 Phones: one ⋯ per couplet instead of four icons
On phones (up to 640px, or touch without a mouse) each couplet has one small ⋯ button, shown when the couplet is tapped; a set bookmark or note shows as a tiny glyph on it and keeps it visible. It opens one shared menu (a native popover, light-dismiss, arrow keys): bookmark or remove, note, share, download. Wider screens keep the four icons on hover. Couplets keep room under them on narrow screens, so the tools never sit on the text

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:02:56 +02:00
Anas Rashid
c2766922b5 Phones: couplet tools on tap, e-book tabs on one line, a header that steps aside
- Touch screens: a couplet's tools show when it is tapped (the couplet lightly marked; tapping again or another hides them); a set bookmark or note stays visible; couplets without either keep no room for the row (from a phone screenshot: every line had four icons under it)
- E-book format tabs stay on one line each; on phones without the English in brackets, scrolling sideways if needed
- Phones: the sticky header slides away while scrolling down and returns on the way up (a transform, so nothing jumps; not while the search box, keyboard or display menu is in use)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:59:46 +02:00
Anas Rashid
b7facedf95 Merge branch 'feature/sticky-header-footer' into main: sticky header, a footer that uses its width (#93) 2026-10-09 23:52:24 +02:00
Anas Rashid
65762f286f Footer: the made-in line starts at the logo's visible edge
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:52:15 +02:00
Anas Rashid
7077524dcb Footer: the made-in line on its own row below the logo and tagline
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:51:06 +02:00
Anas Rashid
93ccabdf29 Footer: no red دیوان heading (the logo says it; its tall letters collided with the tagline); the tagline beside the logo
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:50:35 +02:00
Anas Rashid
575ef530a7 Sticky header and a footer that uses its width
- The header stays at the top for readers and admins alike; its height never changes while scrolling (no jumps), it gains a translucent blurred background and a hairline shadow once scrolled. --header-h keeps anchors (#c6) and the editor's sticky toolbar and code panel clear of it. The header logo is a little smaller (48–60px)
- Footer: the brand (logo, name, tagline, the flag line) beside the links, the site's five links down one column with sources and code stacked beside them; licence, contact and attribution in a thin bottom bar. On phones the brand on top and the links in two columns

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:33:06 +02:00
9f61da990d Merge pull request 'robots.txt, sitemap.xml and an RSS feed of new content' (#92) from feature/robots-sitemap-rss into main
Reviewed-on: #92
2026-10-09 19:55:29 +00:00
Anas Rashid
0aa3d5979e Merge remote-tracking branch 'gitea/main' into feature/robots-sitemap-rss
# Conflicts:
#	web/src/components/Icon.astro
#	web/src/layouts/Base.astro
2026-10-09 21:50:15 +02:00
415459d55f Merge pull request 'Monitoring: /health for uptime checks, structured error logging, API errors without internal details' (#90) from feature/monitoring into main
Reviewed-on: #90
2026-10-09 19:49:08 +00:00
ce1adc4dcd Merge pull request 'Fix: stop tracking node_modules links (committed by mistake in #78)' (#89) from fix/untrack-node-modules into main
Reviewed-on: #89
2026-10-09 19:48:58 +00:00
b6f6c708a1 Merge pull request 'Launch: privacy and terms pages, Urdu 404 and error pages' (#88) from feature/launch-pages into main
Reviewed-on: #88
2026-10-09 19:48:33 +00:00
Anas Rashid
13eaf9fe90 robots.txt, sitemap.xml and an RSS feed of new versions, e-books, arrangements and tags (rss.xml, linked in the head and footer)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:32:55 +02:00
Anas Rashid
0511f7d2ee Monitoring: /health (site, API, database) for an uptime monitor; errors logged as one JSON line each by the API and the site; the API answers errors without internal details
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:30:09 +02:00
Anas Rashid
c20cbc17bf gitignore: comment on its own line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:29:40 +02:00
Anas Rashid
19aace12ff Stop tracking api/node_modules and web/node_modules: links to a local folder were committed by mistake in #78; .gitignore now ignores node_modules whether a folder or a link
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:29:27 +02:00
Anas Rashid
8ca681fc5b Launch pages: privacy (رازداری) and terms (استعمال کی شرائط) in Urdu, Urdu 404 and error pages; footer and sign-up links; contact in brand.ts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:26:45 +02:00
dd5771a128 Merge pull request 'Editor keyboard: docked at the bottom, following the writing cursor' (#79) from feature/floating-keyboard into main
Reviewed-on: #79
2026-10-09 16:18:35 +00:00
1de1da5410 Merge pull request 'Divan text: source link field ماخذ_لنک (was ماخذ_ربط)' (#78) from fix/source-link-name into main
Reviewed-on: #78
2026-10-09 16:18:28 +00:00
Anas Rashid
6a62df9ee0 Editor keyboard: docked at the bottom of the window and the page keeps the writing line above it; a close key; search keeps the header keyboard
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:15:26 +02:00
Anas Rashid
c1cf7c01a8 Divan text: the source link field is ماخذ_لنک (was ماخذ_ربط), in the converter, the editor's suggested fields, the guide and the examples
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 18:10:51 +02:00
bc51aa66ab Merge pull request 'Brand protection: GPL section 7 terms, TRADEMARKS.md, the name and taglines in one file' (#77) from feature/brand-protection into main
Reviewed-on: #77
2026-10-09 16:01:30 +00:00
Anas Rashid
d7da7458c0 Brand protection: GPL v3 section 7 additional terms (attribution, marked modified versions, no rights to the name and logos) in NOTICE; TRADEMARKS.md; the name and taglines in web/src/lib/brand.ts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:59:50 +02:00
30d66517bd Merge pull request 'Security: a made-up x-client-ip can no longer get round the sign-in and sign-up limits' (#76) from fix/trusted-client-ip into main
Reviewed-on: #76
2026-10-09 15:58:41 +00:00
Anas Rashid
ad7f3cb666 Rate limits can't be dodged with a made-up x-client-ip: the API believes it only from the site (DIVAN_SITE_KEY in x-site-key, timing-safe; this machine only when no key is set)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:38:55 +02:00
Anas Rashid
7c375d70b8 Merge branch 'feature/reading-mode' into main: reading mode, pages the browser's reader understands (#75) 2026-10-09 17:36:39 +02:00
Anas Rashid
792b68979b Reading mode, and pages the browser's reader understands
- Reading mode (the book button in a poem's, book's or poet's action row): the text, the breadcrumbs, the poet's name and the logo; no search, icons, buttons, couplet tools, tags or footer; larger verse. Kept across pages until the ✕ in the header; switched on before paint (no flash); only on readable pages, so search and tools are unaffected
- For Safari Reader, Firefox Reader View and Chrome's reading mode: a poem is one <article> (title, poet, text), with <meta name="author"> and schema.org CreativeWork data
- Printing shows the text and its source only

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 17:36:18 +02:00