Skip to content

Commit 2a04ffd

Browse files
committed
chore(*): sync
1 parent 1206c3c commit 2a04ffd

File tree

12 files changed

+1194
-1040
lines changed

12 files changed

+1194
-1040
lines changed

package.json

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,29 @@
1818
"@pictogrammers/memory-svg": "^1.5.0",
1919
"floating-vue": "^5.2.2",
2020
"markdown-it": "^14.1.0",
21-
"pinia": "^2.2.2",
22-
"typescript": "^5.5.4",
21+
"pinia": "^2.2.6",
22+
"typescript": "^5.6.3",
2323
"vite-svg-loader": "^5.1.0",
24-
"vue": "^3.4.38",
25-
"vue-router": "^4.4.3"
24+
"vue": "^3.5.12",
25+
"vue-router": "^4.4.5"
2626
},
2727
"devDependencies": {
2828
"@rushstack/eslint-patch": "^1.10.4",
2929
"@tsconfig/node20": "^20.1.4",
30-
"@types/node": "^20.16.2",
31-
"@vitejs/plugin-vue": "^5.1.3",
32-
"@vitejs/plugin-vue-jsx": "^3.1.0",
33-
"@vue/eslint-config-prettier": "^8.0.0",
34-
"@vue/eslint-config-typescript": "^12.0.0",
30+
"@types/node": "^22.9.0",
31+
"@typescript-eslint/parser": "^8.13.0",
32+
"@vitejs/plugin-vue": "^5.1.4",
33+
"@vitejs/plugin-vue-jsx": "^4.0.1",
34+
"@vue/eslint-config-prettier": "^10.1.0",
35+
"@vue/eslint-config-typescript": "^14.1.3",
3536
"@vue/tsconfig": "^0.5.1",
36-
"eslint": "^8.57.0",
37-
"eslint-plugin-vue": "^9.27.0",
37+
"eslint": "^9.14.0",
38+
"eslint-plugin-vue": "^9.30.0",
3839
"less": "^4.2.0",
39-
"npm-run-all2": "^6.2.2",
40+
"npm-run-all2": "^7.0.1",
4041
"prettier": "^3.3.3",
41-
"vite": "^5.4.2",
42+
"vite": "^5.4.10",
4243
"vite-plugin-markdown": "^2.2.0",
43-
"vue-tsc": "^2.1.2"
44+
"vue-tsc": "^2.1.10"
4445
}
4546
}

pnpm-lock.yaml

Lines changed: 812 additions & 922 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/App.vue

Lines changed: 39 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup lang="ts">
2-
import { ref, onMounted, watch } from 'vue'
3-
import { useRouter, useRoute } from 'vue-router'
2+
import { computed, ref } from 'vue'
3+
import { useRouter, useRoute, type RouteRecordRaw } from 'vue-router'
44
55
import AlertRhombusFill from '@pictogrammers/memory-svg/svg/alert-rhombus-fill.svg'
66
@@ -51,51 +51,45 @@ watch(currentRoute, (): void => {
5151
})
5252
5353
*/
54+
55+
const filter = (route: RouteRecordRaw): boolean =>
56+
!route.meta?.hidden && !route.meta?.childOf && route.name !== currentRoute.name
57+
58+
const navList = ref(router.options.routes.filter(filter))
59+
60+
const breadcrumbs = computed(() => {
61+
if (!currentRoute)
62+
return []
63+
64+
const res = [currentRoute.name] as string[]
65+
66+
let parentGetter = currentRoute.meta.childOf
67+
68+
while (typeof parentGetter === 'function') {
69+
const parent = parentGetter()
70+
71+
res.unshift(parent.name)
72+
73+
parentGetter = parent.meta?.childOf
74+
}
75+
76+
return res
77+
})
78+
79+
const overrideBreadcrumbs = ref('')
80+
81+
router.afterEach(() => {
82+
navList.value = router.options.routes.filter(filter)
83+
overrideBreadcrumbs.value = ''
84+
})
5485
</script>
5586

