Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions next-sitemap.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module.exports = {
siteUrl: 'https://millipede.me',

changefreq: 'daily',
priority: 0.7,
sitemapSize: 5000,

generateRobotsTxt: true,
exclude: ['/server-sitemap.xml'], // <= exclude here
robotsTxtOptions: {
// policies: [
// {
// userAgent: '*',
// allow: '/'
// }
// ],
additionalSitemaps: [
'https://millipede.me/server-sitemap.xml' // <==== Add here
]
}
};
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
"lint": "yarn eslint './docs/src/**/*' './src/**/*' './pages/**/*' './packages/**/src/**/*'",
"format:mdx": "prettier --parser mdx --end-of-line lf --print-width 80 --prose-wrap always --single-quote true --write \"docs/src/pages/**/*.mdx\"",
"format:json": "prettier --parser json --print-width 80 --use-tabs --write \"locales/**/*.json\"",
"sitemap": "node sitemap-generator"
"sitemap": "node sitemap-generator",
"postbuild": "next-sitemap"
},
"dependencies": {
"@app/analytics": "workspace:packages/analytics",
Expand Down Expand Up @@ -91,6 +92,7 @@
"next": "11.0.1",
"next-mdx-remote": "^3.0.2",
"next-merge-props": "^0.5.0",
"next-sitemap": "^1.6.124",
"next-translate": "1.0.7",
"query-string": "^7.0.1",
"react": "17.0.2",
Expand Down
1 change: 1 addition & 0 deletions packages/utils/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ export * as MathUtil from './math';
export * as StringUtil from './string';
export * as RouterUtils from './router';
export * as TypeUtil from './type';
export * as UrlUtil from './url';
41 changes: 41 additions & 0 deletions packages/utils/src/url/absolute.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { IncomingMessage } from 'http';

export const getAbsoluteUrl = (
req?: IncomingMessage,
localhostAddress = 'localhost:3000',
options = {
https: false
}
) => {
let { https } = options;
let host =
(req?.headers ? req.headers.host : window.location.host) ||
localhostAddress;
let protocol = https
? 'https:' // if NODE_ENV is production
: process.env.NODE_ENV == 'production'
? 'https:' // if Customised Prameter Passed
: 'http:';

if (
req &&
req.headers['x-forwarded-host'] &&
typeof req.headers['x-forwarded-host'] === 'string'
) {
host = req.headers['x-forwarded-host'];
}

if (
req &&
req.headers['x-forwarded-proto'] &&
typeof req.headers['x-forwarded-proto'] === 'string'
) {
protocol = `${req.headers['x-forwarded-proto']}:`;
}

return {
protocol,
host,
origin: protocol + '//' + host
};
};
1 change: 1 addition & 0 deletions packages/utils/src/url/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { getAbsoluteUrl } from './absolute';
45 changes: 45 additions & 0 deletions pages/server-sitemap.xml/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { UrlUtil } from '@app/utils';
import isArray from 'lodash/isArray';
import { getServerSideSitemap, ISitemapField } from 'next-sitemap';
import { sep } from 'path';

import { getPath } from '../../docs/src/lib/getPath';

import type { GetServerSideProps, GetServerSidePropsContext } from 'next';

export const getServerSideProps: GetServerSideProps = async (
ctx: GetServerSidePropsContext
) => {
const { defaultLocale, req } = ctx;

const { origin } = UrlUtil.getAbsoluteUrl(req, '', { https: true });

const docsPaths = await getPath('docs');

const pages = docsPaths.map(path => {
const {
locale,
params: { slug }
} = path;

const stringifiedSlug = `${isArray(slug) ? slug.join(sep) || '.' : slug}`;

if (locale !== defaultLocale) {
return `${locale}/docs/${stringifiedSlug}`;
}
return `docs/${stringifiedSlug}`;
});

const sitemapFields: Array<ISitemapField> = pages.map(page => {
return {
loc: `${origin}/${page}`,
changefreq: 'daily',
priority: '0.7',
lastmod: new Date().toISOString()
};
});

return getServerSideSitemap(ctx, sitemapFields);
};

export default getServerSideProps;
38 changes: 35 additions & 3 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1668,6 +1668,13 @@ __metadata:
languageName: node
linkType: hard

"@corex/deepmerge@npm:^2.6.20":
version: 2.6.20
resolution: "@corex/deepmerge@npm:2.6.20"
checksum: 40f33a87a460f0a04b82d40fd33a9d73105d510bec781b024cdc90d180389a8c628ce57db650e72c0a5215c1c949adb34426b13a838c34647c6ca1d392e805c0
languageName: node
linkType: hard

"@date-io/core@npm:^2.10.11":
version: 2.10.11
resolution: "@date-io/core@npm:2.10.11"
Expand Down Expand Up @@ -8881,6 +8888,15 @@ __metadata:
languageName: node
linkType: hard

"matcher@npm:^4.0.0":
version: 4.0.0
resolution: "matcher@npm:4.0.0"
dependencies:
escape-string-regexp: ^4.0.0
checksum: d338aff31d8dfd3626873e43777f46b123579734d53bb8d18d64b08a822ba5e8d39f5fe2e23403258e6143aa0cbe20a15662720d825cd0d3af961d5a44230328
languageName: node
linkType: hard

"md5.js@npm:^1.3.4":
version: 1.3.5
resolution: "md5.js@npm:1.3.5"
Expand Down Expand Up @@ -9169,6 +9185,7 @@ __metadata:
next-mdx-remote: ^3.0.2
next-merge-props: ^0.5.0
next-remote-watch: ^1.0.0
next-sitemap: ^1.6.124
next-translate: 1.0.7
nextjs-sitemap-generator: ^1.3.1
prettier: ^2.3.1
Expand Down Expand Up @@ -9486,6 +9503,21 @@ __metadata:
languageName: node
linkType: hard

"next-sitemap@npm:^1.6.124":
version: 1.6.124
resolution: "next-sitemap@npm:1.6.124"
dependencies:
"@corex/deepmerge": ^2.6.20
matcher: ^4.0.0
minimist: ^1.2.5
peerDependencies:
next: "*"
bin:
next-sitemap: bin/next-sitemap
checksum: 088741aa51796abbe9c9d86960e513fca75cd5777be101fd763f0de518af1b4a23385e819a9acb928f8ae83390eb9ce7e17d40f94f5ff01065a6804644f5fd45
languageName: node
linkType: hard

"next-translate@npm:1.0.7":
version: 1.0.7
resolution: "next-translate@npm:1.0.7"
Expand Down Expand Up @@ -12181,15 +12213,15 @@ resolve@^2.0.0-next.3:
linkType: hard

"terser@npm:^5.7.0":
version: 5.7.0
resolution: "terser@npm:5.7.0"
version: 5.7.1
resolution: "terser@npm:5.7.1"
dependencies:
commander: ^2.20.0
source-map: ~0.7.2
source-map-support: ~0.5.19
bin:
terser: bin/terser
checksum: 3abeb551865079b27e2890dbec866054967d1963fc80a81e5e14e414c43db88ff53a5e88844c145df11bed01b28040aa96afd82113c6d1a6ad28409b6cae4fde
checksum: 9354af5c22ade95004c103893606968cbd5390824c9d89df540f9e578c6e6559a5e9c56a1bf23ed055cdb61c60defdbc2c29e773514f9f2fbc7fd7ed335f1f58
languageName: node
linkType: hard

Expand Down