33// Why: Document new features and improvements for users
44// RELEVANT FILES: ../v1-0/page.tsx, ../../page.tsx
55
6+ 'use client' ;
7+
8+ import Navigation from '@/components/Navigation' ;
9+
610export default function V11ReleasePage ( ) {
711 return (
8- < div className = "prose prose-noir max-w-4xl" >
9- < h1 id = "top" > OmniScript v1.1.0 Release</ h1 >
10- < p className = "lead" >
11- < strong > Release Date:</ strong > October 16, 2025< br />
12- < strong > Status:</ strong > β
Production Ready< br />
13- < strong > Compatibility:</ strong > 100% backward compatible with v1.0
14- </ p >
15-
16- < hr />
17-
18- < h2 > Table of Contents</ h2 >
19- < ul >
20- < li > < a href = "#strikethrough" > Strikethrough Text</ a > </ li >
21- < li > < a href = "#unicode" > Unicode Escape Sequences</ a > </ li >
22- < li > < a href = "#errors" > Position Tracking in Errors</ a > </ li >
23- < li > < a href = "#rendering" > Extended HTML Rendering</ a > </ li >
24- < li > < a href = "#security" > Security Improvements</ a > </ li >
25- < li > < a href = "#upgrade" > Upgrade Guide</ a > </ li >
26- </ ul >
27-
28- < hr />
29-
30- < h2 > π What's New</ h2 >
31-
32- < h3 id = "strikethrough" > β¨ Strikethrough Text Formatting</ h3 >
33- < p > Use < code > ~~text~~</ code > syntax for strikethrough formatting:</ p >
34- < pre > < code > { `@slide {
12+ < div className = "min-h-screen bg-black text-white" >
13+ < Navigation dark />
14+ < div className = "container mx-auto px-4 py-12 pt-24 max-w-4xl" >
15+ < div className = "prose prose-invert max-w-none" >
16+ < h1 id = "top" > OmniScript v1.1.0 Release</ h1 >
17+ < p className = "lead" >
18+ < strong > Release Date:</ strong > October 16, 2025< br />
19+ < strong > Status:</ strong > β
Production Ready< br />
20+ < strong > Compatibility:</ strong > 100% backward compatible with v1.0
21+ </ p >
22+
23+ < hr />
24+
25+ < h2 > Table of Contents</ h2 >
26+ < ul >
27+ < li > < a href = "#strikethrough" > Strikethrough Text</ a > </ li >
28+ < li > < a href = "#unicode" > Unicode Escape Sequences</ a > </ li >
29+ < li > < a href = "#errors" > Position Tracking in Errors</ a > </ li >
30+ < li > < a href = "#rendering" > Extended HTML Rendering</ a > </ li >
31+ < li > < a href = "#security" > Security Improvements</ a > </ li >
32+ < li > < a href = "#upgrade" > Upgrade Guide</ a > </ li >
33+ </ ul >
34+
35+ < hr />
36+
37+ < h2 > π What's New</ h2 >
38+
39+ < h3 id = "strikethrough" > β¨ Strikethrough Text Formatting</ h3 >
40+ < p > Use < code > ~~text~~</ code > syntax for strikethrough formatting:</ p >
41+ < pre > < code > { `@slide {
3542 title: "Product Updates";
3643
3744 Price: ~~$99~~ **$79** today only!
3845}` } </ code > </ pre >
39- < p > < strong > Renders as:</ strong > Price: < s > $99</ s > < strong > $79</ strong > today only!</ p >
46+ < p > < strong > Renders as:</ strong > Price: < s > $99</ s > < strong > $79</ strong > today only!</ p >
4047
41- < h3 id = "unicode" > π Unicode Escape Sequences</ h3 >
42- < p > Full support for < code > \uXXXX</ code > (4-digit hex) and < code > \xXX</ code > (2-digit hex):</ p >
43- < pre > < code > { `@meta {
48+ < h3 id = "unicode" > π Unicode Escape Sequences</ h3 >
49+ < p > Full support for < code > \uXXXX</ code > (4-digit hex) and < code > \xXX</ code > (2-digit hex):</ p >
50+ < pre > < code > { `@meta {
4451 title: "Copyright \\u00A9 2025"; // Β©
4552 status: "Complete \\u2713"; // β
4653 author: "Caf\\xE9"; // CafΓ©
4754}` } </ code > </ pre >
48- < p > < strong > Features:</ strong > </ p >
49- < ul >
50- < li > Perfect round-trip: parse(serialize(doc)) === doc</ li >
51- < li > Automatic escaping on serialization</ li >
52- < li > Full Unicode range (U+0000 to U+FFFF)</ li >
53- </ ul >
54-
55- < h3 id = "errors" > π Position Tracking in Errors</ h3 >
56- < p > All parser errors now include precise line:column information:</ p >
57- < pre > < code > { `// Before (v1.0)
55+ < p > < strong > Features:</ strong > </ p >
56+ < ul >
57+ < li > Perfect round-trip: parse(serialize(doc)) === doc</ li >
58+ < li > Automatic escaping on serialization</ li >
59+ < li > Full Unicode range (U+0000 to U+FFFF)</ li >
60+ </ ul >
61+
62+ < h3 id = "errors" > π Position Tracking in Errors</ h3 >
63+ < p > All parser errors now include precise line:column information:</ p >
64+ < pre > < code > { `// Before (v1.0)
5865Error: Missing closing }
5966
6067// After (v1.1)
6168Error: Missing closing } for block meta at 15:42
6269Error: Expected identifier at 8:5
6370Error: Invalid number format at 12:18` } </ code > </ pre >
64- < p > < strong > Benefits:</ strong > 10x faster debugging for large documents!</ p >
65-
66- < h3 id = "rendering" > π Extended HTML Rendering</ h3 >
67- < p > HTML output now supports all content block types:</ p >
68- < ul >
69- < li > < strong > Ordered Lists</ strong > - Renders as < code > <ol></ code > </ li >
70- < li > < strong > Blockquotes</ strong > - Renders as < code > <blockquote></ code > </ li >
71- < li > < strong > Code Blocks</ strong > - Syntax highlighting with < code > <pre><code></ code > </ li >
72- < li > < strong > Images</ strong > - Proper < code > <img></ code > tags</ li >
73- < li > < strong > Links</ strong > - Proper < code > <a></ code > tags</ li >
74- </ ul >
75-
76- < h3 > π Enhanced Markdown Export</ h3 >
77- < p > Markdown export now preserves ALL formatting:</ p >
78- < ul >
79- < li > Strikethrough β < code > ~~text~~</ code > </ li >
80- < li > Ordered lists β < code > 1. 2. 3.</ code > </ li >
81- < li > Blockquotes β < code > > text</ code > </ li >
82- < li > Code blocks β < code > ```language ... ```</ code > </ li >
83- </ ul >
84-
85- < h3 id = "security" > π Security Improvements</ h3 >
86- < p > < strong > XSS Prevention</ strong > - All HTML output is properly escaped:</ p >
87- < pre > < code > { `@meta { title: "<script>alert('xss')</script>"; }
71+ < p > < strong > Benefits:</ strong > 10x faster debugging for large documents!</ p >
72+
73+ < h3 id = "rendering" > π Extended HTML Rendering</ h3 >
74+ < p > HTML output now supports all content block types:</ p >
75+ < ul >
76+ < li > < strong > Ordered Lists</ strong > - Renders as < code > <ol></ code > </ li >
77+ < li > < strong > Blockquotes</ strong > - Renders as < code > <blockquote></ code > </ li >
78+ < li > < strong > Code Blocks</ strong > - Syntax highlighting with < code > <pre><code></ code > </ li >
79+ < li > < strong > Images</ strong > - Proper < code > <img></ code > tags</ li >
80+ < li > < strong > Links</ strong > - Proper < code > <a></ code > tags</ li >
81+ </ ul >
82+
83+ < h3 > π Enhanced Markdown Export</ h3 >
84+ < p > Markdown export now preserves ALL formatting:</ p >
85+ < ul >
86+ < li > Strikethrough β < code > ~~text~~</ code > </ li >
87+ < li > Ordered lists β < code > 1. 2. 3.</ code > </ li >
88+ < li > Blockquotes β < code > > text</ code > </ li >
89+ < li > Code blocks β < code > ```language ... ```</ code > </ li >
90+ </ ul >
91+
92+ < h3 id = "security" > π Security Improvements</ h3 >
93+ < p > < strong > XSS Prevention</ strong > - All HTML output is properly escaped:</ p >
94+ < pre > < code > { `@meta { title: "<script>alert('xss')</script>"; }
8895
8996// v1.0: Would render dangerous <script> tag
9097// v1.1: Renders safe: <script>...</script>` } </ code > </ pre >
91- < p > < strong > Applies to:</ strong > All meta properties, document content, slide content, and sheet values.</ p >
98+ < p > < strong > Applies to:</ strong > All meta properties, document content, slide content, and sheet values.</ p >
9299
93- < hr />
100+ < hr />
94101
95- < h2 > π Example: New Features</ h2 >
102+ < h2 > π Example: New Features</ h2 >
96103
97- < pre > < code > { `@slide {
104+ < pre > < code > { `@slide {
98105 title: "Product Updates";
99106
100107 ## Latest Changes
@@ -114,62 +121,62 @@ Error: Invalid number format at 12:18`}</code></pre>
114121 };
115122 \`\`\`
116123}` } </ code > </ pre >
124+ < hr />
117125
118- < hr / >
126+ < h2 id = "upgrade" > π Upgrade Guide </ h2 >
119127
120- < h2 id = "upgrade" > π Upgrade Guide </ h2 >
128+ < p > Upgrading is simple - just update your packages: </ p >
121129
122- < p > Upgrading is simple - just update your packages:</ p >
123-
124- < pre > < code > { `npm install omniscript-parser@1.1.0
130+ < pre > < code > { `npm install omniscript-parser@1.1.0
125131npm install omniscript-cli@1.1.0
126132npm install omniscript-converters@1.1.0` } </ code > </ pre >
127-
128- < p > < strong > No code changes required!</ strong > All v1.0 documents work without modification.</ p >
129-
130- < h3 > What You Get</ h3 >
131- < ul >
132- < li > β
Use < code > ~~strikethrough~~</ code > in your documents</ li >
133- < li > β
Better error messages with exact locations</ li >
134- < li > β
HTML rendering includes all content types</ li >
135- < li > β
Markdown export preserves all formatting</ li >
136- < li > β
PDF/DOCX/PPTX/XLSX rendering actually works via CLI</ li >
137- < li > β
Protected against XSS attacks automatically</ li >
138- </ ul >
139-
140- < hr />
141-
142- < h2 > π Test Coverage</ h2 >
143-
144- < ul >
145- < li > β
< strong > 88 tests</ strong > passing (31 new for v1.1 features)</ li >
146- < li > β
< strong > 100% success rate</ strong > </ li >
147- < li > β
Comprehensive coverage for all new features</ li >
148- < li > β
Security tests for XSS prevention</ li >
149- < li > β
Round-trip tests for unicode handling</ li >
150- </ ul >
151-
152- < hr />
153-
154- < h2 > π Bug Fixes</ h2 >
155-
156- < ul >
157- < li > Fixed parser round-trip with unicode characters</ li >
158- < li > Fixed CLI converter integration (PDF/DOCX/PPTX/XLSX)</ li >
159- < li > Fixed dependency version synchronization</ li >
160- < li > Fixed vitest configuration for cleaner test output</ li >
161- </ ul >
162-
163- < hr />
164-
165- < h2 > π Next Steps</ h2 >
166-
167- < ol >
168- < li > < a href = "/docs/getting-started/installation" > Install OmniScript</ a > </ li >
169- < li > < a href = "/playground" > Try the Interactive Playground</ a > </ li >
170- < li > < a href = "https://github.com/OmniScriptOSF/omniscript-examples" > Browse Examples</ a > </ li >
171- < li > < a href = "https://github.com/OmniScriptOSF/omniscript-core" > Star on GitHub</ a > </ li >
172- </ ol >
133+ < p > < strong > No code changes required!</ strong > All v1.0 documents work without modification.</ p >
134+
135+ < h3 > What You Get</ h3 >
136+ < ul >
137+ < li > β
Use < code > ~~strikethrough~~</ code > in your documents</ li >
138+ < li > β
Better error messages with exact locations</ li >
139+ < li > β
HTML rendering includes all content types</ li >
140+ < li > β
Markdown export preserves all formatting</ li >
141+ < li > β
PDF/DOCX/PPTX/XLSX rendering actually works via CLI</ li >
142+ < li > β
Protected against XSS attacks automatically</ li >
143+ </ ul >
144+
145+ < hr />
146+
147+ < h2 > π Test Coverage</ h2 >
148+
149+ < ul >
150+ < li > β
< strong > 88 tests</ strong > passing (31 new for v1.1 features)</ li >
151+ < li > β
< strong > 100% success rate</ strong > </ li >
152+ < li > β
Comprehensive coverage for all new features</ li >
153+ < li > β
Security tests for XSS prevention</ li >
154+ < li > β
Round-trip tests for unicode handling</ li >
155+ </ ul >
156+
157+ < hr />
158+
159+ < h2 > π Bug Fixes</ h2 >
160+
161+ < ul >
162+ < li > Fixed parser round-trip with unicode characters</ li >
163+ < li > Fixed CLI converter integration (PDF/DOCX/PPTX/XLSX)</ li >
164+ < li > Fixed dependency version synchronization</ li >
165+ < li > Fixed vitest configuration for cleaner test output</ li >
166+ </ ul >
167+
168+ < hr />
169+
170+ < h2 > π Next Steps</ h2 >
171+
172+ < ol >
173+ < li > < a href = "/docs/getting-started/installation" > Install OmniScript</ a > </ li >
174+ < li > < a href = "/playground" > Try the Interactive Playground</ a > </ li >
175+ < li > < a href = "https://github.com/OmniScriptOSF/omniscript-examples" > Browse Examples</ a > </ li >
176+ < li > < a href = "https://github.com/OmniScriptOSF/omniscript-core" > Star on GitHub</ a > </ li >
177+ </ ol >
178+ </ div >
179+ </ div >
173180 </ div >
174181 ) ;
175182}
0 commit comments