1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-06 06:07:33 +02:00

Merge pull request #34 from phuoc-ng/sitemap

Add script to generate sitemap
This commit is contained in:
phuoc-ng
2019-11-22 21:22:24 +07:00
committed by GitHub
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>