From eebeb338cfea926dbe39b4959fd3066e149b8f21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Bl=C3=A4ttermann?= Date: Tue, 13 Dec 2022 03:49:29 +0100 Subject: [PATCH] Add sitemap --- website/.gitignore | 3 +++ website/next-sitemap.config.mjs | 10 ++++++++ website/package-lock.json | 45 +++++++++++++++++++++++++++++++++ website/package.json | 4 ++- website/pages/_app.tsx | 12 ++++++--- 5 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 website/next-sitemap.config.mjs diff --git a/website/.gitignore b/website/.gitignore index d6e3d458b..20051af48 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -37,3 +37,6 @@ next-env.d.ts !.vscode/extensions.json !public + +public/robots.txt +public/sitemap* \ No newline at end of file diff --git a/website/next-sitemap.config.mjs b/website/next-sitemap.config.mjs new file mode 100644 index 000000000..1d2a14009 --- /dev/null +++ b/website/next-sitemap.config.mjs @@ -0,0 +1,10 @@ +import { siteUrl } from './meta/dynamicMeta.mjs' + +/** @type {import('next-sitemap').IConfig} */ +const config = { + siteUrl, + generateRobotsTxt: true, + autoLastmod: false, +} + +export default config diff --git a/website/package-lock.json b/website/package-lock.json index d49925c8d..3d4b1a58e 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -27,6 +27,7 @@ "md-attr-parser": "^1.3.0", "next": "13.0.2", "next-mdx-remote": "^4.2.0", + "next-sitemap": "^3.1.32", "parse-numeric-range": "^1.3.0", "prettier": "^2.7.1", "prismjs": "^1.29.0", @@ -68,6 +69,11 @@ "node": ">=6.9.0" } }, + "node_modules/@corex/deepmerge": { + "version": "4.0.29", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.29.tgz", + "integrity": "sha512-q/yVUnqckA8Do+EvAfpy7RLdumnBy9ZsducMUtZTvpdbJC7azEf1hGtnYYxm0QfphYxjwggv6XtH64prvS1W+A==" + }, "node_modules/@eslint/eslintrc": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", @@ -5903,6 +5909,31 @@ "react-dom": ">=16.x <=18.x" } }, + "node_modules/next-sitemap": { + "version": "3.1.32", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-3.1.32.tgz", + "integrity": "sha512-jkIKpwLXpWWTPfmDO46+6nu4+qpar4CjvUwCR9rYZHWtzE/wFfaCVFKpGtFMl6MFjpu8GjiE6kWFEa7uF3bzzg==", + "funding": [ + { + "url": "https://github.com/iamvishnusankar/next-sitemap.git" + } + ], + "dependencies": { + "@corex/deepmerge": "^4.0.29", + "minimist": "^1.2.6" + }, + "bin": { + "next-sitemap": "bin/next-sitemap.mjs", + "next-sitemap-cjs": "bin/next-sitemap.cjs" + }, + "engines": { + "node": ">=14.18" + }, + "peerDependencies": { + "@next/env": "*", + "next": "*" + } + }, "node_modules/node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", @@ -8538,6 +8569,11 @@ "regenerator-runtime": "^0.13.10" } }, + "@corex/deepmerge": { + "version": "4.0.29", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.29.tgz", + "integrity": "sha512-q/yVUnqckA8Do+EvAfpy7RLdumnBy9ZsducMUtZTvpdbJC7azEf1hGtnYYxm0QfphYxjwggv6XtH64prvS1W+A==" + }, "@eslint/eslintrc": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", @@ -12752,6 +12788,15 @@ "vfile-matter": "^3.0.1" } }, + "next-sitemap": { + "version": "3.1.32", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-3.1.32.tgz", + "integrity": "sha512-jkIKpwLXpWWTPfmDO46+6nu4+qpar4CjvUwCR9rYZHWtzE/wFfaCVFKpGtFMl6MFjpu8GjiE6kWFEa7uF3bzzg==", + "requires": { + "@corex/deepmerge": "^4.0.29", + "minimist": "^1.2.6" + } + }, "node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", diff --git a/website/package.json b/website/package.json index 409ff0614..2371753dd 100644 --- a/website/package.json +++ b/website/package.json @@ -6,9 +6,10 @@ "author": "Explosion ", "license": "MIT", "scripts": { - "build": "next build && next export", + "build": "next build && npm run sitemap && next export", "dev": "next dev", "prebuild": "pip install -r setup/requirements.txt && sh setup/setup.sh", + "sitemap": "next-sitemap --config next-sitemap.config.mjs", "start": "next start", "lint": "next lint", "prettier": "prettier . --write" @@ -32,6 +33,7 @@ "md-attr-parser": "^1.3.0", "next": "13.0.2", "next-mdx-remote": "^4.2.0", + "next-sitemap": "^3.1.32", "parse-numeric-range": "^1.3.0", "prettier": "^2.7.1", "prismjs": "^1.29.0", diff --git a/website/pages/_app.tsx b/website/pages/_app.tsx index 5edf651a6..5fd03b015 100644 --- a/website/pages/_app.tsx +++ b/website/pages/_app.tsx @@ -1,12 +1,18 @@ import '../src/styles/layout.sass' import type { AppProps } from 'next/app' +import Head from 'next/head' import { MDXProvider } from '@mdx-js/react' import { remarkComponents } from '../src/remark' export default function App({ Component, pageProps }: AppProps) { return ( - - - + <> + + + + + + + ) }