How 0xh4ku/manga-to-epub works
Manga to EPUB is a fixed-layout manga editor and batch-series workflow, not a general book compressor. Users import a PDF, archive, or image-based EPUB; inspect and adjust spine order, cover behavior, blanks, and pages; then export a validated EPUB for Apple Books. A separate human-reviewed diagnosis workflow finds possible spreads and suggests blank insertions, while series tools manage per-volume edits, presets, project state, and ready-only exports. The graph reflects README-documented capabilities; several controller implementations were not sampled, so uncertain internal call links are omitted.
Main entry points: layout_app.py Layout workbench · layout.py Layout model · layout_diagnosis_controller.py Diagnosis review · page_factory.py EPUB pages
Components 23
Import and layout
- Layout workbench
src/manga_pdf_to_epub/gui/layout_app.py - Archive sources
src/manga_pdf_to_epub/sources/archive.py - PDF extraction
src/manga_pdf_to_epub/pdf/image_extraction.py - Layout model
src/manga_pdf_to_epub/models/layout.py - Spread preview
src/manga_pdf_to_epub/gui/layout_preview_controller.py - Page editing
src/manga_pdf_to_epub/gui/layout_edit_controller.py - Book metadata
src/manga_pdf_to_epub/gui/layout_inspector_controller.py
Spread diagnosis
- Diagnosis review
src/manga_pdf_to_epub/gui/layout_diagnosis_controller.py - Diagnosis preview
src/manga_pdf_to_epub/gui/layout_diagnosis_view_controller.py - Spread discovery
src/manga_pdf_to_epub/diagnosis/spread_continuity/scan_pdf_adjacent.py - Spread scoring
src/manga_pdf_to_epub/diagnosis/spread_continuity/lib/scoring/pair_scoring.py - Insert scoring
src/manga_pdf_to_epub/diagnosis/insert_point_scorer/scoring.py
Series workflow
- Series management
src/manga_pdf_to_epub/gui/layout_series_controller.py - Series export
src/manga_pdf_to_epub/gui/layout_series_workflow.py - Series project
src/manga_pdf_to_epub/models/series.py
EPUB output
- Lossless CLI
src/manga_pdf_to_epub/cli/pdf_to_epub_lossless.py - EPUB pages
src/manga_pdf_to_epub/epub/page_factory.py - EPUB writer
src/manga_pdf_to_epub/epub/writer.py - EPUB validation
src/manga_pdf_to_epub/epub/validation.py
Other components
- Manga editor
- Source files
- Fixed-layout EPUB
- Apple Books
Connections 31
- Manga editor → Layout workbench: opens editor
- Source files → Layout workbench: selects source
- Layout workbench → Archive sources: loads archives
- Layout workbench → PDF extraction: loads PDF pages
- Archive sources → Layout model: provides pages
- PDF extraction → Layout model: provides images
- Layout workbench → Layout model: manages layout
- Layout workbench → Spread preview: refreshes preview
- Layout workbench → Page editing: dispatches edits
- Layout workbench → Book metadata: edits metadata
- Layout model → Spread preview: supplies pages
- Page editing → Layout model: changes spine
- Manga editor → Diagnosis review: reviews spreads
- Diagnosis review → Spread discovery: requests scan
- Spread discovery → Spread scoring: scores pairs
- Diagnosis review → Insert scoring: requests suggestions
- Diagnosis review → Diagnosis preview: shows review
- Diagnosis review → Layout model: inserts blank
- Manga editor → Series management: manages volumes
- Series management → Series project: updates project
- Series management → Series export: starts export
- Series export → Layout model: uses volume layout
- Manga editor → Lossless CLI: runs conversion
- Source files → Lossless CLI: provides input
- Layout workbench → EPUB pages: builds EPUB pages
- Lossless CLI → EPUB pages: builds EPUB pages
- Book metadata → EPUB pages: supplies metadata
- EPUB pages → EPUB writer: provides book items
- EPUB writer → EPUB validation: validates output
- EPUB validation → Fixed-layout EPUB: reports valid EPUB
- Fixed-layout EPUB → Apple Books: opens for reading