Skip to content

Commit 3ed3bff

Browse files
committed
feat: add sitemap and robots.txt
This commit adds sitemap and robots.txt files to the project. The sitemap is generated by the Astro sitemap integration. The robots.txt file allows all bots and points to the sitemap.
1 parent ab936ea commit 3ed3bff

File tree

11 files changed

+91
-27
lines changed

11 files changed

+91
-27
lines changed

.astro/content-modules.mjs

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

22
export default new Map([
3-
["src/content/docs/framework/blog.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fblog.mdx&astroContentModuleFlag=true")],
4-
["src/content/docs/framework/docs.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fdocs.mdx&astroContentModuleFlag=true")],
53
["src/content/docs/framework/deploy.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fdeploy.mdx&astroContentModuleFlag=true")],
4+
["src/content/docs/framework/blog.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fblog.mdx&astroContentModuleFlag=true")],
5+
["src/content/blog/welcome.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fblog%2Fwelcome.mdx&astroContentModuleFlag=true")],
66
["src/content/docs/framework/configuration.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fconfiguration.mdx&astroContentModuleFlag=true")],
77
["src/content/docs/framework/getting-started.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fgetting-started.mdx&astroContentModuleFlag=true")],
8-
["src/content/docs/framework/installation.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Finstallation.mdx&astroContentModuleFlag=true")],
8+
["src/content/docs/framework/project-structure.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fproject-structure.mdx&astroContentModuleFlag=true")],
99
["src/content/docs/syntax/alert.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fsyntax%2Falert.mdx&astroContentModuleFlag=true")],
1010
["src/content/docs/syntax/code-block.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fsyntax%2Fcode-block.mdx&astroContentModuleFlag=true")],
11-
["src/content/docs/framework/project-structure.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fproject-structure.mdx&astroContentModuleFlag=true")],
12-
["src/content/docs/syntax/text.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fsyntax%2Ftext.mdx&astroContentModuleFlag=true")],
1311
["src/content/docs/syntax/markdown.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fsyntax%2Fmarkdown.mdx&astroContentModuleFlag=true")],
14-
["src/content/blog/welcome.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fblog%2Fwelcome.mdx&astroContentModuleFlag=true")],
12+
["src/content/docs/syntax/text.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fsyntax%2Ftext.mdx&astroContentModuleFlag=true")],
13+
["src/content/docs/framework/docs.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Fdocs.mdx&astroContentModuleFlag=true")],
1514
["src/content/docs/framework/_default.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2F_default.mdx&astroContentModuleFlag=true")],
15+
["src/content/docs/framework/installation.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fframework%2Finstallation.mdx&astroContentModuleFlag=true")],
1616
["src/content/docs/syntax/_default.mdx", () => import("astro:content-layer-deferred-module?astro%3Acontent-layer-deferred-module=&fileName=src%2Fcontent%2Fdocs%2Fsyntax%2F_default.mdx&astroContentModuleFlag=true")]]);
1717

astro.config.mjs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ import {
2121
default as remarkDirective,
2222
default as remarkReadMoreDirective,
2323
} from "./src/lib/plugins/read-more/remark-directive";
24+
import sitemap from "@astrojs/sitemap";
2425

