Skip to content

Commit 3a9a16a

Browse files
committed
Update README
1 parent 05558be commit 3a9a16a

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

README.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ A native Go implementation of the MJML email framework, providing fast compilati
1313
## 🚀 Features
1414

1515
- **Complete MJML Implementation**: 100% feature-complete with all 26 MJML components implemented and tested against MRML (the Rust implementation of MJML). A well-structured Go library with clean package separation
16-
- **Email Compatible**: Generates HTML that works across email clients (Outlook, Gmail, Apple Mail, etc.)
16+
- **Enhanced Email Compatibility**: Generates HTML that works reliably across all email clients with robust Microsoft Outlook support and VML background rendering for legacy versions
1717
- **Fast Performance**: Native Go performance, comparable to Rust MRML implementation
1818
- **Optional AST Caching**: Opt-in template caching for speedup on repeated renders
1919
- **Complete Component System**: Support for essential MJML components with proper inheritance
@@ -279,7 +279,7 @@ func (c *MJNewComponent) GetTagName() string {
279279
| `mj-table` |**Implemented** | Email-safe table component with border and styling support |
280280

281281
### Implementation Summary
282-
- **✅ Implemented: 26 components** - All essential layout, content, head components, accordion, navbar, hero, spacer, table, and carousel components work
282+
- **✅ Implemented: 26 components** - All essential layout, content, head components, accordion, navbar, hero, spacer, table, and carousel components with enhanced rendering robustness
283283
- **❌ Not Implemented: 0 components** - Full MJML specification coverage achieved
284284
- **Total MJML Components: 26** - Complete coverage of all major MJML specification components
285285

@@ -290,19 +290,19 @@ Based on the integration test suite in `mjml/integration_test.go`, the implement
290290

291291
| Benchmark | Time | Memory | Allocs |
292292
| :----------------------------------------------- | :-----: | :-----: | :----: |
293-
| BenchmarkMJMLRender_10_Sections-8 | 0.41ms | 0.56MB | 4.7K |
294-
| BenchmarkMJMLRender_10_Sections_Cache-8 | 0.23ms | 0.48MB | 2.7K |
295-
| BenchmarkMJMLRender_100_Sections-8 | 4.74ms | 5.83MB | 45.0K |
296-
| BenchmarkMJMLRender_100_Sections_Cache-8 | 3.08ms | 5.13MB | 25.7K |
297-
| BenchmarkMJMLRender_1000_Sections-8 | 42.61ms | 59.22MB | 447.3K |
298-
| BenchmarkMJMLRender_1000_Sections_Cache-8 | 29.23ms | 52.19MB | 255.2K |
299-
| BenchmarkMJMLRender_10_Sections_Memory-8 | 0.51ms | 0.56MB | 4.7K |
300-
| BenchmarkMJMLRender_10_Sections_Memory_Cache-8 | 0.31ms | 0.48MB | 2.7K |
301-
| BenchmarkMJMLRender_100_Sections_Memory-8 | 4.82ms | 5.83MB | 45.0K |
302-
| BenchmarkMJMLRender_100_Sections_Memory_Cache-8 | 2.83ms | 5.13MB | 25.7K |
303-
| BenchmarkMJMLRender_1000_Sections_Memory-8 | 44.00ms | 59.22MB | 447.3K |
304-
| BenchmarkMJMLRender_1000_Sections_Memory_Cache-8 | 24.69ms | 52.19MB | 255.2K |
305-
| BenchmarkMJMLRender_100_Sections_Writer-8 | 2.64ms | 4.69MB | 20.1K |
293+
| BenchmarkMJMLRender_10_Sections-8 | 0.46ms | 0.59MB | 4.1K |
294+
| BenchmarkMJMLRender_10_Sections_Cache-8 | 0.21ms | 0.46MB | 1.9K |
295+
| BenchmarkMJMLRender_100_Sections-8 | 5.21ms | 6.09MB | 38.6K |
296+
| BenchmarkMJMLRender_100_Sections_Cache-8 | 2.57ms | 4.83MB | 18.3K |
297+
| BenchmarkMJMLRender_1000_Sections-8 | 46.63ms | 62.65MB | 383.3K |
298+
| BenchmarkMJMLRender_1000_Sections_Cache-8 | 21.71ms | 49.26MB | 182.2K |
299+
| BenchmarkMJMLRender_10_Sections_Memory-8 | 0.60ms | 0.59MB | 4.1K |
300+
| BenchmarkMJMLRender_10_Sections_Memory_Cache-8 | 0.26ms | 0.46MB | 1.9K |
301+
| BenchmarkMJMLRender_100_Sections_Memory-8 | 4.88ms | 6.08MB | 38.6K |
302+
| BenchmarkMJMLRender_100_Sections_Memory_Cache-8 | 2.36ms | 4.83MB | 18.3K |
303+
| BenchmarkMJMLRender_1000_Sections_Memory-8 | 47.47ms | 62.67MB | 383.3K |
304+
| BenchmarkMJMLRender_1000_Sections_Memory_Cache-8 | 22.07ms | 49.26MB | 182.2K |
305+
| BenchmarkMJMLRender_100_Sections_Writer-8 | 2.37ms | 4.37MB | 14.0K |
306306

307307
For comprehensive performance analysis including comparisons with other MJML implementations, see our dedicated [performance benchmarks documentation](docs/benchmarks.md).
308308

@@ -461,7 +461,8 @@ Generated HTML works across all major email clients:
461461

462462
### Email-Specific Features
463463

464-
- **MSO Conditional Comments**: Outlook-specific styling and layout fixes
464+
- **Enhanced MSO Conditional Comments**: Comprehensive Outlook-specific styling and layout fixes
465+
- **VML Background Support**: Legacy Outlook compatibility with Vector Markup Language backgrounds
465466
- **CSS Inlining Ready**: Structure compatible with CSS inlining tools
466467
- **Mobile Responsive**: Automatic mobile breakpoints and media queries
467468
- **Web Font Support**: Google Fonts integration with fallbacks

0 commit comments

Comments
 (0)