diff --git a/web/src/app/Icon.vue b/web/src/app/Icon.vue
index 043f9ce..dfcc01c 100644
--- a/web/src/app/Icon.vue
+++ b/web/src/app/Icon.vue
@@ -22,6 +22,7 @@ const paths = {
palette: 'M12 22a10 10 0 1 1 10-10c0 2.8-2.2 4-4 4h-2a2 2 0 0 0-1.5 3.3A1.7 1.7 0 0 1 12 22zM7.5 10.5h.01M12 7.5h.01M16.5 10.5h.01',
user: 'M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z',
outline: 'M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01',
+ source: 'm8 6-6 6 6 6m8-12 6 6-6 6',
command: 'M18 3a3 3 0 0 0-3 3v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 0 0 0-6z',
info: 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 11v6M12 7h.01',
}
diff --git a/web/src/app/TabBar.vue b/web/src/app/TabBar.vue
index bad06cf..842201a 100644
--- a/web/src/app/TabBar.vue
+++ b/web/src/app/TabBar.vue
@@ -3,7 +3,7 @@ import { nextTick, ref } from 'vue'
import { commandTitle } from './commands'
import Icon from './Icon.vue'
import { noteTitle } from './paths'
-import { closeTab, ws } from './workspace'
+import { closeTab, toggleSourceMode, ws } from './workspace'
// 拖动排序:拖到某个标签的左半边插到它前面,右半边插到它后面
const TAB_TYPE = 'application/x-rawmark-tab'
@@ -103,9 +103,14 @@ function closeRight(path: string) {