diff --git a/bin/sitemap.js b/bin/sitemap.js new file mode 100644 index 0000000..e96dcae --- /dev/null +++ b/bin/sitemap.js @@ -0,0 +1,30 @@ +const fs = require('fs'); + +const layouts = [ + 'Holy grail', 'Sidebar', 'Split screen', 'Sticky footer', 'Sticky header', +]; + +const patterns = [ + 'Badge', 'Breadcrumb', 'Button with icon', 'Card', 'Centering', + 'Dot navigation', 'Feature list', 'Fixed at corner', 'Input addon', 'Media object', + 'Menu', 'Modal', 'Notification', 'Pagination', 'Previous next buttons', + 'Pricing table', 'Progress bar', 'Same height columns', 'Search box', 'Separator', + 'Simple grid', 'Slider', 'Split navigation', 'Stepper input', 'Switch', + 'Tab', 'Wizard', +]; + +const items = layouts.concat(patterns); + +const slug = item => item.toLowerCase().split(' ').join('-'); +const output = ['\n'] + .concat( + items.map((item) => `https://csslayout.io/${slug(item)}\n`) + ) + .concat( + ['\n'] + ) + .join(''); + +fs.writeFile('./sitemap.xml', output, (err) => { + console.log(err || 'Sitemap generated successfully'); +}); diff --git a/package.json b/package.json index b576330..4364659 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,9 @@ "scripts": { "dev": "parcel client/index.html --out-dir dist", "build": "parcel build client/index.html --out-dir dist", - "postbuild": "react-snap" + "sitemap": "cp robots.txt dist && node bin/sitemap && cp sitemap.xml dist", + "prebuild": "rm -rf dist/*", + "postbuild": "npm run sitemap && react-snap" }, "dependencies": { "highlight.js": "^9.16.2", diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..6c3f882 --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Disallow: +Sitemap: https://csslayout.io/sitemap.xml \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..8906cfd --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,34 @@ + +https://csslayout.io/holy-grail +https://csslayout.io/sidebar +https://csslayout.io/split-screen +https://csslayout.io/sticky-footer +https://csslayout.io/sticky-header +https://csslayout.io/badge +https://csslayout.io/breadcrumb +https://csslayout.io/button-with-icon +https://csslayout.io/card +https://csslayout.io/centering +https://csslayout.io/dot-navigation +https://csslayout.io/feature-list +https://csslayout.io/fixed-at-corner +https://csslayout.io/input-addon +https://csslayout.io/media-object +https://csslayout.io/menu +https://csslayout.io/modal +https://csslayout.io/notification +https://csslayout.io/pagination +https://csslayout.io/previous-next-buttons +https://csslayout.io/pricing-table +https://csslayout.io/progress-bar +https://csslayout.io/same-height-columns +https://csslayout.io/search-box +https://csslayout.io/separator +https://csslayout.io/simple-grid +https://csslayout.io/slider +https://csslayout.io/split-navigation +https://csslayout.io/stepper-input +https://csslayout.io/switch +https://csslayout.io/tab +https://csslayout.io/wizard +