How ssnangua/colortxt works
ColorTxt is a desktop novel-reading app for local text and converted ebook files, with book-source discovery and AI-assisted reading. The main workflow is to open a file, convert supported ebook formats to Markdown, prepare display text and chapter mappings, then read and annotate it. Separate branches provide online book search, dictionary lookup, voice reading, and AI tools. Paths and the display-pipeline link are supported by the tree and sampled source; other feature connections reflect README capabilities, not inspected call sites.
Main entry points: fileOpenService.ts Open files · App.vue Reader · convertEbookToMarkdown.ts Ebook conversion · useTxtStreamPipeline.ts Display preparation
Components 20
Desktop shell
- Reader
src/renderer/src/App.vue - Open files
src/renderer/src/services/fileOpenService.ts
Reading experience
- Ebook conversion
src/renderer/src/ebook/convert/convertEbookToMarkdown.ts - Format parsers
src/renderer/src/ebook/convert/parseEpub.ts - Display preparation
src/renderer/src/composables/useTxtStreamPipeline.ts - Reader formatting
src/renderer/src/reader/readerDisplayPipeline.ts - Reading view
src/renderer/src/components/ReaderMain.vue - Annotations
src/renderer/src/composables/useReaderAnnotations.ts
Book discovery
- Book-source UI
src/renderer/src/bookSource/components/FindBookPanel.vue - Multi-source search
src/main/bookSource/searchService.ts - Source rule engine
src/main/bookSource/engine/webBook.ts
AI features
- AI assistant
src/renderer/src/components/AiAssistantPanel.vue - AI services
src/main/registerAiIpc.ts - Character portraits
src/renderer/src/composables/useCharacterPortraitRetrieve.ts - Book vector index
src/renderer/src/ai/buildBookVectorIndex.ts
Reading services
- Dictionary lookup
src/main/dictionary/dictionaryService.ts - Voice reading
src/renderer/src/services/voiceRead/voiceReadEngineRouting.ts - Speech providers
src/main/voiceRead/providerRegistry.ts - WebDAV sync
src/main/webdav/registerWebDavIpc.ts
Other components
- Reader user
Connections 18
- Reader user → Reader: uses
- Reader → Open files: opens files
- Open files → Ebook conversion: converts ebooks
- Ebook conversion → Format parsers: parses formats
- Open files → Display preparation: loads text
- Display preparation → Reader formatting: formats lines
- Reader formatting → Reading view: provides display text
- Reading view → Annotations: supports marking
- Reader user → Book-source UI: searches books
- Book-source UI → Multi-source search: starts search
- Multi-source search → Source rule engine: queries sources
- Reader user → AI assistant: asks questions
- AI assistant → AI services: requests AI
- Character portraits → Book vector index: builds index
- Reader user → Dictionary lookup: looks up words
- Reader user → Voice reading: starts narration
- Voice reading → Speech providers: routes synthesis
- Reader user → WebDAV sync: syncs settings