Phases use hierarchical numbering (e.g., 1.2.3) so that steps can be inserted without renumbering. If Phase 1 needs additional steps discovered during implementation, they are added as 1.1.5, 1.1.6, etc.
| Phase | Title | Status | Depends On | Focus |
|---|---|---|---|---|
| 1 | Foundation | Complete | — | Project scaffold, OpenXML ingestion, style resolution, font infrastructure |
| 2 | Text Layout | Complete | 1 | Measurement engine, Knuth-Plass line breaking, paragraph & character formatting |
| 3 | Page Layout | Complete | 2 | Pagination, sections, headers/footers, footnotes/endnotes |
| 4 | Tables | Complete | 3 | Fixed & auto-fit layout, cell merging, borders, nested tables |
| 5 | Graphics & Objects | Complete | 3 | Inline/floating images, wrapping, DrawingML shapes, charts |
| 6 | Output Drivers | Complete | 2 | SVG renderer, PDF renderer, font embedding |
| 7 | Advanced Features | Complete | 4, 5 | Fields, lists, text boxes, columns, bookmarks, watermarks, tab stops, RTL/BiDi |
| 8 | Quality & Performance | Closed for roadmap; backlog in #18-#24 | 6, 7 | Visual regression suite, performance/memory hardening, release backlog |
| 9 | Future Enhancements | Deferred to #25 and #26 | 8 | Native chart rendering and native SmartArt layout |
| 10 | Field Update Engine | Planned | 7, 8 | Multi-pass field recalculation for page numbers, TOC, TOF, cross-references, and document properties |
| 11 | WebAssembly Demo | Planned | 10 | Static GitHub Pages SPA, drag/drop DOCX rendering, SVG page strip, and PDF download |
Phase 1: Foundation
│
▼
Phase 2: Text Layout
│
├──────────────────┐
▼ ▼
Phase 3: Page Layout Phase 6: Output Drivers
│
├──────────┐
▼ ▼
Phase 4 Phase 5
Tables Graphics
│ │
└────┬─────┘
▼
Phase 7: Advanced Features
│
▼
Phase 8: Quality & Performance
│
├── Deferred backlog issues #18-24
▼
Phase 10: Field Update Engine
│
▼
Phase 11: WebAssembly Demo
Deferred future work:
Phase 9 -> backlog issues #25-26
Note: Phase 6 (Output Drivers) can begin as soon as Phase 2 is complete, in parallel with Phases 3–5. A basic SVG driver is valuable early for visual debugging during layout development.
Roadmap note: The only remaining active phases are Phase 10 and Phase 11. Remaining unfinished non-SPA work from Phases 8 and 9 is tracked in GitHub issues instead of open phase checklists.
- Each step produces testable output. No step is "done" until it has tests proving it works.
- Vertical slices over horizontal layers. Prefer a thin end-to-end path (simple text → SVG) over completing all of one layer before starting the next.
- Known deviations are documented. If a step is implemented with known limitations, they are logged in the phase document and tracked as issues.
- The plan will change. Steps can be inserted, reordered, or subdivided. The hierarchical numbering supports this.
Phases 1 through 8 define the current renderer baseline. Remaining non-SPA backlog from Phase 8 is tracked in #18 through #24, and Phase 9 is deferred to #25 and #26. The remaining active roadmap is the SPA delivery track: Phase 10 followed by Phase 11.