-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrelease-notes.html
More file actions
254 lines (224 loc) · 26.4 KB
/
release-notes.html
File metadata and controls
254 lines (224 loc) · 26.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SquibView Release Notes</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><circle cx='16' cy='16' r='14' fill='%23f57c00' stroke='%23000' stroke-width='1'/><path d='M2 16h28M16 2a14 14 0 0114 14 14 14 0 01-14 14 14 14 0 01-14-14A14 14 0 0116 2zm0 0v28M9 16a7 7 0 0014 0 7 7 0 00-14 0z' fill='none' stroke='%23000' stroke-width='1'/></svg>">
<style>
/* Additional CSS */
/* SquibView CLI Generated Styles */
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
line-height: 1.6;
color: #333;
max-width: 900px;
margin: 0 auto;
padding: 2rem 3rem;
background-color: #fff;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.5em;
margin-bottom: 0.5em;
font-weight: 600;
line-height: 1.25;
}
h1 {
font-size: 2rem;
}
h2 {
font-size: 1.5rem;
}
h3 { font-size: 1.25rem; }
h4 { font-size: 1rem; }
h5 { font-size: 0.875rem; }
h6 { font-size: 0.85rem; color: #666; }
p { margin-bottom: 1rem; }
a {
color: #0066cc;
text-decoration: none;
}
a:hover {
color: #0066cc;
text-decoration: underline;
}
ul, ol {
margin-bottom: 1rem;
padding-left: 2rem;
}
li {
margin-bottom: 0.25rem;
}
blockquote {
margin: 1rem 0;
padding: 0.5rem 1rem;
border-left: 4px solid #ddd;
background-color: #f9f9f9;
color: #666;
}
code {
background-color: #f5f5f5;
padding: 0.2em 0.4em;
border-radius: 3px;
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
font-size: 0.85em;
}
pre {
background-color: #f8f8f8;
padding: 1rem;
margin-bottom: 1rem;
overflow-x: auto;
border-radius: 4px;
}
pre code {
background-color: transparent;
padding: 0;
border-radius: 0;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 0.5rem;
text-align: left;
}
th {
background-color: #f2f2f2;
font-weight: bold;
}
img {
max-width: 100%;
height: auto;
margin-bottom: 1rem;
}
hr {
border: none;
border-top: 1px solid #ddd;
margin: 2rem 0;
}
/* Badge images - inline display */
p img {
display: inline;
margin: 0 2px;
vertical-align: middle;
}
/* Math styling */
.MathJax {
overflow-x: auto;
overflow-y: hidden;
}
/* Responsive design */
@media (max-width: 768px) {
body {
padding: 1rem 1.5rem;
}
table {
font-size: 0.875rem;
}
th, td {
padding: 0.25rem;
}
}
/* Print styles */
@media print {
body {
padding: 0;
color: #000;
}
a {
color: #000;
text-decoration: underline;
}
pre, blockquote {
page-break-inside: avoid;
}
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
}
}
</style>
<!-- Highlight.js for syntax highlighting -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
<!-- Leaflet for GeoJSON/TopoJSON maps -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://unpkg.com/topojson-client@3.1.0/dist/topojson-client.min.js"></script>
<!-- Three.js for STL 3D models -->
<script src="https://unpkg.com/three@0.171.0/build/three.min.js"></script>
<!-- MathJax for math rendering -->
<script>
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']],
displayMath: [['$$', '$$'], ['\\[', '\\]']],
processEscapes: true,
processEnvironments: true
},
options: {
ignoreHtmlClass: 'tex2jax_ignore',
processHtmlClass: 'tex2jax_process'
},
svg: {
fontCache: 'global'
}
};
</script>
<script type="text/javascript" id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
</script>
<!-- Mermaid for diagram rendering -->
<script src="https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js"></script>
</head>
<body>
<div><h1>SquibView Release Notes</h1><p>Complete changelog and release history for SquibView.</p><hr><h2>v1.0.21 (September 23, 2025)</h2><h3>🎯 Focus: Typography & Text Formatting Improvements</h3><p>This release enhances the visual presentation of rendered content with proper paragraph spacing and fixes the Smart Linefeeds feature for better control over line break handling.</p><h3>🐛 Bug Fixes</h3><ul><li><strong>Fixed Smart Linefeeds toggle</strong> - Corrected <code>toggleLinefeedView()</code> to properly add <code><br></code> tags to rendered HTML for visual line breaks without modifying source markdown. This is a view-only toggle that preserves the original markdown text.</li></ul><h3>✨ Improvements</h3><ul><li><p><strong>Enhanced typography</strong> - Added professional spacing for better readability:</p><ul><li>Paragraphs now have 1em bottom margin for clear visual separation</li><li>Headings have 1.5em top and 0.5em bottom margins for proper hierarchy</li><li>First/last elements have smart margin adjustments to avoid excess spacing</li></ul></li><li><p><strong>Smart Linefeeds clarification</strong> - The feature now correctly maintains two distinct functions:</p><ul><li><code>fixLinefeedsInMarkdown()</code> - Permanently modifies source markdown by adding two spaces at line ends (for portability)</li><li><code>toggleLinefeedView()</code> - View-only rendering toggle that adds visual line breaks without modifying the source</li></ul></li></ul><h3>📝 Developer Notes</h3><ul><li>The paragraph spacing improvements address rendering issues where text appeared too condensed</li><li>Smart Linefeeds functions are now properly separated: source modification vs. view-only rendering</li><li>All changes maintain full markdown compliance and backwards compatibility</li></ul><hr><h2>v1.0.20 (September 2024)</h2><h3>🐛 Bug Fixes</h3><ul><li><strong>Fixed list bullet positioning</strong> - List bullets (ul/ol) now properly display within the content area instead of appearing in the left margin/gutter. Added explicit CSS rules for list padding and margins in <code>.squibview-output</code>.</li><li><strong>Fixed CSS bundling issue</strong> - Removed external CSS imports (highlight.js, leaflet) from standalone build. These styles are now loaded dynamically via the autoload feature, reducing dist/squibview.css from 1400 to 645 lines.</li><li><strong>Fixed release tools</strong> - Updated <code>make-release.sh</code> and <code>update-release-notes.sh</code> to use <code>docs/release-notes.md</code> instead of root directory</li></ul><h3>✨ Improvements</h3><ul><li><strong>Cleaner CSS distribution</strong> - Core squibview.css now contains only SquibView styles. External library styles load on-demand.</li><li><strong>Better theme flexibility</strong> - Users can now provide custom highlight.js themes without conflicts</li></ul><h3>🧪 Testing</h3><ul><li>Added unit test for list rendering structure validation</li></ul><hr><h2>v1.0.19 (September 19, 2025)</h2><h3>🎯 Headless Mode & Documentation Improvements</h3><h4>Features</h4><ul><li><strong>Enhanced Headless Mode Example</strong> - Complete working example demonstrating all API methods with custom UI controls (<code>examples/example_headless.html</code>)</li><li><strong>Comprehensive API Documentation</strong> - Corrected and updated all API method documentation to reflect actual implementation</li></ul><h4>Bug Fixes</h4><ul><li>Fixed headless mode Options toggles (Controls, Title, Lines) to actually recreate editor instance with new settings</li><li>Fixed Copy functionality to use correct <code>copySource()</code> and <code>copyHTML()</code> methods</li><li>Fixed event system documentation to use <code>editor.events.on()</code> instead of <code>editor.on()</code></li><li>Fixed revision methods documentation (<code>revisionUndo()</code>, <code>revisionRedo()</code>, <code>revisionNumRevsions()</code>)</li><li>Added JSDoc comments to all functions and key attributes in headless example</li></ul><h4>Documentation Updates</h4><ul><li><strong>API Methods Reference</strong> - Corrected method names and signatures in <code>docs/api/methods.md</code></li><li><strong>Events Reference</strong> - Updated event names to use colons (e.g., <code>content:change</code>, <code>view:change</code>) in <code>docs/api/events.md</code></li><li><strong>Headless Mode Guide</strong> - Updated all code examples with correct API usage in <code>docs/guides/headless-mode.md</code></li><li>Added standard favicon to headless example</li></ul><h4>API Corrections</h4><ul><li><code>undo()</code>/<code>redo()</code> → <code>revisionUndo()</code>/<code>revisionRedo()</code></li><li><code>getRevisionCount()</code> → <code>revisionNumRevsions()</code></li><li><code>getRenderedHTML()</code> → <code>getHTMLSource()</code></li><li><code>copyToClipboard(format)</code> → <code>copySource()</code> or <code>copyHTML()</code></li><li>Event access via <code>editor.events.on()</code> not <code>editor.on()</code></li><li>Event names use colons: <code>content:change</code>, <code>text:selected</code>, <code>revision:undo</code></li></ul><hr><h2>v1.0.18 (September 17, 2025)</h2><h3>Major Features</h3><p><strong>Integrated Autoload Functionality</strong> - Autoload is now built into all SquibView builds</p><ul><li>No separate autoload builds needed - use <code>autoload_deps</code> option with any build</li><li>Configure with <code>autoload_deps: { all: true }</code> for automatic loading</li><li>Fine-grained control per library available</li><li>Libraries load automatically from CDN when content requires them</li><li>Zero configuration required for standard use cases</li></ul><p><strong>Autoloaded Libraries</strong></p><ul><li>Mermaid (377KB) - Loaded when mermaid fence blocks are detected</li><li>Highlight.js (45KB) - Loaded when code blocks are present</li><li>MathJax (1.3MB) - Loaded when math expressions or math fence blocks are found</li><li>Leaflet (142KB) - Loaded when GeoJSON/TopoJSON content is rendered</li><li>Three.js (1.1MB) - Loaded when STL 3D models are displayed</li></ul><h3>Improvements</h3><p><strong>Math Rendering</strong></p><ul><li>Reduced math formula size when copying to clipboard (scale factor 0.025)</li><li>Math formulas now paste at appropriate inline size in external applications</li><li>Fixed math rendering detection for both inline and display math</li><li>Support for fenced math blocks using <code>```math</code> syntax</li></ul><p><strong>Developer Experience</strong></p><ul><li>Consolidated example CSS files into single <code>examples.css</code> for easier maintenance</li><li>Optimized example layouts to fit content above the fold (80vh total height)</li><li>Added favicon to all example HTML files</li><li>Improved responsive design with proper horizontal margins</li><li>Updated all examples to use consistent styling</li></ul><h3>Bug Fixes</h3><ul><li>Fixed copy-rendered functionality in editors with contenteditable wrapper</li><li>Fixed MathJax rendering with proper selector detection</li><li>Fixed library reference errors by checking existence before use</li><li>Fixed build size table detection in README updates</li><li>Fixed STL loader dependency on global THREE object</li><li>Resolved mermaid initialization errors in rollup builds</li></ul><h3>Documentation</h3><ul><li>Reorganized examples with autoload as the recommended starting point</li><li>Added clear descriptions for all build configurations</li><li>Updated build size tables with accurate measurements</li><li>Improved responsive design for mobile devices</li><li>Simplified build options to 3 main configurations</li></ul><hr><h2>v1.0.17 (July 22, 2025)</h2><h3>Features</h3><ul><li>Added line number support to source view</li><li>Added examples for using themes with line numbers</li><li>Dark theme styling improvements</li><li>Improved CLI build system</li></ul><h3>Improvements</h3><ul><li>Resolved line number bugs and improved example</li><li>Updated line numbers example with proper dependencies and formatting</li><li>Removed container borders for cleaner appearance</li><li>Updated bin path format to match npm requirements</li></ul><h3>Documentation</h3><ul><li>Added comprehensive documentation for line numbers feature</li><li>Added theme usage examples</li></ul><hr><h2>v1.0.16 (July 16, 2025)</h2><h3>Improvements</h3><ul><li>Performance optimizations for large documents</li><li>Better memory management for revision history</li><li>Improved scrolling synchronization between panes</li><li>Enhanced bidirectional editing reliability</li></ul><h3>Documentation</h3><ul><li>Updated API documentation with performance tips</li><li>Added large document handling guide</li></ul><hr><h2>v1.0.15 (June 2025)</h2><h3>Build System Changes</h3><p><strong>Default Builds Now Include Dependencies</strong></p><ul><li>ESM/UMD builds now bundle markdown-it, diff-match-patch, and tiny-emitter (~240KB)</li><li>Eliminates import map configuration requirements for new users</li><li>Existing applications continue to work without changes</li></ul><p><strong>New Lean Builds</strong></p><ul><li>Added <code>-lean</code> variants for users who manage their own dependencies</li><li>Lean builds exclude bundled libraries for smaller size (126KB minified)</li></ul><p><strong>Standalone Builds</strong></p><ul><li>Fixed ESM standalone build generation</li><li>Resolved Leaflet icon side effects in standalone builds</li><li>Fixed GeoJSON rendering without prototype pollution</li><li>Standalone builds no longer modify global Leaflet prototype</li></ul><h3>Build Sizes</h3><table><thead><tr><th>Build</th><th>Size</th><th>Description</th></tr></thead><tbody><tr><td>squibview.esm.min.js</td><td>245KB</td><td>Standard ESM with bundled dependencies</td></tr><tr><td>squibview.esm-lean.min.js</td><td>126KB</td><td>Minimal ESM without dependencies</td></tr><tr><td>squibview.umd.min.js</td><td>246KB</td><td>Standard UMD with bundled dependencies</td></tr><tr><td>squibview.umd-lean.min.js</td><td>128KB</td><td>Minimal UMD without dependencies</td></tr><tr><td>squibview.standalone.*.min.js</td><td>3.6-3.8MB</td><td>All features bundled</td></tr></tbody></table><h3>Documentation</h3><ul><li>Updated all docs to reflect bundled dependencies in default builds</li><li>Cleaned up examples to use best practices</li><li>Removed duplicate Leaflet icon configuration from examples</li></ul><hr><h2>v1.0.13 - v1.0.14 (May 2025)</h2><h3>Diff View Support</h3><ul><li><strong>NEW</strong>: <code>getSourceDiff()</code> method to get diff data between any two revisions</li><li><strong>NEW</strong>: <code>getSourceDiffHTML()</code> method for side-by-side diff visualization</li><li><strong>NEW</strong>: <code>getSourceDiffInline()</code> method for inline diff with blue additions/red deletions</li><li><strong>NEW</strong>: CSS styling for diff views with proper colors and formatting</li><li><strong>NEW</strong>: Support for comparing any revision against any other (including initial state)</li><li><strong>NEW</strong>: Working example demos: <code>diff_view_inline.html</code> and <code>diff_view_live.html</code></li></ul><h3>RevisionHistory Enhancements</h3><ul><li><strong>NEW</strong>: <code>getContentAtRevision()</code> method to retrieve content at any revision</li><li><strong>NEW</strong>: <code>computeDiff()</code> method for character-level diffs</li><li><strong>NEW</strong>: <code>computeLineDiff()</code> method for line-by-line comparisons</li><li><strong>NEW</strong>: <code>getDiffStats()</code> method to get additions/deletions/changes count</li><li><strong>NEW</strong>: <code>getRevisionInfo()</code> method for revision metadata</li></ul><h3>Examples & Documentation</h3><ul><li><strong>NEW</strong>: Inline diff demo showing manual revision comparison</li><li><strong>NEW</strong>: Live diff demo showing real-time cumulative changes</li><li><strong>IMPROVED</strong>: ESM module loading in diff examples</li><li><strong>FIXED</strong>: Revision dropdown population and event handling</li><li><strong>FIXED</strong>: Baseline revision persistence in live diff mode</li></ul><hr><h2>v1.0.11 - v1.0.12 (July 2025)</h2><h3>Documentation & Build Improvements</h3><ul><li>Enhanced documentation structure</li><li>Fixed badge copy errors for <a href="http://README.md">README.md</a> generation</li><li>Improved regex patterns in build scripts</li><li>Fixed release script issues</li><li>Updated demo GIF maker tool</li><li>Fixed CORS errors on markdown badges rendering</li><li>Incremental build improvements</li></ul><hr><h2>v1.0.10 (June 24, 2025)</h2><h3>Geographic & 3D Content Support</h3><ul><li><strong>NEW</strong>: GeoJSON rendering with interactive Leaflet maps</li><li><strong>NEW</strong>: TopoJSON support for geographic visualizations</li><li><strong>NEW</strong>: ASCII STL support for 3D model rendering</li><li><strong>IMPROVED</strong>: Enhanced content type detection and rendering</li></ul><hr><h2>v1.0.7 (June 19, 2025)</h2><h3>Math & Content Copy Improvements</h3><ul><li><strong>FIXED</strong>: Math equation copy-paste functionality with proper sizing</li><li><strong>FIXED</strong>: Image copy-paste sizing issues in rendered content</li><li><strong>IMPROVED</strong>: Content copying reliability across different content types</li><li><strong>IMPROVED</strong>: SVG content width handling during copy operations</li></ul><hr><h2>v1.0.5 (June 17, 2025)</h2><h3>CLI Introduction & Syntax Highlighting Fixes</h3><ul><li><strong>NEW</strong>: SquibV CLI tool for command-line Markdown to HTML conversion</li><li><strong>NEW</strong>: Standalone build support for CLI distribution</li><li><strong>FIXED</strong>: Syntax highlighting bugs in code blocks</li><li><strong>IMPROVED</strong>: Release tooling and version management</li><li><strong>IMPROVED</strong>: Integration testing for CLI functionality</li></ul><h3>CLI Features</h3><ul><li>Convert Markdown files to HTML from command line</li><li>Support for offline bundling with <code>--bundle-offline</code> option</li><li>Watch mode for automatic rebuilding</li><li>Comprehensive help and documentation</li></ul><hr><h2>v1.0.4 (June 16, 2025)</h2><h3>Build System & Release Management</h3><ul><li><strong>IMPROVED</strong>: Release management tools for both library and CLI versions</li><li><strong>IMPROVED</strong>: Build tools and automation scripts</li><li><strong>UPDATED</strong>: Documentation for CLI usage and installation</li></ul><hr><h2>v1.0.3 (June 16, 2025)</h2><h3>Math Rendering Improvements</h3><ul><li><strong>FIXED</strong>: Math rendering issues in various contexts</li><li><strong>IMPROVED</strong>: MathJax integration and reliability</li><li><strong>UPDATED</strong>: Documentation and examples for math support</li></ul><hr><h2>v1.0.1 (June 3, 2025)</h2><h3>Bidirectional Editing Fixes & Runtime Identification</h3><ul><li><strong>FIXED</strong>: Runtime version identification issues</li><li><strong>FIXED</strong>: Bidirectional rendering problems with SVG content</li><li><strong>FIXED</strong>: SVG roundtrip editing in rendered → source updates</li><li><strong>IMPROVED</strong>: Bidirectional editing reliability and accuracy</li><li><strong>UPDATED</strong>: Release instructions and documentation</li></ul><hr><h2>v1.0.0 (June 3, 2025)</h2><h3>Major Release - Production Ready</h3><ul><li><strong>MILESTONE</strong>: First stable 1.0 release</li><li><strong>STABLE</strong>: All core features tested and production-ready</li><li><strong>COMPLETE</strong>: Bidirectional editing (source ↔ rendered) fully functional</li><li><strong>COMPLETE</strong>: Comprehensive content type support</li></ul><hr><h2>v0.0.36 (May 20, 2025)</h2><h3>Data Format Support & CI Improvements</h3><ul><li><strong>NEW</strong>: CSV, TSV, and PSV inline block support with table rendering</li><li><strong>NEW</strong>: Smart line feed handling for better text flow</li><li><strong>IMPROVED</strong>: GitHub Actions CI workflow optimization</li><li><strong>IMPROVED</strong>: Build performance and testing speed</li><li><strong>UPDATED</strong>: Examples and documentation content</li></ul><hr><h2>v0.0.35 (May 14, 2025)</h2><h3>Image Handling & React Integration</h3><ul><li><strong>IMPROVED</strong>: Image handling to preserve URLs in source view by default</li><li><strong>FIXED</strong>: React example import issues</li><li><strong>UPDATED</strong>: Example content and documentation</li><li><strong>ENHANCED</strong>: Image workflow for better user experience</li></ul><hr><h2>v0.0.33 (May 14, 2025)</h2><h3>Build System Enhancements</h3><ul><li><strong>NEW</strong>: Standalone ESM build for modern module systems</li><li><strong>IMPROVED</strong>: React build configuration and compatibility</li><li><strong>FIXED</strong>: All build targets (ESM, UMD, Standalone) working correctly</li><li><strong>ENHANCED</strong>: Build reliability across different environments</li></ul><hr><h2>v0.0.32 (May 11, 2025)</h2><h3>React Support & Build Fixes</h3><ul><li><strong>NEW</strong>: Full React build support with standalone ESM</li><li><strong>FIXED</strong>: React build configuration issues</li><li><strong>IMPROVED</strong>: Build system reliability</li><li><strong>ADDED</strong>: React-specific examples and documentation</li></ul><hr><h2>v0.0.30 (March 28, 2025)</h2><h3>Text Selection API</h3><ul><li>Text selection API with events for detecting when text is selected in either panel</li><li><code>onTextSelected()</code> method to register callbacks for text selection events</li><li><code>getCurrentSelection()</code> method to get current text selection data</li><li><code>replaceSelectedText()</code> method for replacing selected text</li><li><code>setSelectionEditable()</code> method to make selected text non-editable</li><li><code>toggleSelectionLock()</code> method to smartly toggle between locked/unlocked states</li><li>Visual indicators for locked content (lock icon, styling)</li><li><code>clearSelection()</code> method to clear current selection</li><li><code>onReplaceSelectedText</code> getter/setter for handling selections and automatic replacement</li><li>Comprehensive documentation in <code>/docs</code> directory</li><li>New examples for text selection features</li><li>Selection data caching for improved performance</li><li>Updated version in package.json and static version property</li><li>Improved event handling for text selections</li></ul><hr><h2>v0.0.29a (March 22, 2025)</h2><h3>Undo/Redo System</h3><ul><li>Support for undo/redo in both source and rendered panels</li><li>RevisionManager with memory-efficient diff storage</li><li>Bidirectional editing enhancements</li><li>Various bug fixes related to content type handling</li></ul><hr><h2>v0.0.29 (March 15, 2025)</h2><h3>Core Features</h3><ul><li>Bidirectional editing support</li><li>Enhanced content type handling</li><li>Support for CSV, TSV, and other separator formats</li></ul><hr><h2>v0.0.28 (March 1, 2025)</h2><h3>Plugin System</h3><ul><li>Plugin system for extending functionality</li><li>Support for RevealJS presentations</li><li>Custom renderer registration</li><li>Enhanced clipboard operations</li></ul><hr><h2>v0.0.27 (February 15, 2025)</h2><h3>Initial Release</h3><ul><li>Initial release with core features</li><li>Markdown and HTML rendering</li><li>Split view editing</li><li>Basic clipboard support</li></ul><hr><h2>Release Process</h2><h3>Current Process</h3><p>✅ <strong>Automated tooling</strong>: <code>tools/make-release.sh</code> script handles git tagging and GitHub releases
✅ <strong>Version synchronization</strong>: Automatic sync between package.json and src/version.js
✅ <strong>Pre-flight checks</strong>: Validates git status, authentication, and branch
✅ <strong>Manual npm publish</strong>: Prevents accidental publishes with dry-run preview</p><h3>Release Checklist</h3><ol><li>Update package.json version</li><li>Run <code>npm run prerelease</code> (runs tests and builds)</li><li>Add release notes entry to this file</li><li>Run <code>./tools/make-release.sh "release notes"</code></li><li>Test npm package locally</li><li>Publish to npm with <code>npm publish</code></li><li>Update documentation if needed</li></ol><h3>Version History Summary</h3><ul><li><strong>v1.0.19</strong>: Added streaming mode for LLMs to stream docs in w/o partial fence rendering errors</li><li><strong>v1.0.18</strong>: Integrated autoload, improved math rendering, consolidated examples</li><li><strong>v1.0.17</strong>: Line numbers support, theme improvements</li><li><strong>v1.0.16</strong>: Performance optimizations for large documents</li><li><strong>v1.0.15</strong>: Bundled dependencies in default builds, lean build options</li><li><strong>v1.0.13-14</strong>: Comprehensive diff view support</li><li><strong>v1.0.10</strong>: GeoJSON and 3D model support</li><li><strong>v1.0.5</strong>: CLI tool introduction</li><li><strong>v1.0.0</strong>: First stable release</li><li><strong>v0.0.27-30</strong>: Foundation releases with core features</li></ul></div>
<script>
// Initialize MathJax after page load
document.addEventListener('DOMContentLoaded', function() {
if (window.MathJax && window.MathJax.typesetPromise) {
window.MathJax.typesetPromise().catch(function(err) {
console.warn('MathJax typesetting failed:', err);
});
}
});
</script>
<script>
// Initialize Mermaid after page load
document.addEventListener('DOMContentLoaded', function() {
if (window.mermaid) {
try {
window.mermaid.initialize({
startOnLoad: false,
theme: 'default',
securityLevel: 'loose',
fontFamily: 'inherit'
});
// Manually render all mermaid diagrams
const mermaidElements = document.querySelectorAll('.mermaid');
mermaidElements.forEach(function(element, index) {
const id = 'mermaid-' + index;
element.id = id;
try {
window.mermaid.render(id + '-svg', element.textContent, function(svgCode) {
element.innerHTML = svgCode;
});
} catch (err) {
console.warn('Mermaid rendering failed for element', index, ':', err);
// Fallback: show the text content
element.innerHTML = '<pre>' + element.textContent + '</pre>';
}
});
} catch (err) {
console.warn('Mermaid initialization failed:', err);
}
}
});
</script>
</body>
</html>