feat: Add sitemap for the docs website
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
"serve": "vitepress serve pages"
|
||||
},
|
||||
"devDependencies": {
|
||||
"sitemap": "^7.1.1",
|
||||
"vitepress": "^1.0.0-alpha.21",
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
|
@@ -1,7 +1,13 @@
|
||||
import { defineConfig } from 'vitepress';
|
||||
import { createWriteStream } from 'fs';
|
||||
import { resolve } from 'path';
|
||||
import { SitemapStream } from 'sitemap';
|
||||
|
||||
const BASE = process.env.BASE_URL || '/';
|
||||
|
||||
const links = [];
|
||||
const PROD_BASE_URL = 'https://automatisch.io/docs';
|
||||
|
||||
export default defineConfig({
|
||||
base: BASE,
|
||||
lang: 'en-US',
|
||||
@@ -102,7 +108,7 @@ export default defineConfig({
|
||||
if (ctx.pageData.relativePath === '') return; // Skip 404 page.
|
||||
|
||||
const isHomepage = ctx.pageData.relativePath === 'index.md';
|
||||
let canonicalUrl = 'https://automatisch.io/docs';
|
||||
let canonicalUrl = PROD_BASE_URL;
|
||||
|
||||
if (!isHomepage) {
|
||||
canonicalUrl =
|
||||
@@ -125,4 +131,32 @@ export default defineConfig({
|
||||
],
|
||||
];
|
||||
},
|
||||
|
||||
async transformHtml(_, id, { pageData }) {
|
||||
if (!/[\\/]404\.html$/.test(id)) {
|
||||
let url = pageData.relativePath.replace(/((^|\/)index)?\.md$/, '$2');
|
||||
|
||||
const isHomepage = url === '';
|
||||
|
||||
if (isHomepage) {
|
||||
url = '/docs';
|
||||
}
|
||||
|
||||
links.push({
|
||||
url,
|
||||
lastmod: pageData.lastUpdated,
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
async buildEnd({ outDir }) {
|
||||
const sitemap = new SitemapStream({
|
||||
hostname: `${PROD_BASE_URL}/`,
|
||||
});
|
||||
|
||||
const writeStream = createWriteStream(resolve(outDir, 'sitemap.xml'));
|
||||
sitemap.pipe(writeStream);
|
||||
links.forEach((link) => sitemap.write(link));
|
||||
sitemap.end();
|
||||
},
|
||||
});
|
||||
|
29
yarn.lock
29
yarn.lock
@@ -4334,6 +4334,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.26.tgz#63d204d136c9916fb4dcd1b50f9740fe86884e47"
|
||||
integrity sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==
|
||||
|
||||
"@types/node@^17.0.5":
|
||||
version "17.0.45"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190"
|
||||
integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
|
||||
|
||||
"@types/nodemailer@^6.4.4":
|
||||
version "6.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.4.tgz#c265f7e7a51df587597b3a49a023acaf0c741f4b"
|
||||
@@ -4458,6 +4463,13 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065"
|
||||
integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==
|
||||
|
||||
"@types/sax@^1.2.1":
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.4.tgz#8221affa7f4f3cb21abd22f244cfabfa63e6a69e"
|
||||
integrity sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/scheduler@*":
|
||||
version "0.16.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
|
||||
@@ -5461,6 +5473,11 @@ arg@^4.1.0:
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
||||
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
||||
|
||||
arg@^5.0.0:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
|
||||
integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
|
||||
|
||||
arg@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
|
||||
@@ -16235,7 +16252,7 @@ sax@1.2.1:
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
|
||||
integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o=
|
||||
|
||||
sax@>=0.6.0, sax@~1.2.4:
|
||||
sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||
@@ -16567,6 +16584,16 @@ sisteransi@^1.0.5:
|
||||
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
|
||||
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
|
||||
|
||||
sitemap@^7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.1.tgz#eeed9ad6d95499161a3eadc60f8c6dce4bea2bef"
|
||||
integrity sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==
|
||||
dependencies:
|
||||
"@types/node" "^17.0.5"
|
||||
"@types/sax" "^1.2.1"
|
||||
arg "^5.0.0"
|
||||
sax "^1.2.4"
|
||||
|
||||
slash@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||
|
Reference in New Issue
Block a user