5687
<template>
5788
<div class="wrapper-header">
5889
<div class="header">evie's pages</div>
59-
<!-- <v-tooltip class="menu" :triggers="['click']">
60-
<div class="label">
61-
menu
62-
</div>
63-
64-
<template #popper>
65-
<router-link v-for="route in router
66-
.getRoutes()
67-
.filter(
68-
(route) => !route.meta.hidden && !route.meta.child && route.name !== currentRoute.name,
69-
)" :key="route.path" :to="{ name: route.name }">
70-
[{{ route.name }}]
71-
</router-link>
72-
73-
</template>
74-
</v-tooltip> -->
75-
<!-- <div @click='navOpen = !navOpen' :class="`nav-button ${navOpen ? 'open' : ''}`">
76-
nav <{{ navOpen ? 'close' : 'open' }}>
77-
</div>
78-
79-
<div :class="`nav ${navOpen ? 'open' : ''}`">
80-
<router-link v-for="route in router
81-
.getRoutes()
82-
.filter(
83-
(route) => !route.meta.hidden && !route.meta.child && route.name !== currentRoute.name,
84-
)" :key="route.path" :to="{ name: route.name }">
85-
[{{ route.name }}]
86-
</router-link>
87-
</div> -->
8890

8991
<div class="nav">
90-
<router-link
91-
v-for="route in router
92-
.getRoutes()
93-
.filter(
94-
(route) => !route.meta.hidden && !route.meta.child && route.name !== currentRoute.name,
95-
)"
96-
:key="route.path"
97-
:to="{ name: route.name }"
98-
>
92+
<router-link v-for="route in navList" :key="route.path" :to="route">
9993
[{{ route.name }}]
10094
</router-link>
10195
</div>
@@ -111,30 +105,19 @@ watch(currentRoute, (): void => {
111105
i will no longer be able to maintain any of my projects for an indefinite period.
112106
</content-section>
113107

114-
<!--
115-
<div class="breadcrumbs-wrapper" ref="breadcrumbsWrapper">
116-
<div class="left-overlay" />
117-
<div class="right-overlay" />
118-
119-
<div class="breadcrumbs" ref="breadcrumbs" @scroll="breadcrumbsScrollHandler">
120-
<span v-for="{ name } in currentRoute.matched" class="breadcrumb" :key="name">
121-
{{ name }}
122-
</span>
123-
</div>
124-
</div>
125-
-->
126-
127108
<content-section class="wrapper-main" ref="mainWrapper">
128109
<template #header>
129-
<span v-for="{ name } in currentRoute.matched" class="breadcrumb" :key="name">
110+
<span class='breadcrumb' v-for="name in (!overrideBreadcrumbs ? breadcrumbs : overrideBreadcrumbs.split(','))"
111+
:key="name">
130112
{{ name }}
131113
</span>
132114
</template>
133115

134116
<router-view v-slot="{ Component }">
135117
<template v-if="Component">
136118
<suspense>
137-
<component :is="Component" />
119+
<component @overrideBreadcrumbs="(breadcrumbs) => overrideBreadcrumbs = String(breadcrumbs)"
120+
:is="Component" />
138121

139122
<template #fallback> loading... </template>
140123
</suspense>
@@ -148,7 +131,7 @@ watch(currentRoute, (): void => {
148131
</div>
149132
<div class="footer">
150133
made with <span style="color: crimson">{{ 'love <3' }}</span> by
151-
<span style="color: beige">evie</span>
134+
<span style="color: beige">evie</span>
152135
</div>
153136
</div>
154137
</template>

src/css/app/default.less

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@
102102

103103
#app[data-theme='default'] > .wrapper-main {
104104
flex: 1;
105+
106+
display: flex;
107+
108+
flex-direction: column;
109+
110+
> .header > .wrapper > .breadcrumb:not(:first-child):before {
111+
content: ' > ';
112+
113+
font-size: smaller;
114+
115+
vertical-align: baseline;
116+
}
105117
}
106118

107119
#app[data-theme='default'] > .wrapper-footer {

src/css/app/legacy.less

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,18 @@
131131

132132
#app[data-theme='legacy-like'] > .wrapper-main {
133133
flex: 1;
134+
135+
display: flex;
136+
137+
flex-direction: column;
138+
139+
> .header > .wrapper > .breadcrumb:not(:first-child):before {
140+
content: ' > ';
141+
142+
font-size: smaller;
143+
144+
vertical-align: baseline;
145+
}
134146
}
135147

136148
#app[data-theme='legacy-like'] > .wrapper-footer {

0 commit comments

Comments
 (0)