diff --git a/.babelrc b/.babelrc index 34c75dda2..758df2aeb 100644 --- a/.babelrc +++ b/.babelrc @@ -1,17 +1,4 @@ { - "plugins": [ - "transform-es2015-arrow-functions", - "transform-es2015-block-scoped-functions", - "transform-es2015-block-scoping", - "transform-es2015-classes", - "transform-es2015-destructuring", - "transform-es2015-template-literals", - "transform-es2015-parameters", - "transform-es2015-shorthand-properties", - "transform-es2015-spread", - ["transform-es2015-modules-commonjs", { - "allowTopLevelThis": true - }] - ], + "presets": ["es2015"], "compact": false -} \ No newline at end of file +} diff --git a/.bowerrc b/.bowerrc deleted file mode 100644 index e3343d296..000000000 --- a/.bowerrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "directory": "assets/components" -} diff --git a/.gitignore b/.gitignore index d4fc935b6..ba51521f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,7 @@ .DS_Store +node_modules +npm-debug.log +dist *.sass-cache* *.log -node_modules/ -assets/stylesheets/ -assets/components/ -assets/javascript/vendor/ -assets/javascript/foundation.js -assets/javascript/custom/demosite.js -packaged/ -wpcs/ \ No newline at end of file +*.swp diff --git a/README.md b/README.md index 42f5ffd58..c3655e2b1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ All contributions are welcome! ## Requirements -**This project requires [Node.js](http://nodejs.org) v4.x.x to v6.11.x to be installed on your machine.** Please be aware that you will most likely encounter problems with the installation if you are using the most current Node version (bleeding edge) with all the latest features. +**This project requires [Node.js](http://nodejs.org) v4.x.x to v6.11.x to be installed on your machine.** Please be aware that you might encounter problems with the installation if you are using the most current Node version (bleeding edge) with all the latest features. FoundationPress uses [Sass](http://Sass-lang.com/) (CSS with superpowers). In short, Sass is a CSS pre-processor that allows you to write styles more effectively and tidy. @@ -26,62 +26,55 @@ $ cd FoundationPress $ npm install ``` -### 2. While you're working on your project, run: +### 2. Get started -```bash -$ npm run watch -``` +For WordPress development on localhost, I recommend using [MAMP](https://www.mamp.info/en/) for Mac, [WAMP](http://www.wampserver.com/en/download-wampserver-64bits/) for Windows or [LAMP](https://www.linux.com/learn/easy-lamp-server-installation) for Linux. -If you want to take advantage of browser-sync (automatic browser refresh when a file is saved), simply open your Gulpfile.js and put your local dev-server address (e.g localhost) in this field ```var URL = '';``` , save the Gulpfile and run -```bash -$ npm run watch -``` +If you want to take advantage of browser-sync (automatic browser refresh when a file is saved), simply open your gulpfile.babel.js and put your local dev-server address and port (e.g http://localhost:8888) in the `URL` variable. -### 3. For building all the assets, run: +Then, simply run ```bash -$ npm run build +$ npm start ``` -Build all assets minified and without sourcemaps: -```bash -$ npm run production -``` +### 3. Compile assets for production -### 4. To create a .zip file of your theme, run: +When building for production, the CSS and JS will be minified. To minify the assets in your `/dist` folder, run ```bash -$ npm run package +$ npm run build ``` -Running this command will build and minify the theme's assets and place a `.zip` archive of the theme in the `packaged` directory. This excludes the developer files/directories from your theme like `node_modules`, `assets/components`, etc. to keep the theme lightweight for transferring the theme to a staging or production server. +### Project structure -### Styles +In the `/src` folder you will the working files for all your assets. Every time you make a change to a file that is watched by Gulp, the output will be saved to the `/dist` folder. The contents of this folder is the compiled code that you should not touch (unless you have a good reason for it). - * `style.css`: Do not worry about this file. (For some reason) it's required by WordPress. All styling are handled in the Sass files described below +The `/page-templates` folder contains templates that can be selected in the Pages section of the WordPress admin panel. To create a new page-template, simply create a new file in this folder and make sure to give it a template name. - * `assets/scss/foundation.scss`: Make imports for all your styles here - * `assets/scss/global/*.scss`: Global settings - * `assets/scss/components/*.scss`: Buttons etc. - * `assets/scss/modules/*.scss`: Topbar, footer etc. - * `assets/scss/templates/*.scss`: Page template spesific styling +I guess the rest is quite self explanatory. Feel free to ask if you feel stuck. -Please note that you **must** run `npm run build` or `npm run watch` in your terminal for the styles to be copied and concatenated. See the [Gulpfile.js](https://github.com/olefredrik/FoundationPress/blob/master/gulpfile.js) for details +### Styles and Sass Compilation + + * `style.css`: Do not worry about this file. (For some reason) it's required by WordPress. All styling are handled in the Sass files described below -### Scripts + * `src/assets/scss/app.scss`: Make imports for all your styles here + * `src/assets/scss/global/*.scss`: Global settings + * `src/assets/scss/components/*.scss`: Buttons etc. + * `src/assets/scss/modules/*.scss`: Topbar, footer etc. + * `src/assets/scss/templates/*.scss`: Page template styling -* `assets/javascript/custom`: This is the folder where you put all your custom scripts. Every .js file you put in this directory will be minified and concatenated one single .js file. (This is good for site speed and performance) + * `dist/assets/css/app.css`: This file is loaded in the `
` section of your document, and contains the compiled styles for your project. -Please note that you must run `npm run build` or `npm run watch` in your terminal for the scripts to be copied and concatenated. See [Gulpfile.js](https://github.com/olefredrik/FoundationPress/blob/master/gulpfile.js) for details +If you're new to Sass, please note that you need to have Gulp running in the background (``npm start``), for any changes in your scss files to be compiled to `app.css`. -### The main styles and scripts generated by the build +### JavaScript Compilation -Version control on these files are turned off because they are automatically generated as part of the build process. +All JavaScript files in the `src/assets/js` folder, along ith Foundation and its dependencies, are bundled into one file called `app.js`. The files are imported using module dependency with [webpack](https://webpack.js.org/) as the module bundler. -* `assets/stylesheets/foundation.css`: All Sass files are minified and compiled to this file -* `assets/stylesheets/foundation.css.map`: CSS source maps +If you're unfamiliar with modules and module bundling, check out [this resource for node style require/exports](http://openmymind.net/2012/2/3/Node-Require-and-Exports/) and [this resource to understand ES6 modules](http://exploringjs.com/es6/ch_modules.html). -* `assets/javascript/vendor`: Vendor scripts are copied from `assets/components/` to this directory. We use this path for enqueing the vendor scripts in WordPress. +Foundation modules are loaded in the `src/assets/js/app.js` file. By default all components are loaded. You can also pick and choose which modules to include. Just follow the instructions in the file. ## Demo diff --git a/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f36..000000000 Binary files a/assets/fonts/FontAwesome.otf and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca95..000000000 Binary files a/assets/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845e5..000000000 --- a/assets/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2fa..000000000 Binary files a/assets/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a4b..000000000 Binary files a/assets/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/assets/fonts/fontawesome-webfont.woff2 b/assets/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc604..000000000 Binary files a/assets/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/assets/javascript/custom/init-foundation.js b/assets/javascript/custom/init-foundation.js deleted file mode 100644 index de0f51d52..000000000 --- a/assets/javascript/custom/init-foundation.js +++ /dev/null @@ -1 +0,0 @@ -jQuery(document).foundation(); diff --git a/assets/javascript/custom/stickyfooter.js b/assets/javascript/custom/stickyfooter.js deleted file mode 100644 index 701b13791..000000000 --- a/assets/javascript/custom/stickyfooter.js +++ /dev/null @@ -1,18 +0,0 @@ -/* Sticky Footer */ - -(function($) { - - var $footer = $('[data-sticky-footer]'); // only search once - - $(window).bind('load resize orientationChange', function () { - - var pos = $footer.position(), - height = ($(window).height() - pos.top) - ($footer.height() -1); - - if (height > 0) { - $footer.css('margin-top', height); - } - - }); - -})(jQuery); diff --git a/assets/scss/components/_cards.scss b/assets/scss/components/_cards.scss deleted file mode 100644 index c55254de3..000000000 --- a/assets/scss/components/_cards.scss +++ /dev/null @@ -1,29 +0,0 @@ -.flex-card-example { - @include breakpoint(small) { - display: flex; - flex-direction: column; - flex-wrap: wrap; - justify-content: space-between; - } - - @include breakpoint(medium) { - flex-direction: row; - } - - .card { - - @include breakpoint(small) { - width: 100%; - img { width: 100%; } - } - - @include breakpoint(medium) { - width: 32%; - } - - .card-content { - padding: 1rem; - } - - } -} diff --git a/assets/scss/global/_demosite-settings.scss b/assets/scss/global/_demosite-settings.scss deleted file mode 100644 index a2afd2063..000000000 --- a/assets/scss/global/_demosite-settings.scss +++ /dev/null @@ -1,10 +0,0 @@ -$dark-grey: #2c3840; -$body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; -$offcanvas-background: $dark-grey; -$titlebar-background: $dark-grey; -$titlebar-color: $white; -$titlebar-icon-color: $white; -$titlebar-icon-color-hover: $medium-gray; -$topbar-padding: 0; -$topbar-background: $dark-grey; -$topbar-submenu-background: $dark-grey; diff --git a/assets/scss/modules/_content.scss b/assets/scss/modules/_content.scss deleted file mode 100644 index b80a0d526..000000000 --- a/assets/scss/modules/_content.scss +++ /dev/null @@ -1,51 +0,0 @@ -.main-wrap { - @include grid-row(); - margin-top: 1rem; - - @include breakpoint(medium) { - margin-top: 3rem; - } -} - -.main-content { - - // default 2 column - @include grid-column(12); - @include breakpoint(medium) { - @include grid-column(8); - } - - // 1 column - .full-width.main-wrap & { - @include breakpoint(medium) { - @include grid-column(12); - } - } - - // 2 column sidebar left - .sidebar-left.main-wrap & { - @include breakpoint(medium) { - @include grid-column(8); - @include grid-col-pos(4); - } - } -} - -.sidebar { - - // default 2 column - @include grid-column(12); - @include breakpoint(medium) { - @include grid-column(4); - margin-top: 1rem; - } - - // 2 column sidebar left - .sidebar-left.main-wrap & { - @include breakpoint(medium) { - @include grid-column(4); - @include grid-col-pos(-8); - margin-top: 1rem; - } - } -} \ No newline at end of file diff --git a/bower.json b/bower.json deleted file mode 100644 index 928c2abd4..000000000 --- a/bower.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "foundationpress", - "main": [ - "assets/stylesheets/foundation.css", - "assets/javascript/foundation.js" - ], - "ignore": [], - "dependencies": { - "foundation-sites": "~6.3.0", - "motion-ui" : "~1.2.0", - "fontawesome": "~4.7.0" - } -} diff --git a/config.yml b/config.yml new file mode 100644 index 000000000..7b2ed4e97 --- /dev/null +++ b/config.yml @@ -0,0 +1,29 @@ +# Autoprefixer will make sure your CSS works with these browsers +COMPATIBILITY: + - "last 2 versions" + - "ie >= 9" + - "ios >= 7" + +# UnCSS will use these settings +UNCSS_OPTIONS: + html: + - "**/*.html" + ignore: + - !!js/regexp .foundation-mq + - !!js/regexp ^\.is-.* + +# Gulp will reference these paths when it copies files +PATHS: + # Path to dist folder + dist: "dist" + # Paths to static assets that aren't images, CSS, or JavaScript + assets: + - "src/assets/**/*" + - "!src/assets/{img,js,scss}/**/*" + # Paths to Sass libraries, which can then be loaded with @import + sass: + - "node_modules/foundation-sites/scss" + - "node_modules/motion-ui/src" + # Paths to JavaScript entry points for webpack to bundle modules + entries: + - "src/assets/js/app.js" diff --git a/footer.php b/footer.php index 277efc6fe..b4c95e821 100644 --- a/footer.php +++ b/footer.php @@ -22,8 +22,7 @@ - - + diff --git a/gulpfile.babel.js b/gulpfile.babel.js new file mode 100644 index 000000000..0df673765 --- /dev/null +++ b/gulpfile.babel.js @@ -0,0 +1,139 @@ +'use strict'; + +import plugins from 'gulp-load-plugins'; +import yargs from 'yargs'; +import browser from 'browser-sync'; +import gulp from 'gulp'; +import rimraf from 'rimraf'; +import yaml from 'js-yaml'; +import fs from 'fs'; +import webpackStream from 'webpack-stream'; +import webpack2 from 'webpack'; +import named from 'vinyl-named'; + +// Load all Gulp plugins into one variable +const $ = plugins(); + +// Check for --production flag +const PRODUCTION = !!(yargs.argv.production); + +// Load settings from settings.yml +const { COMPATIBILITY, UNCSS_OPTIONS, PATHS } = loadConfig(); + +function loadConfig() { + let ymlFile = fs.readFileSync('config.yml', 'utf8'); + return yaml.load(ymlFile); +} + +// Enter URL of your local server here +// Example: 'http://localhost:8888' +var URL = ''; + +// Build the "dist" folder by running all of the below tasks +gulp.task('build', + gulp.series(clean, sass, javascript, images, copy)); + +// Build the site, run the server, and watch for file changes +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); +} + +// 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')); +} + +// Compile Sass into CSS +// In production, the CSS is compressed +function sass() { + return gulp.src('src/assets/scss/app.scss') + .pipe($.sourcemaps.init()) + .pipe($.sass({ + includePaths: PATHS.sass + }) + .on('error', $.sass.logError)) + .pipe($.autoprefixer({ + browsers: COMPATIBILITY + })) + // Comment in the pipe below to run UnCSS in production + //.pipe($.if(PRODUCTION, $.uncss(UNCSS_OPTIONS))) + .pipe($.if(PRODUCTION, $.cleanCss({ compatibility: 'ie9' }))) + .pipe($.if(!PRODUCTION, $.sourcemaps.write())) + .pipe(gulp.dest(PATHS.dist + '/assets/css')) + .pipe(browser.reload({ stream: true })); +} + +let webpackConfig = { + module: { + rules: [ + { + test: /.js$/, + use: [ + { + loader: 'babel-loader' + } + ] + } + ] + } +} +// Combine JavaScript into one file +// In production, the file is minified +function javascript() { + 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, $.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({ + progressive: true + }))) + .pipe(gulp.dest(PATHS.dist + '/assets/img')); +} + +// Start BrowserSync to preview the site in +function server(done) { + browser.init({ + proxy: URL, + + ui: { + port: 8080 + }, + + }); + done(); +} + +// Reload the browser with BrowserSync +function reload(done) { + browser.reload(); + done(); +} + + + +// Watch for changes to static assets, pages, Sass, and JavaScript +function watch() { + gulp.watch(PATHS.assets, copy); + gulp.watch('src/assets/scss/**/*.scss').on('all', sass); + gulp.watch('**/*.php').on('all', 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)); +} diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index ec3bf3a6a..000000000 --- a/gulpfile.js +++ /dev/null @@ -1,233 +0,0 @@ -/*jslint node: true */ -"use strict"; - -var $ = require('gulp-load-plugins')(); -var argv = require('yargs').argv; -var gulp = require('gulp'); -var browserSync = require('browser-sync').create(); -var merge = require('merge-stream'); -var sequence = require('run-sequence'); -var colors = require('colors'); -var dateFormat = require('dateformat'); -var del = require('del'); -var cleanCSS = require('gulp-clean-css'); - -// Enter URL of your local server here -// Example: 'http://localwebsite.dev' -var URL = ''; - -// Check for --production flag -var isProduction = !!(argv.production); - -// Browsers to target when prefixing CSS. -var COMPATIBILITY = [ - 'last 2 versions', - 'ie >= 9', - 'Android >= 2.3' -]; - -// File paths to various assets are defined here. -var PATHS = { - sass: [ - 'assets/components/foundation-sites/scss', - 'assets/components/motion-ui/src', - 'assets/components/fontawesome/scss', - ], - javascript: [ - 'assets/components/what-input/what-input.js', - 'assets/components/foundation-sites/js/foundation.core.js', - 'assets/components/foundation-sites/js/foundation.util.*.js', - - // Paths to individual JS components defined below - 'assets/components/foundation-sites/js/foundation.abide.js', - 'assets/components/foundation-sites/js/foundation.accordion.js', - 'assets/components/foundation-sites/js/foundation.accordionMenu.js', - 'assets/components/foundation-sites/js/foundation.drilldown.js', - 'assets/components/foundation-sites/js/foundation.dropdown.js', - 'assets/components/foundation-sites/js/foundation.dropdownMenu.js', - 'assets/components/foundation-sites/js/foundation.equalizer.js', - 'assets/components/foundation-sites/js/foundation.interchange.js', - 'assets/components/foundation-sites/js/foundation.magellan.js', - 'assets/components/foundation-sites/js/foundation.offcanvas.js', - 'assets/components/foundation-sites/js/foundation.orbit.js', - 'assets/components/foundation-sites/js/foundation.responsiveMenu.js', - 'assets/components/foundation-sites/js/foundation.responsiveToggle.js', - 'assets/components/foundation-sites/js/foundation.reveal.js', - 'assets/components/foundation-sites/js/foundation.slider.js', - 'assets/components/foundation-sites/js/foundation.sticky.js', - 'assets/components/foundation-sites/js/foundation.tabs.js', - 'assets/components/foundation-sites/js/foundation.toggler.js', - 'assets/components/foundation-sites/js/foundation.tooltip.js', - 'assets/components/foundation-sites/js/foundation.zf.responsiveAccordionTabs.js', - - - // Motion UI - 'assets/components/motion-ui/motion-ui.js', - - // Include your own custom scripts (located in the custom folder) - 'assets/javascript/custom/*.js', - ], - pkg: [ - '**/*', - '!**/node_modules/**', - '!**/components/**', - '!**/scss/**', - '!**/bower.json', - '!**/gulpfile.js', - '!**/package.json', - '!**/composer.json', - '!**/composer.lock', - '!**/codesniffer.ruleset.xml', - '!**/packaged/*', - ] -}; - -// Browsersync task -gulp.task('browser-sync', ['build'], function() { - - var files = [ - '**/*.php', - 'assets/images/**/*.{png,jpg,gif}', - ]; - - browserSync.init(files, { - // Proxy address - proxy: URL, - - // Port # - // port: PORT - }); -}); - -// Compile Sass into CSS -// In production, the CSS is compressed -gulp.task('sass', function() { - return gulp.src('assets/scss/foundation.scss') - .pipe($.sourcemaps.init()) - .pipe($.sass({ - includePaths: PATHS.sass - })) - .on('error', $.notify.onError({ - message: "<%= error.message %>", - title: "Sass Error" - })) - .pipe($.autoprefixer({ - browsers: COMPATIBILITY - })) - // Minify CSS if run with --production flag - .pipe($.if(isProduction, cleanCSS())) - .pipe($.if(!isProduction, $.sourcemaps.write('.'))) - .pipe(gulp.dest('assets/stylesheets')) - .pipe(browserSync.stream({match: '**/*.css'})); -}); - -// Lint all JS files in custom directory -gulp.task('lint', function() { - return gulp.src('assets/javascript/custom/*.js') - .pipe($.jshint()) - .pipe($.notify(function (file) { - if (file.jshint.success) { - return false; - } - - var errors = file.jshint.results.map(function (data) { - if (data.error) { - return "(" + data.error.line + ':' + data.error.character + ') ' + data.error.reason; - } - }).join("\n"); - return file.relative + " (" + file.jshint.results.length + " errors)\n" + errors; - })); -}); - -// Combine JavaScript into one file -// In production, the file is minified -gulp.task('javascript', function() { - var uglify = $.uglify() - .on('error', $.notify.onError({ - message: "<%= error.message %>", - title: "Uglify JS Error" - })); - - return gulp.src(PATHS.javascript) - .pipe($.sourcemaps.init()) - .pipe($.babel()) - .pipe($.concat('foundation.js', { - newLine:'\n;' - })) - .pipe($.if(isProduction, uglify)) - .pipe($.if(!isProduction, $.sourcemaps.write())) - .pipe(gulp.dest('assets/javascript')) - .pipe(browserSync.stream()); -}); - -// Copy task -gulp.task('copy', function() { - // Font Awesome - var fontAwesome = gulp.src('assets/components/fontawesome/fonts/**/*.*') - .pipe(gulp.dest('assets/fonts')); - - return merge(fontAwesome); -}); - -// Package task -gulp.task('package', ['build'], function() { - var fs = require('fs'); - var time = dateFormat(new Date(), "yyyy-mm-dd_HH-MM"); - var pkg = JSON.parse(fs.readFileSync('./package.json')); - var title = pkg.name + '_' + time + '.zip'; - - return gulp.src(PATHS.pkg) - .pipe($.zip(title)) - .pipe(gulp.dest('packaged')); -}); - -// Build task -// Runs copy then runs sass & javascript in parallel -gulp.task('build', ['clean'], function(done) { - sequence('copy', - ['sass', 'javascript', 'lint'], - done); -}); - -// Clean task -gulp.task('clean', function(done) { - sequence(['clean:javascript', 'clean:css'], - done); -}); - -// Clean JS -gulp.task('clean:javascript', function() { - return del([ - 'assets/javascript/foundation.js' - ]); -}); - -// Clean CSS -gulp.task('clean:css', function() { - return del([ - 'assets/stylesheets/foundation.css', - 'assets/stylesheets/foundation.css.map' - ]); -}); - -// Default gulp task -// Run build task and watch for file changes -gulp.task('default', ['build', 'browser-sync'], function() { - // Log file changes to console - function logFileChange(event) { - var fileName = require('path').relative(__dirname, event.path); - console.log('[' + 'WATCH'.green + '] ' + fileName.magenta + ' was ' + event.type + ', running tasks...'); - } - - // Sass Watch - gulp.watch(['assets/scss/**/*.scss'], ['clean:css', 'sass']) - .on('change', function(event) { - logFileChange(event); - }); - - // JS Watch - gulp.watch(['assets/javascript/custom/**/*.js'], ['clean:javascript', 'javascript', 'lint']) - .on('change', function(event) { - logFileChange(event); - }); -}); diff --git a/header.php b/header.php index e748aa43b..41eb93844 100644 --- a/header.php +++ b/header.php @@ -20,7 +20,6 @@ -