12 Commits
Author SHA1 Message Date
truetype e62c50c616 docs: update all docs with SQLite, API, content_hash, reader features 2026-07-23 22:40:13 +02:00
truetype c1421665c0 feat: persistent SQLite storage for bookmarks + positions keyed by content_hash
- new bookish/services/database.py: SQLite with WAL mode, tables for
  bookmarks and reading_positions, keyed by content_hash (SHA256)
- new bookish/routes/api.py: REST endpoints for CRUD bookmarks
  and save/load reading position
- upload endpoint returns content_hash (SHA256 of file)
- reader route computes SHA256 and passes BOOKISH_HASH to template
- reader.js: bookmarks + positions use API server as primary storage
  with localStorage fallback for offline/resilience
- position saves debounced (1.5s) to avoid hammering server
- .gitignore: added bookish.db
2026-07-23 22:35:04 +02:00
truetype 13e02faa8b feat: toast notification + button flash on bookmark add
- showToast() displays a centered bottom toast for 3s
- flashBookmarkBtn() pulses the 🔖 button on bookmark creation
- CSS: .reader-toast with slide-up fade-in/out animation
- CSS: .bm-flash with @keyframes bmPulse (scale 1→1.25→1)
- user gets clear feedback when bookmark is saved
2026-07-23 21:38:30 +02:00
truetype 2a0a79b19e feat: add help button (?) in reader toolbar with shortcuts modal
- circled ? button in toolbar-right opens modal
- modal shows keyboard nav (arrows), bookmark (Ctrl+B),
  zoom (+/-), theme toggle, fullscreen (F), search (Ctrl+F)
- Esc or click outside closes modal
- CSS: btn-help circle style + help-overlay/help-modal layout
- responsive: max-width 440px, max-height 80vh
2026-07-23 07:18:33 +02:00
truetype 069d059ef1 feat: add bookmarks with toolbar button, sidebar list, and keyboard shortcut
- bookmark button 🔖 in toolbar (Ctrl+B / Cmd+B shortcut)
- addBookmark() saves current position (CFI for epub, page for pdf, scroll% for text)
- bookmarks stored in localStorage per-file (bookish_bookmarks_<filename>)
- sidebar Segnalibri tab shows clickable list with delete button
- gotoBookmark() restores the exact position per format type
- CSS styles for bm-entry, bm-label, bm-time, bm-delete
2026-07-22 23:06:59 +02:00
truetype af27d47d58 fix: resize SVG logo to viewBox 64x64 for small rendering
Original SVG at 512x512 had strokes 2-3px → at 28px (navbar)
and 16px (favicon) became ~0.1px, invisible. Simplified to
64x64 with chunky shapes and 2.5px strokes.
2026-07-22 18:01:04 +02:00
truetype 3a20b28bb9 reader: full viewport layout + width slider (40-100%) with localStorage persist
- fixed position reader-page fills entire viewport (below navbar)
- reader-view-wrapper centers content area with flexbox
- width slider in toolbar controls --reader-width CSS variable
- epub.js rendition.resize() on slider change for proper reflow
- text-viewer max-width: min(800px, 100% - 6rem) for readability
- preference saved in localStorage
2026-07-22 17:59:46 +02:00
truetype abfb183e7b fix: reader non trovava file upload (UUID prefix mismatch). Aggiunto stored_filename 2026-07-22 16:06:33 +02:00
truetype 45f08c8b9b fix: code review round 2 - logging, cleanup, TOC, simplify converter 2026-07-22 15:58:01 +02:00
truetype 723e50eb25 fix: code review findings - EPUB zoom, double fetch, pandoc flags, dead code 2026-07-22 15:53:54 +02:00
truetype 15eb4016de docs: add logo, README, architecture, deploy, wiki, analysis 2026-07-22 15:50:35 +02:00
truetype 32245f76ac Initial commit: Bookish Flask app for ebook conversion and reading 2026-07-22 15:45:07 +02:00