84 lines
2.3 KiB
JavaScript
84 lines
2.3 KiB
JavaScript
var cacheBust = require('gulp-cache-bust');
|
|
var foundationDocs = require('foundation-docs');
|
|
var gulp = require('gulp');
|
|
var newer = require('gulp-newer');
|
|
var panini = require('panini');
|
|
var supercollider = require('supercollider');
|
|
|
|
var PANINI_CONFIG = {
|
|
root: 'docs/pages/',
|
|
layouts: 'docs/layout/',
|
|
partials: ['docs/partials/', 'node_modules/foundation-docs/templates/partials/'],
|
|
helpers: foundationDocs.handlebarsHelpers,
|
|
}
|
|
|
|
var SEARCH_SORT_ORDER = ['page', 'component', 'sass variable', 'sass mixin', 'sass function', 'js class', 'js function', 'js plugin option', 'js event'];
|
|
|
|
var SEARCH_PAGE_TYPES = {
|
|
'library': function(item) {
|
|
return !!(item.library);
|
|
}
|
|
}
|
|
|
|
supercollider
|
|
.config({
|
|
template: foundationDocs.componentTemplate,
|
|
marked: foundationDocs.marked,
|
|
handlebars: foundationDocs.handlebars,
|
|
keepFm: true,
|
|
quiet: false,
|
|
pageRoot: 'docs/pages',
|
|
data: {
|
|
repoName: 'foundation-sites',
|
|
editBranch: 'develop'
|
|
}
|
|
})
|
|
.searchConfig({
|
|
extra: 'docs/search.yml',
|
|
sort: SEARCH_SORT_ORDER,
|
|
pageTypes: SEARCH_PAGE_TYPES
|
|
})
|
|
.adapter('sass')
|
|
.adapter('js');
|
|
|
|
// Build the search entries
|
|
gulp.task('docs:search', function (done) {
|
|
supercollider.buildSearch('_build/data/search.json', done);
|
|
});
|
|
|
|
// Assembles the modified layout, pages, and partials in the docs folder
|
|
gulp.task('docs:pages', function() {
|
|
return gulp.src('docs/pages/**/*')
|
|
.pipe(newer({
|
|
dest: '_build',
|
|
ext: '.html'
|
|
}))
|
|
.pipe(supercollider.init())
|
|
.pipe(panini(PANINI_CONFIG))
|
|
.pipe(cacheBust({
|
|
basePath: '_build/'
|
|
}))
|
|
.pipe(gulp.dest('_build'));
|
|
});
|
|
|
|
// Assembles layout, pages, and partials in the docs folder, even if not modified
|
|
gulp.task('docs:pages:all', function() {
|
|
panini.refresh();
|
|
|
|
return gulp.src('docs/pages/**/*')
|
|
.pipe(supercollider.init())
|
|
.pipe(panini(PANINI_CONFIG))
|
|
.pipe(cacheBust({
|
|
basePath: '_build/'
|
|
}))
|
|
.pipe(gulp.dest('_build'));
|
|
});
|
|
|
|
gulp.task('docs:debug', gulp.series('docs:all', function(done) {
|
|
var output = JSON.stringify(supercollider.tree, null, ' ');
|
|
require('fs').writeFile('./_debug.json', output, done);
|
|
}));
|
|
|
|
gulp.task('docs', gulp.series('docs:pages', 'docs:search'));
|
|
gulp.task('docs:all', gulp.series('docs:pages:all', 'docs:search'));
|