BUCKYVERSE

Codexis Book Building System

Architecture Overview

The Codexis system is a comprehensive book publishing toolchain that converts source documents (likely LaTeX) into multiple output formats with quality assurance features. Here's a breakdown:

  1. Architecture Overview:

    • The system follows a modular architecture with specialized components for each step of the publishing process
    • BookBuilderOrchestrator is the main entry point that orchestrates all processes
    • Each component handles specific aspects of the build process (PDF generation, ebook formats, quality checks)
  2. Core Components:

    • BookBuilderCore: Core framework for the book building process
    • QualityChecker: Runs validation on generated files
    • EbookBuilder: Generates various ebook formats (EPUB, MOBI, KFX)
    • PDFBuilder: Creates PDF output
    • MarkdownBuilder: Generates markdown for documentation
    • WikiJSBuilder: Creates Wiki.js compatible content
  3. Quality Checking Process:

    • EPUB Validation: Uses epubcheck to validate EPUB files against the EPUB standard, outputting results to XML
    • Accessibility Testing: Uses ACE (Accessibility Checker for EPUB) to test accessibility compliance
    • PDF Comparison: Uses diff-pdf to compare current PDF with previous version to highlight changes
  4. Output Formats:

    • PDF: Main output format generated directly from LaTeX
    • EPUB: Industry standard for ebooks
    • MOBI: Amazon's older Kindle format
    • KFX: Amazon's newer Kindle format
    • HTML: Web-compatible format
    • Markdown: For documentation and Wiki.js
  5. Build Process Flow:

    1. Initialize components and parse options
    2. Setup directory structure
    3. Build PDF (may stop here with pdf_only option)
    4. Generate ebook formats (EPUB, MOBI, KFX)
    5. Create markdown/Wiki.js content
    6. Run quality checks (unless skipped)
  6. Quality Check Details:

    • EPUBCheck: Validates structure and content against EPUB specification
    • ACE Check: Tests for accessibility compliance, generating HTML report
    • PDF Diff: Creates visual comparison between current and previous PDF versions
  7. Directory Structure:

    • Root directory: manuscript/
      • Main source file: manuscript.tex
      • Configuration: config.yaml, meta.yaml
    • Content: manuscript/content/
      • Front matter: content/front-matter/
      • Chapters: content/chapters/
      • Back matter: content/back-matter/
      • Images: content/images/
      • Figures: content/figures/
      • Tables: content/tables/
      • Equations: content/equations/
      • Bibliography: content/bibliography/
      • Glossary: content/glossary/
      • Acronyms: content/acronyms/
    • Styles: manuscript/styles/
    • Assets: manuscript/assets/
    • Output: manuscript/output/
      • PDF: output/pdf/
      • EPUB: output/epub/
      • MOBI: output/mobi/
      • KFX: output/kfx/
      • HTML: output/html/
      • Markdown: output/markdown/
      • WikiJS: output/markdown-wikijs/
      • Reports: output/reports/
        • ACE results: reports/ace_results/
        • EPUB check: reports/epubcheck/
        • Logs: reports/logs/
    • Temporary files: manuscript/tmp/