ClickHouse/website/gulpfile.js
Ivan Blinkov 6a51c66424 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 17:24:53 +03:00

96 lines
2.6 KiB
JavaScript

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']);