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"