mirror of
https://github.com/carloscuesta/gitmoji.git
synced 2025-12-08 20:14:12 +00:00
95 lines
2.0 KiB
JavaScript
95 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
import gulp from 'gulp';
|
|
import sass from 'gulp-sass';
|
|
import pug from 'gulp-pug';
|
|
import pugLint from 'gulp-pug-lint';
|
|
import browserSync from 'browser-sync';
|
|
import plumber from 'gulp-plumber';
|
|
import gitmojis from './src/data/gitmojis.json';
|
|
import ghPages from 'gulp-gh-pages';
|
|
|
|
const baseDirs = {
|
|
src: 'src/',
|
|
dist: 'dist/'
|
|
};
|
|
|
|
const routes = {
|
|
templates: {
|
|
pug: `${baseDirs.src}templates/*.pug`,
|
|
_pug: `${baseDirs.src}templates/_includes/*.pug`
|
|
},
|
|
styles: {
|
|
scss: `${baseDirs.src}styles/*.scss`,
|
|
_scss: `${baseDirs.src}styles/_includes/*.scss`
|
|
},
|
|
files: {
|
|
html: `${baseDirs.dist}`,
|
|
css: `${baseDirs.dist}css/`,
|
|
deploy: `${baseDirs.dist}**/*`
|
|
}
|
|
};
|
|
|
|
gulp.task('templates', () => {
|
|
return gulp.src([routes.templates.pug, '!' + routes.templates._pug])
|
|
.pipe(plumber({}))
|
|
.pipe(pug({
|
|
locals: {
|
|
'emojis': gitmojis
|
|
}
|
|
}))
|
|
.pipe(gulp.dest(routes.files.html))
|
|
.pipe(browserSync.stream())
|
|
});
|
|
|
|
gulp.task('styles', () => {
|
|
return gulp.src(routes.styles.scss)
|
|
.pipe(plumber({}))
|
|
.pipe(sass({
|
|
outputStyle: 'compressed'
|
|
}))
|
|
.pipe(gulp.dest(routes.files.css))
|
|
.pipe(browserSync.stream())
|
|
});
|
|
|
|
gulp.task('test', () => {
|
|
return gulp.src(routes.styles.scss)
|
|
.pipe(plumber({}))
|
|
.pipe(sass({
|
|
outputStyle: 'compressed'
|
|
}))
|
|
.pipe(gulp.dest(routes.files.css))
|
|
|
|
return gulp.src([routes.templates.pug, '!' + routes.templates._pug])
|
|
.pipe(pugLint())
|
|
.pipe(plumber({}))
|
|
.pipe(pug({
|
|
locals: {
|
|
'emojis': gitmojis
|
|
}
|
|
}))
|
|
.pipe(gulp.dest(routes.files.html))
|
|
});
|
|
|
|
gulp.task('serve', () => {
|
|
browserSync.init({
|
|
server: `${baseDirs.dist}`
|
|
});
|
|
|
|
gulp.watch([routes.templates.pug, routes.templates._pug], ['templates']);
|
|
gulp.watch([routes.styles.scss, routes.styles._scss], ['styles']);
|
|
});
|
|
|
|
gulp.task('deploy', () => {
|
|
return gulp.src(routes.files.deploy)
|
|
.pipe(ghPages({
|
|
message: ':rocket: gitmoji website'
|
|
}))
|
|
});
|
|
|
|
gulp.task('dev', ['templates', 'styles', 'serve']);
|
|
|
|
gulp.task('default', () => {
|
|
gulp.start('dev');
|
|
});
|