Initial commit: Photography portfolio based on rampatra/photography
- Jekyll-based photography portfolio template - Added Brain.md (project knowledge base) and Skill.md (skill commands) - Configured remote to Kroonk/Photography.git - Added .claude/ to .gitignore Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
83
gulpfile.mjs
Normal file
83
gulpfile.mjs
Normal file
@@ -0,0 +1,83 @@
|
||||
import gulp from 'gulp';
|
||||
import imageResize from 'gulp-image-resize';
|
||||
import dartSass from 'sass';
|
||||
import gulpSass from 'gulp-sass';
|
||||
import uglify from 'gulp-uglify';
|
||||
import rename from 'gulp-rename';
|
||||
import filter from 'gulp-filter';
|
||||
import path from 'path';
|
||||
import del from 'del';
|
||||
|
||||
const sass = gulpSass(dartSass);
|
||||
const cssSourceGlob = './assets/sass/**/*.scss';
|
||||
const cssOutputDir = './assets/css';
|
||||
const generatedCssFiles = [
|
||||
`${cssOutputDir}/custom.min.css`,
|
||||
`${cssOutputDir}/main.min.css`,
|
||||
`${cssOutputDir}/noscript.min.css`
|
||||
];
|
||||
|
||||
gulp.task('delete', function () {
|
||||
return del(['images/*.*']);
|
||||
});
|
||||
|
||||
gulp.task('resize-images', function () {
|
||||
return gulp.src('images/*.*')
|
||||
.pipe(imageResize({
|
||||
width: 1024,
|
||||
imageMagick: true
|
||||
}))
|
||||
.pipe(gulp.dest('images/fulls'))
|
||||
.pipe(imageResize({
|
||||
width: 512,
|
||||
imageMagick: true
|
||||
}))
|
||||
.pipe(gulp.dest('images/thumbs'));
|
||||
});
|
||||
|
||||
// clear previously generated css
|
||||
gulp.task('clean-css', function () {
|
||||
return del(generatedCssFiles);
|
||||
});
|
||||
|
||||
// compile scss to css
|
||||
gulp.task('sass', gulp.series('clean-css', function compileSass() {
|
||||
return gulp.src(cssSourceGlob) // Target all .scss files
|
||||
.pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError))
|
||||
.pipe(rename(function (path) {
|
||||
path.basename += '.min'; // Append .min to the output filename
|
||||
}))
|
||||
.pipe(gulp.dest(cssOutputDir)); // Output to the CSS directory
|
||||
}));
|
||||
|
||||
// watch changes in scss files and run sass task
|
||||
gulp.task('sass:watch', function () {
|
||||
gulp.watch('./assets/sass/**/*.scss', gulp.series('sass'));
|
||||
});
|
||||
|
||||
// minify js
|
||||
gulp.task('minify-js', function () {
|
||||
return gulp.src('./assets/js/**/*.js')
|
||||
.pipe(filter(function (file) {
|
||||
const filePath = file.path;
|
||||
const basename = path.basename(filePath, '.js');
|
||||
|
||||
// Skip files that are already minified
|
||||
return !basename.endsWith('.min');
|
||||
}))
|
||||
.pipe(uglify())
|
||||
.pipe(rename(function (path) {
|
||||
path.basename += '.min';
|
||||
path.extname = '.js';
|
||||
}))
|
||||
.pipe(gulp.dest('./assets/js'));
|
||||
});
|
||||
|
||||
// build task
|
||||
gulp.task('build', gulp.series('sass', 'minify-js'));
|
||||
|
||||
// resize images
|
||||
gulp.task('resize', gulp.series('delete', 'resize-images'));
|
||||
|
||||
// default task
|
||||
gulp.task('default', gulp.series('build', 'resize'));
|
||||
Reference in New Issue
Block a user