cdfa1ac5b218ce61b00e7cc8c8dd92d971945216
Three fixes to PDF chapter extraction quality: 1. Page ordering: parse page number from pdfcpu filename (out_Content_page_N.txt) instead of using lexicographic sort index — fixes chapters bleeding into each other (e.g. Prologue text appearing inside Chapter 1). 2. Windows-1252 chars: map bytes 0x91-0x9F to proper Unicode (curly quotes U+2018/ U+2019/U+201C/U+201D, em-dash U+2014, etc.) instead of raw Latin-1 control bytes that rendered as ◆ in the browser. 3. Chapter header cleanup: skip the first page of each bookmark range (decorative title art page) and strip any run-on title fragment at the start of the first body page (e.g. 'for New Journeys!I stood atop...' → 'I stood atop...'). The remaining sentence truncation is a fundamental limitation of this PDF's PUA-encoded body font (C2_1/Literata) — those glyphs cannot be decoded without the publisher's private ToUnicode mapping.
LibNovel
Self-hosted audiobook platform. Go backend + SvelteKit UI + MinIO/PocketBase/Meilisearch.
Requirements
- Docker + Docker Compose
- just
- Doppler CLI
Setup
doppler login
doppler setup # project=libnovel, config=prd
Usage
just up # start everything
just down # stop
just logs # tail all logs
just log backend # tail one service
just build # rebuild images
just restart # down + up
just secrets # view/edit secrets
Secrets
Managed via Doppler (project=libnovel, config=prd). No .env files.
To add or update a secret:
doppler secrets set MY_SECRET=value
Description