Skip to content

Commit

Permalink
749 landingpage leftovers and followups (#751)
Browse files Browse the repository at this point in the history
  • Loading branch information
marynaKhromova authored and pekura committed Aug 16, 2019
1 parent d101719 commit 403cad3
Show file tree
Hide file tree
Showing 58 changed files with 575 additions and 37,902 deletions.
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
website
4 changes: 2 additions & 2 deletions scripts/docuCheck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ validateAndGenerateDocumentation() {
validateMdChanges() {
local FOLDER=$1
echoe "Validate .md changes for ${FOLDER}"
# verify that there are no changes in md files
local MD_FILE_CHANGES=`git status | grep '.md' | wc -l`
# verify that there are no changes in md files, exclude styleguide from being checked
local MD_FILE_CHANGES=`git status | grep '.md' | grep -v 'styleguide' | wc -l`
if [[ $MD_FILE_CHANGES != *"0"* ]]; then
echoe "Unsaved documentation changes found"
echo "The following files need to be commited and pushed again:"
Expand Down
2 changes: 1 addition & 1 deletion website/landingpage/dev/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ UNCSS_OPTIONS:
# Gulp will reference these paths when it copies files
PATHS:
# Path to dist folder
dist: "dist"
dist: "../public"
# Paths to static assets that aren't images, CSS, or JavaScript
assets:
- "src/assets/**/*"
Expand Down
152 changes: 85 additions & 67 deletions website/landingpage/dev/gulpfile.babel.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
'use strict';

import plugins from 'gulp-load-plugins';
import yargs from 'yargs';
import browser from 'browser-sync';
import gulp from 'gulp';
import panini from 'panini';
import rimraf from 'rimraf';
import sherpa from 'style-sherpa';
import yaml from 'js-yaml';
import fs from 'fs';
import plugins from 'gulp-load-plugins';
import yargs from 'yargs';
import browser from 'browser-sync';
import gulp from 'gulp';
import panini from 'panini';
import rimraf from 'rimraf';
import sherpa from 'style-sherpa';
import yaml from 'js-yaml';
import fs from 'fs';
import webpackStream from 'webpack-stream';
import webpack2 from 'webpack';
import named from 'vinyl-named';
import uncss from 'uncss';
import autoprefixer from 'autoprefixer';
import webpack2 from 'webpack';
import named from 'vinyl-named';
import uncss from 'uncss';
import autoprefixer from 'autoprefixer';

// Load all Gulp plugins into one variable
const $ = plugins();

// Check for --production flag
const PRODUCTION = !!(yargs.argv.production);
const PRODUCTION = !!yargs.argv.production;

// Load settings from settings.yml
const { COMPATIBILITY, PORT, UNCSS_OPTIONS, PATHS } = loadConfig();
Expand All @@ -31,36 +31,39 @@ function loadConfig() {

// Build the "dist" folder by running all of the below tasks
// Sass must be run later so UnCSS can search for used classes in the others assets.
gulp.task('build',
gulp.series(clean, gulp.parallel(pages, javascript, images, copy), sass, styleGuide));
gulp.task(
'build',
gulp.series(gulp.parallel(pages, javascript, images, copy), sass)
);

// Build the site, run the server, and watch for file changes
gulp.task('default',
gulp.series('build', server, watch));
gulp.task('default', gulp.series('build', server, watch));

// Delete the "dist" folder
// This happens every time a build starts
function clean(done) {
rimraf(PATHS.dist, done);
}
// function clean(done) {
// rimraf(PATHS.dist, done);
// }

// Copy files out of the assets folder
// This task skips over the "img", "js", and "scss" folders, which are parsed separately
function copy() {
return gulp.src(PATHS.assets)
.pipe(gulp.dest(PATHS.dist + '/assets'));
return gulp.src(PATHS.assets).pipe(gulp.dest(PATHS.dist + '/assets'));
}

// Copy page templates into finished HTML files
function pages() {
return gulp.src('src/pages/**/*.{html,hbs,handlebars}')
.pipe(panini({
root: 'src/pages/',
layouts: 'src/layouts/',
partials: 'src/partials/',
data: 'src/data/',
helpers: 'src/helpers/'
}))
return gulp
.src('src/pages/**/*.{html,hbs,handlebars}')
.pipe(
panini({
root: 'src/pages/',
layouts: 'src/layouts/',
partials: 'src/partials/',
data: 'src/data/',
helpers: 'src/helpers/'
})
)
.pipe(gulp.dest(PATHS.dist));
}

Expand All @@ -70,32 +73,25 @@ function resetPages(done) {
done();
}

// Generate a style guide from the Markdown content and HTML template in styleguide/
function styleGuide(done) {
sherpa('src/styleguide/index.md', {
output: PATHS.dist + '/styleguide.html',
template: 'src/styleguide/template.html'
}, done);
}

// Compile Sass into CSS
// In production, the CSS is compressed
function sass() {

const postCssPlugins = [
// Autoprefixer
autoprefixer({ browsers: COMPATIBILITY }),
autoprefixer({ browsers: COMPATIBILITY })

// UnCSS - Uncomment to remove unused styles in production
// PRODUCTION && uncss.postcssPlugin(UNCSS_OPTIONS),
].filter(Boolean);

return gulp.src('src/assets/scss/app.scss')
return gulp
.src('src/assets/scss/app.scss')
.pipe($.sourcemaps.init())
.pipe($.sass({
includePaths: PATHS.sass
})
.on('error', $.sass.logError))
.pipe(
$.sass({
includePaths: PATHS.sass
}).on('error', $.sass.logError)
)
.pipe($.postcss(postCssPlugins))
.pipe($.if(PRODUCTION, $.cleanCss({ compatibility: 'ie9' })))
.pipe($.if(!PRODUCTION, $.sourcemaps.write()))
Expand All @@ -104,53 +100,64 @@ function sass() {
}

let webpackConfig = {
mode: (PRODUCTION ? 'production' : 'development'),
mode: PRODUCTION ? 'production' : 'development',
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: [ "@babel/preset-env" ],
presets: ['@babel/preset-env'],
compact: false
}
}
}
]
},
devtool: !PRODUCTION && 'source-map'
}
};

