Skip to content

Commit 6c3bdb7

Browse files
committed
revise: adds breadcrumb to articles
1 parent 60738f1 commit 6c3bdb7

File tree

8 files changed

+380
-14
lines changed

8 files changed

+380
-14
lines changed

components/docs/LeftSidebar.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
</div>
88
<div class="links">
99
<div class="header">Get Started</div>
10-
<RouterLink to="/docs/overview">Overview</RouterLink>
11-
<RouterLink to="/docs/values">Values</RouterLink>
12-
<RouterLink to="/docs/stack">Stack</RouterLink>
10+
<RouterLink to="/docs/get-started/overview">Overview</RouterLink>
11+
<RouterLink to="/docs/get-started/values">Values</RouterLink>
12+
<RouterLink to="/docs/get-started/stack">Stack</RouterLink>
1313
</div>
1414
</div>
1515
</template>
File renamed without changes.
File renamed without changes.
File renamed without changes.

nuxt.config.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ export default defineNuxtConfig({
44
css: ["~/assets/css/main.css"],
55
devtools: { enabled: true },
66
modules: [
7-
"@nuxtjs/tailwindcss",
87
"nuxt-lucide-icons",
9-
"@nuxtjs/color-mode",
108
"@nuxt/content",
9+
"@nuxt/ui",
10+
"@nuxt/icon",
11+
"@nuxtjs/tailwindcss",
12+
"@nuxtjs/color-mode",
1113
],
1214
content: {
1315
documentDriven: true,

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@
1111
},
1212
"dependencies": {
1313
"@nuxt/content": "^2.13.2",
14+
"@nuxt/icon": "^1.5.4",
15+
"@nuxt/ui": "^2.18.6",
1416
"@nuxtjs/color-mode": "^3.5.1",
1517
"@nuxtjs/tailwindcss": "^6.12.1",
18+
"change-case": "^5.4.4",
1619
"nuxt": "^3.13.0",
1720
"nuxt-lucide-icons": "^1.0.5",
1821
"vue": "latest",
1922
"vue-router": "latest"
2023
},
2124
"packageManager": "[email protected]+sha512.4abf725084d7bcbafbd728bfc7bee61f2f791f977fd87542b3579dcb23504d170d46337945e4c66485cd12d588a0c0e570ed9c477e7ccdd8507cf05f3f92eaca",
2225
"devDependencies": {
23-
"@tailwindcss/typography": "^0.5.15",
24-
"tailwindcss": "^3.4.13"
26+
"@tailwindcss/typography": "^0.5.15"
2527
}
2628
}

pages/docs/[...slug].vue

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
<script setup>
1+
<script setup lang="ts">
22
import { createError, useAsyncData, useRoute } from "nuxt/app";
3+
import { sentenceCase } from "change-case";
34
45
const route = useRoute();
56
@@ -16,16 +17,55 @@ if (!data.value) {
1617
}
1718
1819
let toc = data.value.body.toc;
20+
let links = route.path.split("/").slice(2);
21+
let last = links.pop();
22+
23+
let breadcrumbs = [
24+
{
25+
label: "Docs",
26+
icon: "i-heroicons-book-open",
27+
to: "/docs",
28+
},
29+
];
30+
31+
const lookup = {
32+
"get-started": {
33+
label: "Get Started",
34+
icon: "i-heroicons-presentation-chart-line",
35+
},
36+
};
37+
38+
for (var link of links) {
39+
let value = lookup[link];
40+
41+
if (value === undefined) {
42+
throw createError({
43+
statusCode: 500,
44+
statusMessage: "Unknown breadcrumb",
45+
fatal: true,
46+
});
47+
}
48+
49+
breadcrumbs.push(value);
50+
}
51+
52+
breadcrumbs.push({
53+
label: sentenceCase(last),
54+
icon: "i-heroicons-newspaper",
55+
});
1956
</script>
2057

2158
<template>
2259
<div class="docs">
2360
<DocsLeftSidebar />
2461
<div class="content">
2562
<main>
26-
<article>
27-
<ContentRenderer :value="data" />
28-
</article>
63+
<div>
64+
<UBreadcrumb :links="breadcrumbs" />
65+
<article>
66+
<ContentRenderer :value="data" />
67+
</article>
68+
</div>
2969
</main>
3070
<aside>
3171
<DocsRightSidebar :toc="toc" />
@@ -64,6 +104,8 @@ let toc = data.value.body.toc;
64104
@apply prose-slate;
65105
@apply dark:prose-invert;
66106
107+
@apply py-8;
108+
67109
/* Prose Code */
68110
@apply prose-code:rounded-md;
69111
@apply prose-code:px-2;

0 commit comments

Comments
 (0)