mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 03:32:21 +08:00
chore(): begin adding ionic components to mono-repo.
This commit is contained in:
96
packages/ionic-angular/scripts/docs/gulp-tasks.js
Normal file
96
packages/ionic-angular/scripts/docs/gulp-tasks.js
Normal file
@ -0,0 +1,96 @@
|
||||
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));
|
||||
}));
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user