12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- var config = require('../config.json');
- module.exports = function(gulp, flags) {
- gulp.task('docs', [], function() {
- var Dgeni = require('dgeni');
- var semver = require('semver');
- var docVersion = flags['doc-version'] || 'nightly';
- var initialVersionBuild = flags['initial-build'] || false;
- if (docVersion != 'nightly' && !semver.valid(docVersion)) {
- console.log('Usage: gulp docs --doc-version=(nightly|versionName)\nversionName must be a valid semver version.');
- return process.exit(1);
- }
- try {
- var ionicPackage = require('./dgeni-config')(docVersion, initialVersionBuild);
- var dgeni = new Dgeni([ionicPackage]);
- return dgeni.generate();
- } catch (err) {
- console.log(err.stack);
- }
- });
- gulp.task('docs.demos', ['demos', 'src', 'temp.hack'], function(){
- return gulp.src([
- 'dist/**',
- '!dist/e2e',
- '!dist/e2e/**/*',
- '!dist/ionic-site',
- '!dist/ionic-site/**/*',
- '!dist/src',
- '!dist/src/**/*'
- ])
- .pipe(gulp.dest(config.docsDest + '/dist'));
- });
- gulp.task('docs.sass-variables', function() {
- var fs = require('fs');
- var gutil = require('gulp-util');
- var es = require('event-stream');
- var mkdirp = require('mkdirp');
- var path = require('path');
- var Entities = require('html-entities').AllHtmlEntities;
- entities = new Entities();
- var variables = [];
- var outputFile = 'tmp/sass.json';
- // Add the variable to the array, encode the html and remove !default from the value
- function addVariable(variableName, defaultValue, file) {
- defaultValue = entities.encode(defaultValue);
- defaultValue = defaultValue.replace("!default;", "");
- variables.push({
- "name": variableName,
- "defaultValue": defaultValue.trim(),
- "file": path.relative('./', file.path)
- });
- }
- return gulp.src('src/**/*.scss')
- .pipe(es.map(function(file, callback) {
- var contents = file.contents.toString();
- var variableLine, variableName, defaultValue, multiline;
- fs.createReadStream(file.path, {flags: 'r'})
- .pipe(es.split())
- .pipe(es.map(function (line, callback) {
- if (line.charAt(0) == '$') {
- variableLine = line.split(/:(.+)/);
- variableName = variableLine[0];
- defaultValue = variableLine[1];
- // If there is a semicolon then it isn't a multiline value
- multiline = line.indexOf(';') > -1 ? false : true;
- if (!multiline && line.indexOf('!default') > -1)
- addVariable(variableName, defaultValue, file);
- } else if (multiline == true) {
- defaultValue += '\n' + line;
- // If the line has a semicolon then we've found the end of the value
- if (line.indexOf(';') > -1 && line.indexOf('!default') > -1) {
- addVariable(variableName, defaultValue, file);
- multiline = false;
- }
- }
- callback();
- }));
- callback();
- }).on('end', function() {
- gutil.log("Writing to file at", gutil.colors.cyan("/ionic-team/ionic/" + outputFile));
- gutil.log("Place this file in", gutil.colors.cyan("/ionic-team/ionic-site/" + config.v2DocsDir + "/theming/overriding-ionic-variables/"), "in order to update the docs");
- mkdirp.sync('tmp');
- fs.writeFileSync(outputFile, JSON.stringify(variables));
- }));
- });
- }
|