extwee
Version:
A story compiler tool using Twine-compatible formats
220 lines (130 loc) • 5.03 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.3.12] - 2025-12-1
### Added
- CHANGELOG.md to track project changes
- CONTRIBUTING.md with development guidelines
- GitHub issue templates (bug reports, feature requests)
- GitHub pull request template
- .npmignore to optimize package size
- Script-tagged passages now automatically added to `storyJavaScript` property instead of passages array
- Comprehensive Snowman story format compatibility tests
- Enhanced HTML entity handling for passage content
- CI/CD testing across multiple Node.js versions (20.x, 22.x, 23.x)
- CI/CD testing across multiple operating systems (Ubuntu, Windows, macOS)
### Changed
- Passage text content no longer HTML-encoded in output (attributes still encoded)
- Improved round-trip compatibility between formats
- Enhanced GitHub Actions workflow for better test coverage
### Fixed
- HTML entity encoding bug that broke JavaScript and HTML content in passages
- Snowman story format compatibility issues with dynamic content
## [2.3.11] - 2025-11-15
### Fixed
- Regression of encoding behavior back to original, correct encoding of HTML-like entities
- Accidentally introduced encoding issue from 2.3.9
## [2.3.10] - 2025-11-15
### Fixed
- Issue with parsing of Twee passages using "script" and "stylesheet" keywords
- Passages not always being processed as Story JavaScript and Story Stylesheet
- Duplication of passages and incorrect encoding into Twine 2 HTML
## [2.3.9] - 2025-11-15
### Fixed
- Edge case issue when encoding special symbols in writing and confirming when reading
## [2.3.8] - 2025-11-15
### Added
- Native crypto.randomUUID() for IFID generation (Node.js)
- Browser-based Crypto API randomUUID() for web builds
- Performance improvement: UUID generation is much faster
### Changed
- Updated dependencies
### Removed
- uuid package dependency (replaced with native crypto APIs)
## [2.3.2] - 2025-08-03
### Changed
- Monthly maintenance update
- Updated dependencies (jest, eslint, webpack, eslint-plugin-jsdoc, @inquirer/prompts)
## [2.3.0] - 2024-08-01
- May impact older browsers (pre-2021) for web builds
## [2.3.7] - 2025-10-25
### Added
- New decompile demo showing Twine 2 HTML analysis with statistics
### Fixed
- Issues with web parsing of attributes inside `<tw-storydata>` and `<tw-passagedata>` elements
## [2.3.6] - 2025-10-24
### Changed
- Minor release to re-align versions on NPM and GitHub
## [2.3.5] - 2025-10-24
### Added
- Exports for various web builds to help with packaging
## [2.3.4] - 2025-10-01
### Added
- "Compiler" demo showing browser-based Twee compilation with Story Formats Archive
### Changed
- Internal WebPack changes to fix edge cases with loading Extwee in browser
- Updated dependencies
### Security
- Fixed code scanning alert #133: Exception text reinterpreted as HTML
## [2.3.3] - 2025-09-07
### Added
- Web-specific versions of major HTML parsers (Twine1HTML, Twine2HTML, Twine2ArchiveHTML) using DOM functionality
- Separate build files: core, TWS, Twine2Archive, Twine1HTML
### Changed
- Optimized web build from 290 KiB to 78.5 KiB (core)
- Updated UUID to pure ESM module
- Rewrote Jest mocking functions for compatibility
## [2.3.2] - 2025-08-03
### Added
- Support for Twine 2 JSON format
- Enhanced web build exports
- Tree-shaking support for better bundle optimization
### Changed
- Improved command-line interface with better error messages
- Updated documentation with more examples
## [2.2.5] - 2024-07-01
### Changed
- Separated short and long command-line option flags
- Improved CLI help documentation
## [2.2.0] - 2024-06-01
### Added
- Config file support (extwee.config.json)
- Better story format version handling
### Changed
- Enhanced error messages throughout the application
## [2.1.0] - 2024-05-01
### Added
- Twine 2 Archive HTML support
- Round-trip testing for format conversions
### Fixed
- Various parser edge cases
## [2.0.0] - 2024-04-01
### Added
- Complete rewrite using ES modules
- TypeScript type definitions
- Web builds for browser usage
- Comprehensive test suite with Jest
### Changed
- Modern JavaScript (ES2020+)
- Improved API design
- Better separation of concerns
### Breaking Changes
- API incompatible with 1.x versions
- Node.js 14+ required
## [1.6.0] - 2023-12-01
### Added
- Twee 3 specification support
- StoryFormat parsing improvements
### Deprecated
- Version 1.x line (replaced by 2.x)
---
## Migration Guides
### From 1.x to 2.x
- Update Node.js to version 14 or higher
- Change CommonJS `require()` to ES `import`
- Review API changes in object constructors
- Update file paths to use absolute paths in CLI
### From uuid package to native crypto
- No user action required - internal change only
- IFID generation is now 3.6x faster