// Combine JavaScript into one file
// In production, the file is minified
function javascript() {
return gulp.src(PATHS.entries)
return gulp
.src(PATHS.entries)
.pipe(named())
.pipe($.sourcemaps.init())
.pipe(webpackStream(webpackConfig, webpack2))
.pipe($.if(PRODUCTION, $.uglify()
.on('error', e => { console.log(e); })
))
.pipe(
$.if(
PRODUCTION,
$.uglify().on('error', e => {
console.log(e);
})
)
)
.pipe($.if(!PRODUCTION, $.sourcemaps.write()))
.pipe(gulp.dest(PATHS.dist + '/assets/js'));
}

// Copy images to the "dist" folder
// In production, the images are compressed
function images() {
return gulp.src('src/assets/img/**/*')
.pipe($.if(PRODUCTION, $.imagemin([
$.imagemin.jpegtran({ progressive: true }),
])))
return gulp
.src('src/assets/img/**/*')
.pipe(
$.if(PRODUCTION, $.imagemin([$.imagemin.jpegtran({ progressive: true })]))
)
.pipe(gulp.dest(PATHS.dist + '/assets/img'));
}

// Start a server with BrowserSync to preview the site in
function server(done) {
browser.init({
server: PATHS.dist, port: PORT
}, done);
browser.init(
{
server: PATHS.dist,
port: PORT
},
done
);
}

// Reload the browser with BrowserSync
Expand All @@ -162,12 +169,23 @@ function reload(done) {
// Watch for changes to static assets, pages, Sass, and JavaScript
function watch() {
gulp.watch(PATHS.assets, copy);
gulp.watch('src/pages/**/*.html').on('all', gulp.series(pages, browser.reload));
gulp.watch('src/{layouts,partials}/**/*.html').on('all', gulp.series(resetPages, pages, browser.reload));
gulp.watch('src/data/**/*.{js,json,yml}').on('all', gulp.series(resetPages, pages, browser.reload));
gulp.watch('src/helpers/**/*.js').on('all', gulp.series(resetPages, pages, browser.reload));
gulp
.watch('src/pages/**/*.html')
.on('all', gulp.series(pages, browser.reload));
gulp
.watch('src/{layouts,partials}/**/*.html')
.on('all', gulp.series(resetPages, pages, browser.reload));
gulp
.watch('src/data/**/*.{js,json,yml}')
.on('all', gulp.series(resetPages, pages, browser.reload));
gulp
.watch('src/helpers/**/*.js')
.on('all', gulp.series(resetPages, pages, browser.reload));
gulp.watch('src/assets/scss/**/*.scss').on('all', sass);
gulp.watch('src/assets/js/**/*.js').on('all', gulp.series(javascript, browser.reload));
gulp.watch('src/assets/img/**/*').on('all', gulp.series(images, browser.reload));
gulp.watch('src/styleguide/**').on('all', gulp.series(styleGuide, browser.reload));
gulp
.watch('src/assets/js/**/*.js')
.on('all', gulp.series(javascript, browser.reload));
gulp
.watch('src/assets/img/**/*')
.on('all', gulp.series(images, browser.reload));
}
Loading

0 comments on commit 403cad3

Please sign in to comment.