Repository navigation
Node PPTX Templater v1.0.4
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
1.0.3 - 2026-06-02
Added
- Dynamic Formatting in updateTable: Added support for inline cell styling (color fill
fill, text alignmentalign, andfontSize) directly on cell objects passed toupdateTable. - Comprehensive Tailwind Site: Overhauled doc builder script to generate a premium Tailwind CSS documentation portal with clientside search, clipboard copying, sitemap.xml, robots.txt, and Schema.org metadata.
Fixed
- XML Element Ordering: Enforced strict schema-valid element sequence (
a:pPr-> runs ->a:endParaRPr) in slide table cell paragraphs. This resolves the bug where split cells inheriting from template merged cells had their text runs ignored by PowerPoint's XML compiler. - Template Style Inheritance: Fixed a bug in
updateTablewhere cloned rows always copied the first data row (trs[1]). The engine now correctly inherits formatting, alignment, and fill styles from matching indices in the template (trs[i]) when available.
1.0.2 - 2026-06-02
Added
- Table Cell Merging & Unmerging Engine: Fully implemented horizontal cell spans (
gridSpan,hMerge), vertical cell spans (rowSpan,vMerge), and rectangular block merges. - PowerPoint Repair Protection: Implemented unique 32-bit unsigned
rowIdgeneration inside<a16:rowId>XML tags for all cloned and inserted rows, eliminating PowerPoint's "Repair Mode" error prompts. - Merge Integrations: Integrated template-driven merges (
mergeconfigs array and cell-levelcolSpan/rowSpan) inside the mainupdateTableorchestrator. - Integration Test Suite: Added a comprehensive merge test script under
tests/integration/PPTXMerge.test.js.
1.0.1 - 2026-05-19
Changed
- CommonJS Target Conversion: Converted the source code modules compilation and packaging layout from pure ES Modules (ESM) to CommonJS (CJS) to ensure compatibility with standard Node.js deployment, packaging, and edge runtime environments.
1.0.0 - 2026-05-17
Added
PPTXTemplater— main orchestrator class with fluent chainable APIZipManager— PPTX ZIP archive loading, reading, writing, and re-packagingXMLParser— high-performance XML parsing/building viafast-xml-parserRelationshipManager— OpenXML.relsfile parsing and managementSlideManager— slide discovery, ordering, addition, cloning, and removalChartManager— direct chart XML data updates (bar, line, pie, area, scatter)TableManager— table row replacement preserving all formattingHyperlinkManager— external URL and slide-to-slide hyperlink injectionMediaManager— image embedding with SHA-1 deduplicationTemplateEngine—{{placeholder}}replacement with fragmented run normalizationOutputWriter— file, buffer, and stream output- CLI:
build,validate,inspect,extract,debugcommands - Full JSDoc documentation throughout codebase
- Unit tests for all core components (Vitest)
- Integration tests with fixture-based testing
- Performance benchmarks
- GitHub Actions: CI, release, docs workflows
- ESLint + Prettier configuration
- MIT License
Architecture
- Zero PPTX generation library dependencies
- Only uses:
jszip,fast-xml-parser,fs-extra,commander,chalk,ora - Async/await throughout
- Private class fields (
#field) for encapsulation - Modular architecture following SOLID principles