All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Frontmatter parsing support
- Markdown validation utilities
- Nested list support improvements
0.3.0 - 2026-01-27
- Version bump for
create-markdownconvenience package from 0.1.0 to 0.3.0 - Aligned version with monorepo packages
0.2.2 - 2026-01-21
- Maintenance release with documentation updates
0.2.1 - 2026-01-20
- Live inline markdown rendering in playground editor
- Real-time markdown pattern detection (
**bold**,*italic*,`code`,~~strikethrough~~,==highlight==,[link](url)) - Block conversion shortcuts (type
#for headings,-for lists,>for blockquotes, ``` for code blocks,---for dividers) - List item management (Enter to add, Backspace to remove, Tab for indent/outdent)
- Arrow key navigation between blocks and list items
- Keyboard shortcuts (Cmd/Ctrl+B for bold, Cmd/Ctrl+I for italic, Cmd/Ctrl+U for underline)
- Improved cursor position preservation during inline markdown rendering
- Fixed list item content synchronization on Enter key press
- Fixed blur handler to prevent content loss during list operations
- Improved HTML-to-spans parsing to preserve link styles
- Enhanced playground with full WYSIWYG editing capabilities
- Improved content editable handling with atomic updates
- Updated inline pattern detection to avoid partial matches
0.2.0 - 2026-01-20
This release introduces a complete block-based markdown notes system with zero dependencies.
BlockTypeunion with 11 block types: paragraph, heading, bulletList, numberedList, checkList, codeBlock, blockquote, table, image, divider, calloutBlock<T>generic interface with id, type, content, children, and propsTextSpanandInlineStylefor rich text formattingDocumentinterface for complete document representation
createBlock()- Generic block creatorparagraph(),heading(),h1()-h6()- Text blocksbulletList(),numberedList(),checkList()- List blockscodeBlock(),blockquote(),divider()- Structural blocksimage(),table(),callout()- Rich content blocks- Inline helpers:
bold(),italic(),code(),link(),strikethrough(),highlight()
createDocument(),emptyDocument(),cloneDocument()- CRUD operations:
insertBlock(),appendBlock(),removeBlock(),updateBlock() - Query operations:
findBlock(),getBlockIndex(),findBlocksByType() - Bulk operations:
setBlocks(),clearBlocks(),filterBlocks(),mapBlocks()
parse()/markdownToBlocks()- Parse markdown strings to blocksmarkdownToDocument()- Parse to full Document object- Line tokenizer with support for all common markdown constructs
- Inline style parser with nesting support
stringify()/blocksToMarkdown()- Serialize blocks to markdowndocumentToMarkdown()- Serialize Document objects- Configurable options: lineEnding, listIndent, headingStyle, codeBlockStyle
BlockRenderer- Render blocks as React elementsBlockElement- Render single blocks with custom renderersInlineContent- Render styled text spans
useDocument()- Full document state managementuseMarkdown()- Bidirectional markdown/blocks stateuseBlockEditor()- Selection and editing operations
fromMarkdown(markdown)- Quick parse to DocumenttoMarkdown(blocks)- Quick serialize to string