From 4f47ae325d5e5154a619cd3d84046905ac109be9 Mon Sep 17 00:00:00 2001 From: Maciej Jur Date: Sun, 18 Feb 2024 14:38:54 +0100 Subject: [PATCH] feat: add sitemap --- astro.config.ts | 5 ++--- package.json | 1 + pnpm-lock.yaml | 39 ++++++++++++++++++++++++++++++++++ public/robots.txt | 4 ++++ src/components/base/Head.astro | 7 +++--- 5 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 public/robots.txt diff --git a/astro.config.ts b/astro.config.ts index 65f9f57..cb9cf6c 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from 'astro/config'; +import sitemap from '@astrojs/sitemap'; import mdx from '@astrojs/mdx'; import svelte from '@astrojs/svelte'; import pagefind from 'astro-pagefind'; @@ -15,9 +16,6 @@ import rehypeTreesitter from './src/utils/treesitter'; export default defineConfig({ site: 'https://kamoshi.org', trailingSlash: 'always', - devToolbar: { - enabled: true, - }, markdown: { syntaxHighlight: false, remarkPlugins: [ @@ -37,5 +35,6 @@ export default defineConfig({ mdx(), svelte({ compilerOptions: { runes: true } }), pagefind(), + sitemap() ] }); diff --git a/package.json b/package.json index 5573b93..5095f0c 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ }, "dependencies": { "@astrojs/mdx": "^2.1.1", + "@astrojs/sitemap": "^3.0.5", "@astrojs/svelte": "^5.0.3", "@citation-js/plugin-bibtex": "^0.7.8", "@js-temporal/polyfill": "^0.4.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8db2a9b..c0e1583 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ dependencies: '@astrojs/mdx': specifier: ^2.1.1 version: 2.1.1(astro@4.4.0) + '@astrojs/sitemap': + specifier: ^3.0.5 + version: 3.0.5 '@astrojs/svelte': specifier: ^5.0.3 version: 5.0.3(astro@4.4.0)(svelte@5.0.0-next.54)(typescript@5.3.3)(vite@5.1.3) @@ -176,6 +179,13 @@ packages: prismjs: 1.29.0 dev: false + /@astrojs/sitemap@3.0.5: + resolution: {integrity: sha512-60eLzNjMza3ABypiQPUC6ElOSZNZeY5CwSwgJ03hfeonl+Db9x12CCzBFdTw7A5Mq+O54xEZVUrR0tB+yWgX8w==} + dependencies: + sitemap: 7.1.1 + zod: 3.22.4 + dev: false + /@astrojs/svelte@5.0.3(astro@4.4.0)(svelte@5.0.0-next.54)(typescript@5.3.3)(vite@5.1.3): resolution: {integrity: sha512-6TUBRUxmsEczKPBT6oDUAfvzuFCmITuhZfKPT5ZtOOyj9XOVnEnj/Iobd3ajKUbpWNYX7qZVAd1KMkmJc1Nhsg==} engines: {node: '>=18.14.1'} @@ -1330,10 +1340,20 @@ packages: '@types/unist': 2.0.10 dev: false + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: false + /@types/reveal.js@4.4.8: resolution: {integrity: sha512-ADWVEgRLNVRE+J5yGjFDogsAaeVz+FKRVgvpLk1tgNewocXQd6wuKSknfamCVgZyUY9/IgOlkNKh9a2iIaconA==} dev: true + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + dependencies: + '@types/node': 17.0.45 + dev: false + /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: false @@ -1402,6 +1422,10 @@ packages: normalize-path: 3.0.0 picomatch: 2.3.1 + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -4031,6 +4055,10 @@ packages: immutable: 4.3.5 source-map-js: 1.0.2 + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: false + /section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -4166,6 +4194,17 @@ packages: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: false + /sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.3.0 + dev: false + /skin-tone@2.0.0: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} engines: {node: '>=8'} diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..225ccce --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://kamoshi.org/sitemap-index.xml diff --git a/src/components/base/Head.astro b/src/components/base/Head.astro index d1577ea..b8dd33c 100644 --- a/src/components/base/Head.astro +++ b/src/components/base/Head.astro @@ -5,16 +5,15 @@ interface Props { title: Maybe; } -const { - title, -} = Astro.props; +const { title } = Astro.props; --- {title.mapOrDefault(title => `${title} | kamoshi.org`, "kamoshi.org")} + + -