Skip to content

Commit 7e87b07

Browse files
committed
feat: add navbar visibility
1 parent b9f7f0d commit 7e87b07

File tree

10 files changed

+52
-51
lines changed

10 files changed

+52
-51
lines changed

.astro/collections/docDefaults.schema.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
"collection": {
2323
"type": "array"
2424
},
25+
"navbar": {
26+
"type": "boolean",
27+
"default": false
28+
},
2529
"$schema": {
2630
"type": "string"
2731
}

.astro/content-modules.mjs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11

22
export default new Map([
33
["content/blog/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fblog%2Findex.mdx&astroContentModuleFlag=true")],
4-
["content/blog/lorem_ipsum.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fblog%2Florem_ipsum.mdx&astroContentModuleFlag=true")],
54
["content/blog/welcome.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fblog%2Fwelcome.mdx&astroContentModuleFlag=true")],
6-
["content/docs/syntax/code-block.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Fcode-block.mdx&astroContentModuleFlag=true")],
7-
["content/docs/syntax/text.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Ftext.mdx&astroContentModuleFlag=true")],
8-
["content/docs/syntax/alert.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Falert.mdx&astroContentModuleFlag=true")],
9-
["content/docs/syntax/markdown.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Fmarkdown.mdx&astroContentModuleFlag=true")],
10-
["content/docs/framework/docs.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fdocs.mdx&astroContentModuleFlag=true")],
5+
["content/blog/lorem_ipsum.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fblog%2Florem_ipsum.mdx&astroContentModuleFlag=true")],
6+
["content/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Findex.mdx&astroContentModuleFlag=true")],
7+
["content/docs/framework/_default.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2F_default.mdx&astroContentModuleFlag=true")],
8+
["content/docs/syntax/_default.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2F_default.mdx&astroContentModuleFlag=true")],
119
["content/docs/framework/blog.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fblog.mdx&astroContentModuleFlag=true")],
1210
["content/docs/framework/configuration.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fconfiguration.mdx&astroContentModuleFlag=true")],
13-
["content/docs/framework/project-structure.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fproject-structure.mdx&astroContentModuleFlag=true")],
1411
["content/docs/framework/deploy.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fdeploy.mdx&astroContentModuleFlag=true")],
15-
["content/index.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Findex.mdx&astroContentModuleFlag=true")],
16-
["content/docs/framework/getting-started.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fgetting-started.mdx&astroContentModuleFlag=true")],
12+
["content/docs/framework/docs.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fdocs.mdx&astroContentModuleFlag=true")],
1713
["content/docs/framework/installation.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Finstallation.mdx&astroContentModuleFlag=true")],
14+
["content/docs/framework/getting-started.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fgetting-started.mdx&astroContentModuleFlag=true")],
15+
["content/docs/framework/project-structure.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Fproject-structure.mdx&astroContentModuleFlag=true")],
1816
["content/docs/framework/routing.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2Frouting.mdx&astroContentModuleFlag=true")],
19-
["content/docs/syntax/_default.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2F_default.mdx&astroContentModuleFlag=true")],
20-
["content/docs/framework/_default.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fframework%2F_default.mdx&astroContentModuleFlag=true")]]);
17+
["content/docs/syntax/alert.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Falert.mdx&astroContentModuleFlag=true")],
18+
["content/docs/syntax/code-block.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Fcode-block.mdx&astroContentModuleFlag=true")],
19+
["content/docs/syntax/text.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Ftext.mdx&astroContentModuleFlag=true")],
20+
["content/docs/syntax/markdown.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=content%2Fdocs%2Fsyntax%2Fmarkdown.mdx&astroContentModuleFlag=true")]]);
2121

.astro/data-store.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

content/docs/framework/_default.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ directory: framework
44
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
55
permalink: framework
66
icon: lucide:cuboid
7+
navbar: true
78
collection:
89
- getting-started: false
910
- installation: true

content/docs/syntax/_default.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ directory: syntax
44
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
55
permalink: syntax
66
icon: lucide:pencil-line
7+
navbar: false
78
collection:
89
- text: true
910
- markdown: true

src/content.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export const docDefaultSchema = z.object({
1717
icon: z.string().optional(),
1818
directory: z.string(),
1919
collection: z.array(z.any()),
20+
navbar: z.boolean().default(false),
2021
});
2122

2223
export const docDefaults = defineCollection({

src/lib/layouts/DocsLayout.astro

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,13 @@ const currentCollection = derived.find((element) => {
2121
);
2222
});
2323
24-
const currentCollectionItems = currentCollection?.collection
25-
?.sort(
26-
(a, b) =>
27-
(a!.data as z.infer<typeof docSchema>).order -
28-
(b!.data as z.infer<typeof docSchema>).order,
29-
)
30-
.map((item) => {
31-
return {
32-
label: (item as any).data?.title,
33-
href: `/docs/${(item as any).collection}/${(item as any).data.permalink}`,
34-
icon: ((item as any).data as z.infer<typeof docSchema>).icon,
35-
};
36-
});
24+
const currentCollectionItems = currentCollection?.collection.map((item) => {
25+
return {
26+
label: (item as any).data?.title,
27+
href: `/docs/${(item as any).collection}/${(item as any).data.permalink}`,
28+
icon: ((item as any).data as z.infer<typeof docSchema>).icon,
29+
};
30+
});
3731
---
3832

3933
<BaseLayout>

src/lib/plugins/blog-list/BlogListWrapper.astro

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ const posts = contents
2020
)
2121
.reverse();
2222
23-
console.log(posts);
2423
const itemPerLine = {
2524
1: "lg:grid-cols-1",
2625
2: "lg:grid-cols-2",

src/lib/plugins/blog-list/plugin.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ const rehypeBlogListReact = () => {
1111
node.children[0].type === "text" &&
1212
node.children[0].value === ":::blog-list"
1313
) {
14-
console.log(node);
1514
node.tagName = "BlogListWrapper";
1615

1716
node.properties = {

src/lib/utils.ts

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -69,30 +69,32 @@ export function useDocumentation(astro: {
6969
const defaults = await getCollection("docDefaults");
7070

7171
return Promise.all(
72-
defaults.map(async (entry) => {
73-
let children = await Promise.all(
74-
entry.data.collection.map(async (child) => {
75-
const [filename, visible] = Object.entries(child)[0];
76-
const element = await getEntry(
77-
entry.data.directory as any,
78-
filename as any,
79-
);
80-
81-
if (!element) {
82-
console.error(`Element not found: ${filename}`);
83-
return null;
84-
}
85-
86-
return {
87-
...element,
88-
visible,
89-
href: `/docs/${entry.data.permalink}/${(element as any).data.permalink}`,
90-
};
91-
}),
92-
);
93-
94-
return { ...entry.data, collection: children };
95-
}),
72+
defaults
73+
.filter((entry) => entry.data.navbar)
74+
.map(async (entry) => {
75+
let children = await Promise.all(
76+
entry.data.collection.map(async (child) => {
77+
const [filename, visible] = Object.entries(child)[0];
78+
const element = await getEntry(
79+
entry.data.directory as any,
80+
filename as any,
81+
);
82+
83+
if (!element) {
84+
console.error(`Element not found: ${filename}`);
85+
return null;
86+
}
87+
88+
return {
89+
...element,
90+
visible,
91+
href: `/docs/${entry.data.permalink}/${(element as any).data.permalink}`,
92+
};
93+
}),
94+
);
95+
96+
return { ...entry.data, collection: children };
97+
}),
9698
);
9799
}
98100

0 commit comments

Comments
 (0)