1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-05 05:37:29 +02:00

Add script to generate sitemap

This commit is contained in:
Phuoc Nguyen
2019-11-22 21:20:06 +07:00
parent 268abf4461
commit 30cac19268
4 changed files with 70 additions and 1 deletions

30
bin/sitemap.js Normal file
View File

@@ -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 = ['<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">\n']
.concat(
items.map((item) => `<url><loc>https://csslayout.io/${slug(item)}</loc></url>\n`)
)
.concat(
['</urlset>\n']
)
.join('');
fs.writeFile('./sitemap.xml', output, (err) => {
console.log(err || 'Sitemap generated successfully');
});

View File

@@ -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",

3
robots.txt Normal file
View File

@@ -0,0 +1,3 @@
User-agent: *
Disallow:
Sitemap: https://csslayout.io/sitemap.xml

34
sitemap.xml Normal file
View File

@@ -0,0 +1,34 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
<url><loc>https://csslayout.io/holy-grail</loc></url>
<url><loc>https://csslayout.io/sidebar</loc></url>
<url><loc>https://csslayout.io/split-screen</loc></url>
<url><loc>https://csslayout.io/sticky-footer</loc></url>
<url><loc>https://csslayout.io/sticky-header</loc></url>
<url><loc>https://csslayout.io/badge</loc></url>
<url><loc>https://csslayout.io/breadcrumb</loc></url>
<url><loc>https://csslayout.io/button-with-icon</loc></url>
<url><loc>https://csslayout.io/card</loc></url>
<url><loc>https://csslayout.io/centering</loc></url>
<url><loc>https://csslayout.io/dot-navigation</loc></url>
<url><loc>https://csslayout.io/feature-list</loc></url>
<url><loc>https://csslayout.io/fixed-at-corner</loc></url>
<url><loc>https://csslayout.io/input-addon</loc></url>
<url><loc>https://csslayout.io/media-object</loc></url>
<url><loc>https://csslayout.io/menu</loc></url>
<url><loc>https://csslayout.io/modal</loc></url>
<url><loc>https://csslayout.io/notification</loc></url>
<url><loc>https://csslayout.io/pagination</loc></url>
<url><loc>https://csslayout.io/previous-next-buttons</loc></url>
<url><loc>https://csslayout.io/pricing-table</loc></url>
<url><loc>https://csslayout.io/progress-bar</loc></url>
<url><loc>https://csslayout.io/same-height-columns</loc></url>
<url><loc>https://csslayout.io/search-box</loc></url>
<url><loc>https://csslayout.io/separator</loc></url>
<url><loc>https://csslayout.io/simple-grid</loc></url>
<url><loc>https://csslayout.io/slider</loc></url>
<url><loc>https://csslayout.io/split-navigation</loc></url>
<url><loc>https://csslayout.io/stepper-input</loc></url>
<url><loc>https://csslayout.io/switch</loc></url>
<url><loc>https://csslayout.io/tab</loc></url>
<url><loc>https://csslayout.io/wizard</loc></url>
</urlset>