25-
// https://astro.build/config
2626
export default defineConfig({
27+
site: "https://example.com",
2728
output: "static",
2829
prefetch: true,
29-
integrations: [react(), mdx(), icon()],
30+
integrations: [react(), mdx(), icon(), sitemap()],
3031

3132
markdown: {
3233
shikiConfig: {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"dependencies": {
1212
"@astrojs/mdx": "^4.2.2",
1313
"@astrojs/react": "^4.2.2",
14+
"@astrojs/sitemap": "^3.6.0",
1415
"@expressive-code/plugin-line-numbers": "^0.40.2",
1516
"@iconify-json/devicon": "^1.2.23",
1617
"@iconify/react": "^6.0.0",

pnpm-lock.yaml

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

src/lib/layouts/BaseLayout.astro

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import { ClientRouter } from "astro:transitions";
55
import config from "../../../explainer.config";
66
import "../../assets/css/global.css";
77
import { useDocumentation } from "@/utils";
8+
import * as astroContent from "astro:content";
89
910
const { title = config.seo.title } = Astro.props;
1011
11-
const { load } = useDocumentation();
12+
const { load } = useDocumentation(astroContent);
1213
const derivedDocs = await load();
1314
---
1415

@@ -34,6 +35,7 @@ const derivedDocs = await load();
3435
<meta property="og:image:width" content="1200" />
3536
<meta property="og:image:height" content="630" />
3637

38+
<link rel="sitemap" href="/sitemap-index.xml" />
3739
<ClientRouter />
3840

3941
<script>

src/lib/layouts/DocsLayout.astro

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import "../../assets/css/global.css";
1010
import "../../assets/css/markdown.css";
1111
import BaseLayout from "./BaseLayout.astro";
1212
import { useDocumentation } from "@/utils";
13+
import * as astroContent from "astro:content";
1314
14-
const { load } = useDocumentation();
15+
const { load } = useDocumentation(astroContent);
1516
const derived = await load();
1617
1718
const currentCollection = derived.find((element) => {

src/lib/utils.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { CollectionKey } from "astro:content";
1+
import type { getCollection, getEntry } from "astro:content";
22
import { clsx, type ClassValue } from "clsx";
33
import { twMerge } from "tailwind-merge";
44

@@ -60,9 +60,12 @@ export function defineExplainerConfig(config: ExplainerConfig) {
6060
return config;
6161
}
6262

63-
export function useDocumentation() {
63+
export function useDocumentation(astro: {
64+
getCollection: typeof getCollection;
65+
getEntry: typeof getEntry;
66+
}) {
6467
async function load() {
65-
const { getCollection, getEntry } = await import("astro:content");
68+
const { getCollection, getEntry } = astro;
6669
const defaults = await getCollection("docDefaults");
6770

6871
return Promise.all(
@@ -71,8 +74,8 @@ export function useDocumentation() {
7174
entry.data.collection.map(async (child) => {
7275
const [filename, visible] = Object.entries(child)[0];
7376
const element = await getEntry(
74-
entry.data.directory as unknown as CollectionKey,
75-
filename as unknown as CollectionKey,
77+
entry.data.directory as any,
78+
filename as any,
7679
);
7780

7881
if (!element) {

src/pages/blog/index.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const posts = await getCollection("blog", (post) => {
2020
<h2
2121
class="mt-2 text-5xl font-semibold tracking-tight text-gray-900 sm:text-5xl"
2222
>
23-
The {config.meta.title} Blog
23+
The {config.seo.title} Blog
2424
</h2>
2525
<p
2626
class="text-lg sm:text-xl/8 text-muted-foreground text-pretty font-light mt-6"

src/pages/docs/[...slug].astro

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,18 @@ import {
88
BreadcrumbSeparator,
99
} from "@/components/ui/breadcrumb";
1010
import DocsLayout from "@/layouts/DocsLayout.astro";
11-
import type { CollectionKey } from "astro:content";
12-
import {
13-
getCollection,
14-
getEntry,
15-
render,
16-
type CollectionEntry,
17-
} from "astro:content";
11+
import { render, type CollectionEntry } from "astro:content";
1812
import config from "../../../explainer.config";
1913
import CodeGroupWrapper from "../../lib/plugins/code-group/CodeGroupWrapper.astro";
2014
import { useDocumentation, type HeadingNode } from "../../lib/utils";
15+
import * as astroContent from "astro:content";
16+
2117
interface Props {
2218
element: CollectionEntry<"blog">;
2319
}
2420
2521
export async function getStaticPaths() {
26-
const { generateStaticPaths } = useDocumentation();
22+
const { generateStaticPaths } = useDocumentation(astroContent);
2723
return generateStaticPaths();
2824
}
2925

src/pages/index.astro

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ import Layout from "@/layouts/Layout.astro";
44
import { getCollection } from "astro:content";
55
import { Icon } from "@iconify/react";
66
import { Button } from "@/components/ui/button";
7-
import BlogCard from "@/components/elements/blog-card";
8-
import { Badge } from "lucide-react";
97
import config from "../../explainer.config";
8+
import { Badge } from "@/components/ui/badge";
109
1110
const posts = await getCollection("blog", (post) => {
1211
if (import.meta.env.DEV) {
@@ -196,7 +195,7 @@ const posts = await getCollection("blog", (post) => {
196195
>
197196
{import.meta.env.DEV && !post.data.publishedAt && (
198197
<div class="absolute z-50 top-1 right-2">
199-
<Badge>Invisible in production mode</Badge>
198+
<Badge variant="outline">Invisible in production mode</Badge>
200199
</div>
201200
)}
202201
<div class="overflow-hidden rounded-lg">

0 commit comments

Comments
 (0)