Files
MetonaEditor/CHANGELOG.md
T
thzxx 1cd5b63174
CI / test (16.x) (push) Canceled after 0s
CI / test (18.x) (push) Canceled after 0s
CI / test (20.x) (push) Canceled after 0s
feat: v0.2.1 — reference links, context menu, RTL, ja/ko, regex search, hooks, copy API
## Added
- Reference link/image resolution: [text][ref] + ![alt][ref] with [ref]: url definitions
- Right-click context menu: undo/redo/cut/copy/paste/selectAll + custom items
- RTL CSS layout support for Arabic, Hebrew, Persian etc.
- Japanese (ja) and Korean (ko) locales with 60+ keys each
- Divider position localStorage persistence
- Regex search toggle in search/replace panel
- Export HTML with embedded CSS styles
- beforeChange / afterChange lifecycle hooks (instance + global)
- copyAsMarkdown() / copyAsHTML() clipboard APIs
- CHANGELOG.md, CONTRIBUTING.md, CI workflow (.github/workflows/ci.yml)
- 2 new test suites: index.test.ts, styles.test.ts (684 total tests, +74)

## Changed
- autoSave plugin: closure-based state per instance instead of this context
- Plugin install() now receives options as second argument
- RTL locale detection: now uses language prefix (ar-SA → RTL)
- Rollup dev mode: only builds UMD format
- prepublishOnly now includes typecheck + test
- Version bumped to 0.2.1

## Fixed
- [text][ref] now correctly renders as link (was raw text)
- ![alt][ref] no longer produces empty src
- autoSave plugin state isolation across multiple editor instances
- Footnote definitions no longer consumed by refDef handler
2026-07-25 08:53:58 +08:00

151 lines
5.2 KiB
Markdown

# Changelog
All notable changes to MetonaEditor will be documented in this file.
## [0.2.1] - 2026-07-25
### Added
- **Reference link/image resolution**: Full support for `[text][ref]` and `![alt][ref]` syntax with `[ref]: url` definitions.
- **Right-click context menu**: Built-in undo/redo/cut/copy/paste/selectAll with custom item support.
- **RTL (Right-to-Left) CSS support**: Full RTL layout for Arabic, Hebrew, Persian and other RTL languages.
- **Japanese (ja) and Korean (ko) locales**: Complete translations for all 60+ UI keys.
- **Divider position persistence**: Split-view divider ratio saved to localStorage and restored on reload.
- **Regex search support**: Toggle regex mode in search panel with `.*` button.
- **Export HTML with embedded CSS**: `exportHTML` now includes minimal CSS styles for standalone viewing.
- **`beforeChange` / `afterChange` lifecycle hooks**: Instance and global hooks that fire around content changes.
- **`copyAsMarkdown()` / `copyAsHTML()` APIs**: Copy editor content to clipboard as Markdown or rich HTML.
- **New test suites**: `tests/index.test.ts` (global API) and `tests/styles.test.ts` (CSS injection).
- **684 tests** (up from 610), 9 test suites (up from 7).
### Changed
- **autoSave plugin refactored**: Uses closure-based state per instance instead of `this` context, preventing state conflicts when the same plugin object is shared across multiple editors.
- **Plugin `install()` now receives `options` as second argument** for cleaner API.
- **RTL locale detection improved**: Now detects RTL by language prefix (e.g., `ar-SA` → RTL).
### Fixed
- Reference link syntax `[text][ref]` now correctly resolves to links instead of raw text.
- Reference image syntax `![alt][ref]` no longer produces empty `src=""`.
- autoSave plugin state isolation when used across multiple editor instances.
- Footnote definitions no longer incorrectly consumed by reference definition parser.
---
## [0.2.0] - 2026-07-23
### Added
- **TypeScript full rewrite**: All 12 source modules in TypeScript strict mode with complete type exports.
- **Parser 99% line coverage**: Self-built Markdown parser with 14 block-level handlers.
- **parseTokens / renderTokens API**: Separate tokenization and rendering for transform pipelines.
- **registerBlockHandler**: Extensible block syntax via handler registration.
- **610 tests**: Comprehensive test coverage across 7 suites.
- **Triple emphasis `***text***`**: Bold+italic combined formatting.
- **Link text inline formatting**: Bold, italic, and code within link text.
- **Backslash escape**: `\*`, `\_`, `\\` for literal punctuation.
- **Tab-indented code blocks**: Tab or 4-space indented code.
### Changed
- **Plugin system v2**: Topological sort dependency management, 6 preset plugins.
- **Theme system overhaul**: CSS variable-based, instance isolation, external theme following.
- **i18n overhaul**: Instance-level locale isolation, plural rules, remote loading.
---
## [0.1.15] - 2026-07-21
### Added
- Parser short and medium-term improvements.
- Triple emphasis syntax `***bold italic***`.
- Link text inline formatting support.
- Backslash escape sequences.
- `parseTokens` / `renderTokens` separation API.
---
## [0.1.14] - 2026-07-20
### Added
- Syntax highlighting feature (reverted in 0.1.15).
- Mermaid.js CDN support in demo page.
---
## [0.1.7] - 2026-07-19
### Added
- Line number gutter with active line highlighting.
- Smart Enter (list/quote continuation).
- Bracket auto-close with selection wrapping.
- Outline panel.
---
## [0.1.6] - 2026-07-18
### Added
- `topologicalSort` for plugin dependency resolution.
- `validateConfig` for plugin configuration validation.
- `editor.unuse()` to uninstall plugins.
- `editor.registerShortcut()` / `unregisterShortcut()`.
- `editor.toast()` notification API.
---
## [0.1.5] - 2026-07-17
### Added
- Instance-level theme context (`createInstanceTheme`).
- `followExternalTheme` / `adoptFromParent` for external theme following.
- `exportCSSVars` / `getCSSVariable` for theme inspection.
- `applyThemeToElement` for scoped theme application.
---
## [0.1.4] - 2026-07-16
### Added
- Setext headings (underlined H1/H2).
- Nested lists (3+ levels).
- Indented code blocks (4 spaces / tab).
- HTML comment passthrough.
- Entity reference protection.
- Hard line breaks (2 trailing spaces).
- Link titles with single quotes.
- LaTeX math formulas (`$inline$` / `$$block$$`).
- Footnotes `[^id]`.
- Definition lists (`Term\n: definition`).
- Backtick exact matching (`` ` ``).
- Enhanced emoji set (150+).
---
## [0.1.3] - 2026-07-15
### Fixed
- `exec` custom action support via `_customActions`.
- `refresh()` method for forced re-render.
- Focus/blur event parameter fixes.
---
## [0.1.2] - 2026-07-14
### Added
- Highlight marker `==text==`.
- Superscript `x^2^` and subscript `H~2~O`.
- Emoji shortcodes `:smile:` (100+ emojis).
- Table column alignment (`:---:`, `---:`).
- Read-only mode with `readOnly` config and `setReadOnly()`.
---
## [0.1.0] - 2026-07-10
### Added
- Initial release.
- Markdown editor with edit/split/preview modes.
- Self-built parser (CommonMark + GFM).
- Plugin system with autoSave, exportTool, searchReplace.
- Theme system (light/dark/auto).
- i18n (zh-CN/en-US).
- Toolbar, shortcuts, history stack.