Releases: NuPlay/RichText
Releases · NuPlay/RichText
V3.0.2
V3.0.1
🔧 Documentation Fixes
This patch release focuses on correcting documentation inconsistencies found after the major v3.0.0 release.
What's Fixed
📚 Documentation Accuracy
- Swift Version Clarification: Updated requirements from Swift 6.0+ to Swift 5.9+ to accurately reflect
Package.swiftconfiguration- Library requires Swift 5.9+ for production use
- Swift 6.0+ only needed for running Swift Testing framework tests
✅ Test Documentation
- Removed references to non-existent XCTest file
- Clarified that only Swift Testing framework is used for tests
- Updated platform requirements for tests vs library usage
📋 API Documentation
- Fixed deprecated method recommendations: Now correctly suggests
.placeholder {}instead of.loadingPlaceholder() - Added missing default values:
imageRadiusdefault: 0colorSchemedefault: .autolineHeightdefault: 170
🚀 No Code Changes
This release contains documentation updates only. No functionality has been changed from v3.0.0.
📦 Installation
.package(url: "https://github.com/NuPlay/RichText.git", .upToNextMajor(from: "3.0.1"))V3.0.0
🚀 RichText v3.0.0 Release Notes
Important
Platform Requirements Updated
- iOS: 15.0+ (previously 13.0+)
- macOS: 12.0+ (previously 10.15+)
- Swift: 6.0+
- Xcode: 16+ for development
🎉 Major Release - Swift 6.0 & Modern Concurrency
This major release modernizes RichText with async/await support, Swift Testing, and enhanced APIs while maintaining backward compatibility.
✨ New Features
🔄 Async/Await Support
- Complete migration to modern Swift concurrency
- Enhanced WebView performance with async loading
- Improved error handling with structured concurrency
🎯 Enhanced APIs
- Type-safe background color options
- Media click handling capabilities
- Comprehensive error reporting system
- Dynamic type support for better accessibility
- Improved color management system
🧪 Swift Testing Framework
- Migrated from XCTest to Swift Testing
- 600+ comprehensive test cases
- Cross-platform testing coverage
🔧 Improvements
- Performance: Optimized WebView rendering with async operations
- Type Safety: Enhanced type-safe APIs throughout the library
- Error Handling: More detailed and actionable error messages
- Accessibility: Better Dynamic Type support
🔄 Migration Guide
Existing v2.x projects can upgrade with minimal changes:
- Update platform targets in your project settings
- Replace deprecated methods (warnings provided)
- Leverage new type-safe APIs for better performance
- Use new error handling methods for better debugging
🧑💻 For Developers
- All public APIs remain compatible with v2.x
- Deprecated methods include migration warnings
- Enhanced documentation and examples
📦 Installation
dependencies: [
.package(url: "https://github.com/NuPlay/RichText.git", from: "3.0.0")
]Full Changelog: v2.7.0...v3.0.0
v2.7.0
⭐ What's Changed
- feat: Add option to force color scheme background by @jcovin293 in #65
RichText(html: "")
.forceColorSchemeBackground(true) // new option👍 Contributors
Full Changelog: 2.5.0...2.6.0
v2.6.0
⭐ What's Changed
- feat: Support Dynamic Type by @jcovin293 in #62
public struct Configuration {
...
public var supportsDynamicType: Bool
...
public init(
...
supportsDynamicType: Bool = false,
...
) {
...
self.supportsDynamicType = supportsDynamicType
...
if supportsDynamicType {
self.customCSS = self.customCSS + """
html { font: -apple-system-body; }
body { font: -apple-system-body; }
h1 { font: -apple-system-largeTitle; }
h2 { font: -apple-system-title1; }
h3 { font: -apple-system-title2; }
h4 { font: -apple-system-title3; }
h5 { font: -apple-system-headline; }
h6 { font: -apple-system-callout; }
p.subheadline { font: -apple-system-subheadline; }
p.footnote { font: -apple-system-footnote; }
p.caption1 { font: -apple-system-caption1; }
p.caption2 { font: -apple-system-caption2; }
"""
}
}
}👍 New Contributors
- @jcovin293 made their first contribution in #62
Full Changelog: 2.5.0...2.6.0
v2.5.0
⭐ What's Changed
- fix: update height after image loaded by @paranoidjk in #54
👍 New Contributors
- @paranoidjk made their first contribution in #54
Full Changelog: 2.4.1...2.5.0
v2.4.1
v2.4.0
⭐ What's Changed
- #46 LinkOpenType Custom Handling for All URL Schemes by @NuPlay in #47
- Allow setting the WebKit baseURL for requests to something other than the Bundle by @ohmantics in #48
🐛 Bug fix
- Fixed sometime dynamic height not correct by @sk-chanch in #45
👍 New Contributors
- @sk-chanch made their first contribution in #45
- @ohmantics made their first contribution in #48
Full Changelog: 2.3.1...2.4.0
V.2.3.1
⭐ What's Changed
✨ [Feature]: Add custom type to LinkOpenType by @vidalhara in #42
public enum LinkOpenType {
#if canImport(UIKit)
case SFSafariView(configuration: SFSafariViewController.Configuration = .init(), isReaderActivated: Bool? = nil, isAnimated: Bool = true)
#endif
case Safari
case custom((URL) -> Void)
case none
}🐛 [Fix] Always call decisionHandler on webview navigationAction by @filip-zielinski in #43
👍 New Contributors
- @vidalhara made their first contribution in #42
- @filip-zielinski made their first contribution in #43
Full Changelog: 2.3.0...2.3.1
v2.3.0
✨ Support macOS
Now available for iOS 13 and macOS 10.15 and later.
let package = Package(
name: "RichText",
platforms: [
.iOS("13.0"),
.macOS("10.15")
],
...
)This update resolves the issue mentioned in #34 and has been implemented through PR #36
♻️ linkOpenType Default Value is Changed
- Default value for linkOpenType is changed to .Safari.
- Previous: .SFSafariView()
- Reason: SFSafariView is not possible on macOS.
//previous
linkOpenType: LinkOpenType = .SFSafariView()
//now
linkOpenType: LinkOpenType = .Safaripublic enum LinkOpenType {
#if canImport(UIKit)
case SFSafariView(configuration: SFSafariViewController.Configuration = .init(), isReaderActivated: Bool? = nil, isAnimated: Bool = true)
#endif
case Safari
case none
}👍 Contributors
Thanks to @studiogaram