diff --git a/build/sitemap.js b/build/sitemap.js new file mode 100644 index 0000000..79757cb --- /dev/null +++ b/build/sitemap.js @@ -0,0 +1,31 @@ +var fs = require('fs') +var path = require('path') +var async = require('async') +var packageJson = require('../package.json') +var inputDir = path.normalize(path.join(__dirname, '..', 'pages')) +var outputDir = path.normalize(path.join(__dirname, '..', 'dist')) + +if (!packageJson.config.deploy.prod) throw new Error('Can\'t find packageJson.config.deploy.prod') + +async.waterfall([ + function read (done) { + fs.readdir(inputDir, done) + }, + function filter (contents, done) { + async.filter(contents, function (item, callback) { + fs.stat(path.join(inputDir, item), function (err, stat) { + if (err) return callback(err) + callback(null, stat.isDirectory && item !== 'home') + }) + }, done) + }, + function createUrls (pages, done) { + var routes = pages.map(function (page) { return 'https://' + packageJson.config.deploy.prod + '/' + page }) + var sitemap = routes.join('\n') + var writePath = path.join(outputDir, 'sitemap.txt') + fs.writeFile(writePath, sitemap, done) + } +], function (err) { + if (err) throw err + console.log('Created dist/sitemap.txt') +}) diff --git a/package.json b/package.json index d24adf4..02adb54 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "build:css": "node build/sass.js | postcss --local-plugins --use autoprefixer --output dist/bundle.css", "build:html": "node build/jade.js", "build:js": "browserify -t jadeify pages/main.js -o dist/bundle.js", + "build:sitemap": "node build/sitemap.js", "minify:js": "uglifyjs dist/bundle.js -o dist/bundle.js", "minify:css": "postcss -u cssnano -i dist/bundle.css -o dist/bundle.css", "minify:svg": "svgo --disable=cleanupIDs --disable=removeHiddenElems dist/bundle.svg", @@ -86,4 +87,4 @@ "template": "wedding" } } -} \ No newline at end of file +}