ClickHouse/website/gulpfile.js

96 lines
2.6 KiB
JavaScript
Raw Normal View History

CLICKHOUSE-2724: website refactoring (#668) * Split website and doc * Add Host directive to robots.txt * Make new favicon.ico from svg * Reformat code * Add some obscurity to email to limit it's inclusion to email spam databases * Mention SQL in descriptions * Put logo near main title * Add navbar * Update feedback text on tutorial page * Reformat code on tutorial page * Better inline svg * Move javascript to bottom in reference * Mark external links on main & tutorial * Copy footer from main to tutorial * Move Telegram higher * Get rid of hidden content * Update jQuery + add it on index * Rewrite plain JS with jQuery on index * Swap Contacts and Download * Some title tuning * Move Source link to corner * Slow scroll * New first screen * First screen tuning * Add github pages script * Checkout in proper place * more nofollow * Basic mobile support * Add some temporary icon (SIL licensed) * Fix horizontal scroll on mobile * Re-order paragraphs * Sync paragraphs with their index * Add one more grey block * Fix scroll to top * better offset * Reformat code * Add social paragraph * Better word * Font tuning * More font/offset tuning * Increase navbar padding * Basic minify & livereload via gulp * Add styles to default in gulp * Do not minify html in reference * Add og:image header * "build" gulp target * Add readme for website * Max-width for navbar * Use different placeholder * Tune some margins * Do not center buttons * Tune navbar padding * s/an/a/ * Larger font at logo * Increase padding at hero * Yet another placeholder + tune padding on buttons * Basic support for website inside Docker * Listen for IPv6 inside Docker * s/available/enabled/g * nginx tuning * add gzip_min_length * not so dark "fork me" badge * do not commit build results * move "fork me" to right side * Tune styles and texts * tune mobile version * text fix * text fix * text fix * publish presentations * fix navbar styling * fix id name * Support actual deployment to either prod and test * tune logo margin * Mention ClickHouse Docker images * style tuning * disable mix-blend-mode on mobile * copy robots.txt
2017-04-10 14:24:53 +00:00
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var cleanCss = require('gulp-clean-css');
var imagemin = require('gulp-imagemin');
var sourcemaps = require('gulp-sourcemaps');
var htmlmin = require('gulp-htmlmin');
var minifyInline = require('gulp-minify-inline');
var del = require('del');
var connect = require('gulp-connect');
var outputDir = 'public';
var paths = {
htmls: ['*.html', '!reference_ru.html', '!reference_en.html'],
reference: ['reference_ru.html', 'reference_en.html'],
scripts: ['*.js', '!gulpfile.js'],
styles: ['*.css'],
images: ['*.png', '*.ico'],
robotstxt: ['robots.txt'],
presentations: ['../doc/presentations/**']
};
gulp.task('clean', function () {
return del([outputDir + '**']);
});
gulp.task('reference', [], function () {
return gulp.src(paths.reference)
.pipe(minifyInline())
.pipe(gulp.dest(outputDir))
.pipe(connect.reload())
});
gulp.task('presentations', [], function () {
return gulp.src(paths.presentations)
.pipe(gulp.dest(outputDir + '/presentations'))
.pipe(connect.reload())
});
gulp.task('robotstxt', [], function () {
return gulp.src(paths.robotstxt)
.pipe(gulp.dest(outputDir))
.pipe(connect.reload())
});
gulp.task('htmls', ['reference', 'robotstxt', 'presentations'], function () {
return gulp.src(paths.htmls)
.pipe(htmlmin({collapseWhitespace: true}))
.pipe(minifyInline())
.pipe(gulp.dest(outputDir))
.pipe(connect.reload())
});
gulp.task('scripts', [], function () {
return gulp.src(paths.scripts)
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write())
.pipe(gulp.dest(outputDir))
.pipe(connect.reload())
});
gulp.task('styles', [], function () {
return gulp.src(paths.styles)
.pipe(cleanCss())
.pipe(gulp.dest(outputDir))
.pipe(connect.reload())
});
gulp.task('images', [], function () {
return gulp.src(paths.images)
.pipe(imagemin({optimizationLevel: 9}))
.pipe(gulp.dest(outputDir))
.pipe(connect.reload())
});
gulp.task('watch', function () {
gulp.watch(paths.htmls, ['htmls']);
gulp.watch(paths.scripts, ['scripts']);
gulp.watch(paths.images, ['images']);
});
gulp.task('connect', function() {
connect.server({
root: outputDir,
port: 8080,
keepalive: true,
livereload: true
})
});
gulp.task('build', ['htmls', 'scripts', 'styles', 'images']);
gulp.task('default', ['build', 'watch', 'connect']);