diff --git a/package-lock.json b/package-lock.json index a483b05d..7c66d683 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,9 @@ "workspaces": [ "./packages/*" ], + "dependencies": { + "next-sitemap": "^4.1.8" + }, "devDependencies": { "@babel/preset-react": "^7.14.5", "@changesets/changelog-github": "^0.4.8", @@ -2840,6 +2843,11 @@ "node": ">=0.1.90" } }, + "node_modules/@corex/deepmerge": { + "version": "4.0.43", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.43.tgz", + "integrity": "sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==" + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -30650,6 +30658,52 @@ "react-dom": ">=16.x <=18.x" } }, + "node_modules/next-sitemap": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-4.1.8.tgz", + "integrity": "sha512-XAXpBHX4o89JfMgvrm0zimlZwpu2iBPXHpimJMUrqOZSc4C2oB1Lv89mxuVON9IE8HOezaM+w4GjJxcYCuGPTQ==", + "funding": [ + { + "url": "https://github.com/iamvishnusankar/next-sitemap.git" + } + ], + "dependencies": { + "@corex/deepmerge": "^4.0.43", + "@next/env": "^13.4.3", + "fast-glob": "^3.2.12", + "minimist": "^1.2.8" + }, + "bin": { + "next-sitemap": "bin/next-sitemap.mjs", + "next-sitemap-cjs": "bin/next-sitemap.cjs" + }, + "engines": { + "node": ">=14.18" + }, + "peerDependencies": { + "next": "*" + } + }, + "node_modules/next-sitemap/node_modules/@next/env": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", + "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==" + }, + "node_modules/next-sitemap/node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/next-themes": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", @@ -40048,7 +40102,7 @@ }, "packages/components": { "name": "@portaljs/components", - "version": "0.2.0", + "version": "0.3.1", "dependencies": { "@githubocto/flat-ui": "^0.14.1", "@heroicons/react": "^2.0.17", @@ -42566,6 +42620,11 @@ "dev": true, "optional": true }, + "@corex/deepmerge": { + "version": "4.0.43", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.43.tgz", + "integrity": "sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==" + }, "@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -64087,6 +64146,36 @@ "vfile-matter": "^3.0.1" } }, + "next-sitemap": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-4.1.8.tgz", + "integrity": "sha512-XAXpBHX4o89JfMgvrm0zimlZwpu2iBPXHpimJMUrqOZSc4C2oB1Lv89mxuVON9IE8HOezaM+w4GjJxcYCuGPTQ==", + "requires": { + "@corex/deepmerge": "^4.0.43", + "@next/env": "^13.4.3", + "fast-glob": "^3.2.12", + "minimist": "^1.2.8" + }, + "dependencies": { + "@next/env": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", + "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==" + }, + "fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + } + } + }, "next-themes": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", diff --git a/package.json b/package.json index f80922fa..18f4f982 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,8 @@ { "name": "portaljs", - "workspaces": ["./packages/*"], + "workspaces": [ + "./packages/*" + ], "version": "0.0.0", "license": "MIT", "scripts": { @@ -62,5 +64,8 @@ "typescript": "~4.9.5", "unist-util-select": "^4.0.3", "unist-util-visit": "^4.1.2" + }, + "dependencies": { + "next-sitemap": "^4.1.8" } } diff --git a/site/.gitignore b/site/.gitignore index 47575e0f..4cb0e8da 100644 --- a/site/.gitignore +++ b/site/.gitignore @@ -35,3 +35,8 @@ yarn-error.log* # markdowndb markdown.db + +# seo +robots.txt +sitemap-0.xml +sitemap.xml diff --git a/site/next-sitemap.config.js b/site/next-sitemap.config.js new file mode 100644 index 00000000..a9e6b66b --- /dev/null +++ b/site/next-sitemap.config.js @@ -0,0 +1,5 @@ +/** @type {import('next-sitemap').IConfig} */ +module.exports = { + siteUrl: process.env.SITE_URL || 'https://portaljs.org', + generateRobotsTxt: true, +} diff --git a/site/package.json b/site/package.json index 7e467d05..881bdd20 100644 --- a/site/package.json +++ b/site/package.json @@ -6,6 +6,7 @@ "dev": "npm run mddb && next dev", "build": "next build", "prebuild": "npm run mddb && node ./scripts/fix-symlinks.mjs", + "postbuild": "next-sitemap", "start": "next start", "mddb": "mddb content" },