diff --git a/.gitignore b/.gitignore
index 77d557e35d87..a71536e0d67a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -87,6 +87,7 @@ packages/playground/.storybook/custom-elements.json
packages/playground/docs/storybook/**/*
packages/playground/docs/storybook-pages/**/*
!packages/playground/docs/storybook-pages/.gitkeep
+packages/playground/public/sitemap.xml
packages/main/test/pages/fix.js
packages/fiori/test/pages/fix.js
diff --git a/packages/playground/.storybook/main.ts b/packages/playground/.storybook/main.ts
index 122dcaff6969..b1773b5166bd 100644
--- a/packages/playground/.storybook/main.ts
+++ b/packages/playground/.storybook/main.ts
@@ -35,7 +35,8 @@ const config = {
builder: "@storybook/builder-vite"
},
features: {
- storyStoreV7: true
+ storyStoreV7: true,
+ buildStoriesJson: true,
},
typescript: {
reactDocgen: 'react-docgen'
diff --git a/packages/playground/build-scripts-storybook/sitemap-prepare.ts b/packages/playground/build-scripts-storybook/sitemap-prepare.ts
new file mode 100644
index 000000000000..41725583cf6f
--- /dev/null
+++ b/packages/playground/build-scripts-storybook/sitemap-prepare.ts
@@ -0,0 +1,20 @@
+import * as fs from 'fs';
+import * as xmlbuilder from 'xmlbuilder';
+
+console.log('Generating sitemap.xml for playground...');
+const data = require('../dist/playground/stories.json');
+
+let xml = xmlbuilder.create('urlset', { version: '1.0', encoding: 'UTF-8' });
+xml.att('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
+
+for (let key in data.stories) {
+ const kind = data.stories[key]?.kind?.split('/')[0]?.toLowerCase();
+ xml.ele('url')
+ .ele('loc', {}, `https://sap.github.io/ui5-webcomponents/playground/?path=/${kind}/${key}`)
+ .up()
+ .ele('changefreq', {}, 'monthly');
+}
+
+let xmlString = xml.end({ pretty: true });
+fs.writeFileSync('./dist/playground/sitemap.xml', xmlString);
+console.log('sitemap.xml generated successfully!');
\ No newline at end of file
diff --git a/packages/playground/docs/landing-page.html b/packages/playground/docs/landing-page.html
index 559f910c18fe..19801b081eb8 100644
--- a/packages/playground/docs/landing-page.html
+++ b/packages/playground/docs/landing-page.html
@@ -4,6 +4,7 @@
UI5 Web Components
+
diff --git a/packages/playground/package.json b/packages/playground/package.json
index fdc44bc7fe13..67dfc07e085b 100644
--- a/packages/playground/package.json
+++ b/packages/playground/package.json
@@ -37,7 +37,7 @@
"vite-node": "^0.29.8"
},
"scripts": {
- "build": "npm run build-storybook",
+ "build": "npm run build-storybook && npm run build-sitemap",
"build:bundle": "vite build",
"clean": "npm-run-all --parallel clean:*",
"clean:assets": "rimraf ./assets/js/ui5-webcomponents/*",
@@ -55,6 +55,10 @@
"prepare:manifest": "node ./build-scripts-storybook/parse-manifest.js",
"prepare:documentation": "vite-node ./build-scripts-storybook/documentation-prepare.ts",
"storybook": "npm-run-all --parallel prepare:* && storybook dev -p 6006",
- "build-storybook": "npm-run-all --parallel prepare:build:* prepare:* && tsc && storybook build -o ./dist/playground"
+ "build-storybook": "npm-run-all --parallel prepare:build:* prepare:* && tsc && storybook build -o ./dist/playground",
+ "build-sitemap": "vite-node ./build-scripts-storybook/sitemap-prepare.ts"
+ },
+ "dependencies": {
+ "xmlbuilder": "^15.1.1"
}
}
diff --git a/packages/playground/public/Robots.txt b/packages/playground/public/Robots.txt
new file mode 100644
index 000000000000..202bfe92e182
--- /dev/null
+++ b/packages/playground/public/Robots.txt
@@ -0,0 +1,7 @@
+User-agent: Googlebot
+Disallow: /nogooglebot/
+
+User-agent: *
+Allow: /
+
+Sitemap: https://sap.github.io/ui5-webcomponents/playground/sitemap.xml
diff --git a/yarn.lock b/yarn.lock
index 7bfe4d56ac3c..694702e02edd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -14842,6 +14842,11 @@ xdg-basedir@^4.0.0:
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+xmlbuilder@^15.1.1:
+ version "15.1.1"
+ resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
+ integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
+
xmlcreate@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be"