Problem
Currently, the Sabbath School lessons processing workflow is split across multiple repositories:
- This repository (lessons): Contains lesson content, OCR processing scripts, and monorepo structure setup
- sabbath-school-reproducer: Contains the PDF generation functionality
This separation creates several issues:
- Fragmented workflow: Users need to manage multiple repositories for a single process
- Missing functionality: The package.json references
apps/* and packages/* workspaces that don't exist
- Complex dependencies: The reproducer must be installed separately as a PyPI package
- Inconsistent tooling: Different repositories use different development workflows
Current State
The monorepo structure was partially implemented in commit 096988d with:
- ✅ Turbo monorepo configuration in package.json
- ✅ PDF processing scripts for downloading and OCR
- ✅ Lesson content organization and management
- ❌ Missing apps/ and packages/ directories
- ❌ Missing PDF generation capability (exists in separate repo)
Proposed Solution
Integrate the sabbath-school-reproducer functionality into this monorepo as a workspace package:
Structure
lessons/
├── apps/
│ └── lesson-processor/ # Main CLI application
├── packages/
│ ├── pdf-generator/ # Core PDF generation (from reproducer)
│ ├── lesson-parser/ # Lesson content parsing
│ └── shared-config/ # Shared configuration types
├── scripts/ # Existing OCR and download scripts
├── data/ # Existing lesson data
└── lessons/ # Existing lesson content
Benefits
- Unified workflow: Single repository for complete lesson processing pipeline
- Simplified development: Unified tooling with Turbo monorepo
- Better integration: Direct imports between packages
- Consistent versioning: Single source of truth for releases
- Improved CI/CD: Unified testing and deployment pipeline
Implementation Plan
- Create workspace structure: Add missing apps/ and packages/ directories
- Migrate reproducer code: Move sabbath-school-reproducer into packages/pdf-generator/
- Update dependencies: Integrate WeasyPrint and other PDF dependencies
- Unify configuration: Ensure config.yaml format compatibility
- Update scripts: Modify existing scripts to use local packages
- Documentation: Update README with unified workflow instructions
Expected Outcome
A complete lesson processing monorepo where users can:
- Download historical lesson PDFs
- Process them through OCR to markdown
- Generate new PDFs from markdown content
- Deploy lesson indexes to GitHub Pages
All within a single, well-organized repository structure.
References
Problem
Currently, the Sabbath School lessons processing workflow is split across multiple repositories:
This separation creates several issues:
apps/*andpackages/*workspaces that don't existCurrent State
The monorepo structure was partially implemented in commit 096988d with:
Proposed Solution
Integrate the sabbath-school-reproducer functionality into this monorepo as a workspace package:
Structure
Benefits
Implementation Plan
Expected Outcome
A complete lesson processing monorepo where users can:
All within a single, well-organized repository structure.
References