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

📚 Bookish

Convertitore e reader di ebook self-hostato — Flask, Pandoc, WeasyPrint.

Carica un ebook in qualsiasi formato, convertilo in un altro, o leggilo direttamente nel browser con un reader completo.


Funzionalità

🔄 Convertitore

Formato Input Output
EPUB ✅ ✅
PDF ✅ ✅
DOCX ✅ ✅
Markdown ✅ ✅
Testo (TXT) ✅ ✅
HTML ✅ ✅
FB2 ✅ ✅
MOBI ✅ ❌
LaTeX ✅ ✅
  • Drag & drop upload
  • Barra progresso in tempo reale (SSE)
  • Download automatico del convertito

📖 Reader

  • EPUB via epub.js
  • PDF via pdf.js
  • Testo/Markdown/DOCX/FB2/HTML convertiti e renderizzati

Caratteristiche reader:

  • Zoom e regolazione font
  • Temi: chiaro, scuro, seppia
  • Ricerca full-text
  • Indice navigabile
  • Segnalibri e salvataggio posizione
  • Vista singola/doppia pagina
  • Navigazione tastiera
  • Fullscreen

⚙️ Motore di conversione

  • Pandoc come motore primario (decine di formati)
  • WeasyPrint per PDF con layout avanzato
  • python-docx per DOCX con stili
  • BeautifulSoup per post-processing HTML/tabelle

Requisiti

  • Python 3.10+
  • Pandoc (incluso via pypandoc-binary)
  • Librerie di sistema per WeasyPrint (libpango, libcairo)

Installazione

git clone http://192.168.0.183:8085/truetype/bookish.git
cd bookish
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Avvio

./run.sh
# oppure su porta specifica:
./run.sh 8080

L'app cerca automaticamente una porta libera a partire da quella specificata.

Apri il browser su http://localhost:5000 (o la porta assegnata).


Architettura

bookish/
├── app.py                     # Entry point
├── config.py                  # Configurazioni
├── requirements.txt
├── run.sh
├── bookish/
│   ├── __init__.py            # Flask factory
│   ├── routes/
│   │   ├── convert.py         # Upload, SSE progress, download
│   │   └── reader.py          # Reader view
│   ├── services/
│   │   ├── converter.py       # Conversione Pandoc + pipeline
│   │   ├── sse_manager.py     # SSE progress manager
│   │   └── formatter.py       # PDF/HTML post-processing
│   ├── templates/
│   │   ├── base.html          # Layout base
│   │   ├── index.html         # Convertitore
│   │   └── reader.html        # Reader
│   └── static/
│       ├── css/style.css
│       ├── js/main.js         # Frontend convertitore
│       ├── js/reader.js       # Frontend reader
│       └── logo.svg
├── uploads/                   # File caricati (temporanei)
├── converted/                 # File convertiti (temporanei)
└── docs/                      # Documentazione

Vedi docs/architecture.md per dettagli.


Deployment

Adatto per Proxmox LXC, Docker o VM leggera. Vedi docs/deploy.md.


Licenza

MIT

S
Description
Fork con Docker
Readme
710 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 43.1%
JavaScript 33.8%
CSS 11.9%
HTML 9%
Dockerfile 1.7%
Other 0.5%