const gulp = require('gulp'); const sourcemaps = require('gulp-sourcemaps'); const source = require('vinyl-source-stream'); const buffer = require('vinyl-buffer'); const browserify = require('browserify'); const watchify = require('watchify'); const babelify = require('babelify'); const pathmod = require('pathmodify'); const babel = require('gulp-babel'); const uglify = require('gulp-uglify'); const gutil = require('gulp-util'); const zip = require('gulp-zip'); const fs = require('fs'); const path = require('path'); const es = require('event-stream'); const Promise = require('bluebird'); function slugify(str) { str = str.replace(/^\s+|\s+$/g, ''); // trim str = str.toLowerCase(); // remove accents, swap ñ for n, etc var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;"; var to = "aaaaeeeeiiiioooouuuunc------"; for (var i=0, l=from.length ; i Promise.reduce( subdirs, (carry, dir) => fs.readdirAsync('src/markdown/' + dir) .then(files => Promise.reduce( files, (carry, f) => fs.readFileAsync('src/markdown/' + dir + '/' + f) .then(buf => buf.toString()) .then(content => { const basename = path.basename(f, '.md'); const re = /(\d+)\. (.*)/; const matches = basename.match(re); const title = ! matches ? basename : parseInt(matches[1], 10) + '. ' + matches[2]; return carry.concat({ title, path: '/' + slugify(title), content }); }), [] )) .then(items => carry.concat({ title: dir, path: '/' + slugify(dir), items })), [] )) .then(JSON.stringify) .then(markdownJson => fs.writeFileAsync('src/resources/markdown.json', markdownJson)) // }); } // function makeZip(cb) { // return extractThemeVersion() // .then(themeVersion => { // var base = 'dist/' + themeVersion; // var tmp = base + '/reago'; // var rebasedFiles = base + '/**/*'; // es.concat( // gulp.src(archiveFiles) // .pipe(gulp.dest(tmp)), // gulp.src(builtFiles) // .pipe(gulp.dest( tmp + '/js')), // gulp.src(rebasedFiles, { base }) // .pipe(zip(themeName + '-' + themeVersion + '.zip')) // .pipe(gulp.dest('dist')) // ).on('end', cb) // }); // } gulp.task('watch', function() { gulp.watch(['src'], buildClient); // gulp.watch(watchedFiles, extractMarkdown); }); gulp.task('buildClient', function() { return buildClient(); }); gulp.task('extractMarkdown', function() { return extractMarkdown(); }); // gulp.task('makeZip', makeZip); gulp.task('default', gulp.series('buildClient', 'watch'));