diff --git a/packages/engine/src/engine/index.ts b/packages/engine/src/engine/index.ts
index f5fb9f4f..4dc6f0bf 100644
--- a/packages/engine/src/engine/index.ts
+++ b/packages/engine/src/engine/index.ts
@@ -50,7 +50,7 @@ import Parser from '../parser';
import Language from '../language';
import Mark from '../mark';
import List from '../list';
-import { EditorInterface, TypingInterface } from '../types';
+import { TypingInterface } from '../types';
import Typing from '../typing';
import Container from './container';
import Inline from '../inline';
diff --git a/packages/engine/src/typing/keydown/shift-enter.ts b/packages/engine/src/typing/keydown/shift-enter.ts
index c052d933..41053738 100644
--- a/packages/engine/src/typing/keydown/shift-enter.ts
+++ b/packages/engine/src/typing/keydown/shift-enter.ts
@@ -34,18 +34,26 @@ class ShitEnter implements TypingHandleInterface {
event.preventDefault();
change.cacheRangeBeforeCommand();
const range = change.range.get();
- const br = $('
');
- inline.insert(br, range);
- if (block.isLastOffset(range, 'end')) {
- if (
- (!br.next() || br.next()?.name !== 'br') &&
- (!br.prev() || br.prev()?.name !== 'br')
- ) {
- const cloneBr = br.clone();
- br.after(cloneBr);
- range.select(cloneBr).collapse(false);
+ if (range.startNode.closest('li').length === 0) {
+ this.engine.typing
+ .getHandleListener('enter', 'keydown')
+ ?.trigger(event);
+ return;
+ } else {
+ const br = $('
');
+ inline.insert(br, range);
+ if (block.isLastOffset(range, 'end')) {
+ if (
+ (!br.next() || br.next()?.name !== 'br') &&
+ (!br.prev() || br.prev()?.name !== 'br')
+ ) {
+ const cloneBr = br.clone();
+ br.after(cloneBr);
+ range.select(cloneBr).collapse(false);
+ }
}
}
+
for (let i = 0; i < this.listeners.length; i++) {
const listener = this.listeners[i];
const result = listener(event);