release: v0.1.6 — plugin v2, i18n instance isolation, shortcuts, toolbar, toast
feat(plugins): plugin system v2
- depends: declarative plugin dependencies with topological sort (Kahn algorithm)
- async plugins: install() returning Promise auto-await
- editor.unuse(name): uninstall individual plugins
- pluginUtils.validateConfig(schema, config): configuration validation
- plugin priority field controls install order within same dependency level
feat(i18n): instance-level locale isolation, pluralization, dynamic loading
- createInstanceI18n(): per-editor independent locale contexts
- editor.setLocale()/getLocale()/t() instance methods
- Plural rules: t('items', { count: 5 }) auto-selects one/other/few/many
- i18nUtils.loadRemote(url, locale): fetch translation packs from remote
- editor.on('localeChange') event
feat(core): toolbar & shortcut customization, context menu, toast
- editor.registerShortcut(combo, handler): custom keyboard shortcuts
- editor.configureToolbar(tools): dynamic toolbar rebuild
- editor.removeToolbarButton(action): remove single button
- editor.registerContextMenu(items): right-click context menu
- editor.toast(msg, {type, duration, animation}): toast notifications
style: toast notifications, context menu, dropdown CSS
- .me-toast with success/error/warning/info types, fade/slide animations
- .me-context-menu with items, separators, shortcut hints
test: 22 new tests covering plugin deps, unuse, shortcuts, toast, i18n plural (521 total)
chore: bump version 0.1.5 → 0.1.6 across all files, site, types
This commit is contained in:
+16
-4
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* MetonaEditor - 轻量级 Markdown Editor 库
|
||||
* @module metona-editor
|
||||
* @version 0.1.5
|
||||
* @version 0.1.6
|
||||
* @author thzxx
|
||||
* @description 现代化、零依赖、易扩展、易维护、易使用的 Markdown 编辑器库。单文件,开箱即用。
|
||||
* @license MIT
|
||||
@@ -23,13 +23,13 @@
|
||||
import { MarkdownEditor } from './core.js';
|
||||
import { parseMarkdown, safeUrl, slugify, clearRenderCache } from './parser.js';
|
||||
import { themeUtils, exportCSSVars, getCSSVariable, followExternalTheme, adoptFromParent, createInstanceTheme } from './themes.js';
|
||||
import { i18nUtils } from './i18n.js';
|
||||
import { pluginUtils, presetPlugins } from './plugins.js';
|
||||
import { i18nUtils, createInstanceI18n, loadRemote } from './i18n.js';
|
||||
import { pluginUtils, presetPlugins, topologicalSort, validateConfig } from './plugins.js';
|
||||
import { animationUtils } from './animations.js';
|
||||
import { DEFAULTS, ICONS, THEMES, EDIT_MODES, DEFAULT_TOOLBAR, TOOLBAR_ACTIONS } from './constants.js';
|
||||
|
||||
// 版本信息
|
||||
const VERSION = '0.1.5';
|
||||
const VERSION = '0.1.6';
|
||||
|
||||
/**
|
||||
* 全局默认插件队列
|
||||
@@ -202,6 +202,14 @@ const api = {
|
||||
plugins: pluginUtils,
|
||||
presetPlugins,
|
||||
|
||||
// 插件工具(v0.1.6)
|
||||
topologicalSort,
|
||||
validateConfig,
|
||||
|
||||
// i18n 工具(v0.1.6)
|
||||
createInstanceI18n,
|
||||
loadRemote,
|
||||
|
||||
// 主题工具(v0.1.5 新增)
|
||||
exportCSSVars,
|
||||
getCSSVariable,
|
||||
@@ -247,6 +255,10 @@ export {
|
||||
pluginUtils,
|
||||
presetPlugins,
|
||||
animationUtils,
|
||||
topologicalSort,
|
||||
validateConfig,
|
||||
createInstanceI18n,
|
||||
loadRemote,
|
||||
exportCSSVars,
|
||||
getCSSVariable,
|
||||
followExternalTheme,
|
||||
|
||||
Reference in New Issue
Block a user