feat: add sitemap

This commit is contained in:
Maciej Jur 2024-02-18 14:38:54 +01:00
parent c671506a0b
commit 4f47ae325d
Signed by: kamov
GPG key ID: 191CBFF5F72ECAFD
5 changed files with 49 additions and 7 deletions

View file

@ -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()
]
});

View file

@ -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",

View file

@ -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'}

4
public/robots.txt Normal file
View file

@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://kamoshi.org/sitemap-index.xml

View file

@ -5,16 +5,15 @@ interface Props {
title: Maybe<string>;
}
const {
title,
} = Astro.props;
const { title } = Astro.props;
---
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content={Astro.generator} />
<title>{title.mapOrDefault(title => `${title} | kamoshi.org`, "kamoshi.org")}</title>
<link rel="sitemap" href="/sitemap-index.xml"/>
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="icon" href="/favicon.ico" sizes="any">