Skip to content

Commit a9aa1ea

Browse files
YangFongyanglbme
authored andcommitted
feat: support title navigation collapse expansion
1 parent 92bc53b commit a9aa1ea

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

src/views/CodemirrorEditor.vue

+24-7
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
} from '@/utils'
1010
import fileApi from '@/utils/file'
1111
import CodeMirror from 'codemirror'
12+
import { Minimize2, MoveDiagonal } from 'lucide-vue-next'
1213
1314
const store = useStore()
1415
const displayStore = useDisplayStore()
@@ -359,6 +360,8 @@ onMounted(() => {
359360
onEditorRefresh()
360361
mdLocalToRemote()
361362
})
363+
364+
const isOpenHeadingSlider = ref(false)
362365
</script>
363366

364367
<template>
@@ -438,13 +441,27 @@ onMounted(() => {
438441

439442
<BackTop target="preview" :right="40" :bottom="40" />
440443
</div>
441-
<ul class="bg-background absolute left-0 top-0 max-h-100 w-60 overflow-auto border rounded-2 p-2 text-sm shadow">
442-
<li v-for="(item, index) in store.titleList" :key="index" class="line-clamp-1 py-1 leading-6 hover:bg-gray-300 dark:hover:bg-gray-600" :style="{paddingLeft: item.level - 0.5 + 'em'}">
443-
<a :href="item.url">
444-
{{ item.title }}
445-
</a>
446-
</li>
447-
</ul>
444+
<div
445+
class="bg-background absolute left-0 top-0 border rounded-2 p-2 text-sm shadow"
446+
>
447+
<Button variant="outline" size="icon" @click="isOpenHeadingSlider = !isOpenHeadingSlider">
448+
<Minimize2 v-show="isOpenHeadingSlider" class="size-4" />
449+
<MoveDiagonal v-show="!isOpenHeadingSlider" class="size-4" />
450+
</Button>
451+
<ul
452+
class="overflow-auto transition-all"
453+
:class="{
454+
'max-h-0 w-0': !isOpenHeadingSlider,
455+
'max-h-100 w-60 mt-2': isOpenHeadingSlider,
456+
}"
457+
>
458+
<li v-for="(item, index) in store.titleList" :key="index" class="line-clamp-1 py-1 leading-6 hover:bg-gray-300 dark:hover:bg-gray-600" :style="{paddingLeft: item.level - 0.5 + 'em'}">
459+
<a :href="item.url">
460+
{{ item.title }}
461+
</a>
462+
</li>
463+
</ul>
464+
</div>
448465
</div>
449466
<CssEditor class="order-2 flex-1" />
450467
<RightSlider class="order-2" />

0 commit comments

Comments
 (0)