docs.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. var cacheBust = require('gulp-cache-bust');
  2. var foundationDocs = require('foundation-docs');
  3. var gulp = require('gulp');
  4. var newer = require('gulp-newer');
  5. var panini = require('panini');
  6. var supercollider = require('supercollider');
  7. var PANINI_CONFIG = {
  8. root: 'docs/pages/',
  9. layouts: 'docs/layout/',
  10. partials: ['docs/partials/', 'node_modules/foundation-docs/templates/partials/'],
  11. helpers: foundationDocs.handlebarsHelpers,
  12. }
  13. var SEARCH_SORT_ORDER = ['page', 'component', 'sass variable', 'sass mixin', 'sass function', 'js class', 'js function', 'js plugin option', 'js event'];
  14. var SEARCH_PAGE_TYPES = {
  15. 'library': function(item) {
  16. return !!(item.library);
  17. }
  18. }
  19. supercollider
  20. .config({
  21. template: foundationDocs.componentTemplate,
  22. marked: foundationDocs.marked,
  23. handlebars: foundationDocs.handlebars,
  24. keepFm: true,
  25. quiet: false,
  26. pageRoot: 'docs/pages',
  27. data: {
  28. repoName: 'foundation-sites',
  29. editBranch: 'develop'
  30. }
  31. })
  32. .searchConfig({
  33. extra: 'docs/search.yml',
  34. sort: SEARCH_SORT_ORDER,
  35. pageTypes: SEARCH_PAGE_TYPES
  36. })
  37. .adapter('sass')
  38. .adapter('js');
  39. // Build the search entries
  40. gulp.task('docs:search', function (done) {
  41. supercollider.buildSearch('_build/data/search.json', done);
  42. });
  43. // Assembles the modified layout, pages, and partials in the docs folder
  44. gulp.task('docs:pages', function() {
  45. return gulp.src('docs/pages/**/*')
  46. .pipe(newer({
  47. dest: '_build',
  48. ext: '.html'
  49. }))
  50. .pipe(supercollider.init())
  51. .pipe(panini(PANINI_CONFIG))
  52. .pipe(cacheBust({
  53. basePath: '_build/'
  54. }))
  55. .pipe(gulp.dest('_build'));
  56. });
  57. // Assembles layout, pages, and partials in the docs folder, even if not modified
  58. gulp.task('docs:pages:all', function() {
  59. panini.refresh();
  60. return gulp.src('docs/pages/**/*')
  61. .pipe(supercollider.init())
  62. .pipe(panini(PANINI_CONFIG))
  63. .pipe(cacheBust({
  64. basePath: '_build/'
  65. }))
  66. .pipe(gulp.dest('_build'));
  67. });
  68. gulp.task('docs:debug', gulp.series('docs:all', function(done) {
  69. var output = JSON.stringify(supercollider.tree, null, ' ');
  70. require('fs').writeFile('./_debug.json', output, done);
  71. }));
  72. gulp.task('docs', gulp.series('docs:pages', 'docs:search'));
  73. gulp.task('docs:all', gulp.series('docs:pages:all', 'docs:search'));