var changed = require('gulp-changed'), gulp = require('gulp'), hljs = require('highlight.js'), md = require('jstransformer')(require('jstransformer-markdown-it')), md_anchor = require('markdown-it-anchor'), md_footnote = require('markdown-it-footnote'), md_toc = require('markdown-it-table-of-contents'), minifyhtml = require('gulp-minify-html'), minifyjs = require('gulp-minify'), notify = require('gulp-notify'), pug = require('gulp-pug-3'), sass = require('gulp-sass-next'); var config = { jsPath: './resources/js', mdPath: './resources/md', pugPath: './resources/pug', sassPath: './resources/sass', } function css() { return gulp.src(config.sassPath + '/style.scss') .pipe(sass({ outputStyle: 'compressed', includePaths: [ './resources/sass', './node_modules' ] }) .on('error', notify.onError(function (error) { return "Error: " + error.message; })) ) .pipe(gulp.dest('./build/assets/css')); } function html() { var src = config.pugPath + '/finals/**/*.pug', dst = './build'; return gulp.src(src) .pipe(changed(dst, {extension: 'html'})) .pipe(pug({ basedir: config.pugPath + '/include', filters: { markdown: (text, options) => { options = Object.assign({ highlight: (str, lang) => { if (lang && hljs.getLanguage(lang)) { try { return hljs.highlight(str, {language: lang}).value; } catch (__) {} } try { return hljs.highlightAuto(str).value; } catch (__) {} return ''; }, html: true, langPrefix: 'lang-', linkify: true, plugins: [ [md_anchor, { permalink: md_anchor.permalink.ariaHidden({ placement: 'before' }), }], md_footnote, [md_toc, { containerHeaderHtml: '