Two build targets — core and full

dist/ribbit/ribbit-core.js    — editor without extra features
dist/ribbit/ribbit.js         — editor with all features

Added a theme feature flag for vim keybindings
This commit is contained in:
gsb
2026-04-29 07:57:40 +00:00
parent 3368e719fd
commit 2e28598243
5 changed files with 48 additions and 22 deletions
+7 -7
View File
@@ -6,14 +6,14 @@ describe('VimHandler', () => {
beforeEach(() => resetDOM('hello world'));
it('starts in insert mode', () => {
const editor = new r.Editor({});
const editor = new r.Editor({ currentTheme: 'vim', themes: [{ name: 'vim', features: { sourceMode: true, vim: true }, tags: r.defaultTags }] });
editor.run();
editor.edit();
expect(editor.element.classList.contains('vim-insert')).toBe(true);
});
it('Esc enters normal mode', () => {
const editor = new r.Editor({});
const editor = new r.Editor({ currentTheme: 'vim', themes: [{ name: 'vim', features: { sourceMode: true, vim: true }, tags: r.defaultTags }] });
editor.run();
editor.edit();
editor.element.dispatchEvent(new r.window.KeyboardEvent('keydown', { key: 'Escape' }));
@@ -22,7 +22,7 @@ describe('VimHandler', () => {
});
it('i returns to insert mode', () => {
const editor = new r.Editor({});
const editor = new r.Editor({ currentTheme: 'vim', themes: [{ name: 'vim', features: { sourceMode: true, vim: true }, tags: r.defaultTags }] });
editor.run();
editor.edit();
// Enter normal mode
@@ -34,7 +34,7 @@ describe('VimHandler', () => {
});
it('disables toolbar in normal mode', () => {
const editor = new r.Editor({ autoToolbar: false });
const editor = new r.Editor({ autoToolbar: false, currentTheme: 'vim', themes: [{ name: 'vim', features: { sourceMode: true, vim: true }, tags: r.defaultTags }] });
editor.run();
editor.toolbar.render();
editor.edit();
@@ -45,7 +45,7 @@ describe('VimHandler', () => {
});
it('re-enables toolbar in insert mode', () => {
const editor = new r.Editor({ autoToolbar: false });
const editor = new r.Editor({ autoToolbar: false, currentTheme: 'vim', themes: [{ name: 'vim', features: { sourceMode: true, vim: true }, tags: r.defaultTags }] });
editor.run();
editor.toolbar.render();
editor.edit();
@@ -56,7 +56,7 @@ describe('VimHandler', () => {
});
it('detaches when leaving edit mode', () => {
const editor = new r.Editor({});
const editor = new r.Editor({ currentTheme: 'vim', themes: [{ name: 'vim', features: { sourceMode: true, vim: true }, tags: r.defaultTags }] });
editor.run();
editor.edit();
editor.element.dispatchEvent(new r.window.KeyboardEvent('keydown', { key: 'Escape' }));
@@ -68,7 +68,7 @@ describe('VimHandler', () => {
});
it('only activates in edit mode', () => {
const editor = new r.Editor({});
const editor = new r.Editor({ currentTheme: 'vim', themes: [{ name: 'vim', features: { sourceMode: true, vim: true }, tags: r.defaultTags }] });
editor.run();
editor.wysiwyg();
// Esc in wysiwyg should not add vim classes