From 28147fceb09a1240b9a6d348f752a1b383307f16 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 11 Apr 2017 12:43:45 +0200 Subject: [PATCH] Notify search engines upon every live deployment (#113) * add gulp task seo notifying Google & Bing via their official ping urls * only run it when --live flag is present * grab some configs from the Jekyll config file --- gulpfile.babel.js | 51 ++++++++++++++++++++++++++++++++++++++++------- package.json | 5 ++++- 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 1e90a58..82d6e1b 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -5,11 +5,16 @@ const $ = require('gulp-load-plugins')() // manually import modules that won't get picked up by gulp-load-plugins import { src, dest, watch, parallel, series } from 'gulp' -import del from 'del' +import del from 'del' +import parallelize from 'concurrent-transform' +import browser from 'browser-sync' +import critical from 'critical' +import fs from 'fs' +import yaml from 'js-yaml' + +// get all the configs: `pkg` and `site` import pkg from './package.json' -import parallelize from 'concurrent-transform' -import browser from 'browser-sync' -import critical from 'critical' +const site = yaml.safeLoad(fs.readFileSync('./_config.yml')) // handle errors const onError = (error) => { @@ -48,8 +53,8 @@ const PORT = 1337 const COMPATIBILITY = ['last 2 versions', 'Chrome >= 30', 'Safari >= 6.1', 'Firefox >= 35', 'Opera >= 32', 'iOS >= 8', 'Android >= 4', 'ie >= 10'] // paths -const SRC = '_src/', - DIST = '_dist/' +const SRC = site.source + '/', + DIST = site.destination + '/' // deployment const S3BUCKET = 'www.bigchaindb.com', @@ -420,5 +425,37 @@ export const s3 = () => { })) } + +// +// Ping search engines on live deployment +// +export const seo = (done) => { + + const googleUrl = 'http://www.google.com/webmasters/tools/ping?sitemap=', + bingUrl = 'http://www.bing.com/webmaster/ping.aspx?siteMap=' + + const response = (error, response) => { + if (error) { + $.util.log($.util.colors.red(error)) + } else { + $.util.log($.util.colors.gray('Status:', response && response.statusCode)) + + if (response.statusCode === 200) { + $.util.log($.util.colors.green('Successfully notified')) + } + } + } + + if ($.util.env.live === true) { + request(googleUrl + site.url + '/sitemap.xml', response) + request(bingUrl + site.url + '/sitemap.xml', response) + } + + done() +} + + +// // `gulp deploy` -export const deploy = series(deployBanner, s3) +// +export const deploy = series(deployBanner, s3, seo) diff --git a/package.json b/package.json index 47f4f06..ff6a99e 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "critical": "^0.8.4", "cross-spawn": "^5.1.0", "del": "^2.0.2", + "fs": "0.0.1-security", "gulp": "github:gulpjs/gulp#4.0", "gulp-autoprefixer": "^3.0.1", "gulp-awspublish": "^3.0.0", @@ -51,7 +52,9 @@ "gulp-sourcemaps": "^2.4.1", "gulp-svg-sprite": "^1.2.9", "gulp-uglify": "^2.0.1", - "gulp-util": "^3.0.6" + "gulp-util": "^3.0.6", + "js-yaml": "^3.8.3", + "request": "^2.81.0" }, "engines": { "node": ">=5.0.0"