0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-02-21 18:54:30 +01:00

Use different coding style for Gruntfile

Fixes #12657
This commit is contained in:
Zlatan Vasović 2014-02-08 21:59:17 +01:00 committed by Chris Rebert
parent 9afead3fb0
commit ba4206b644
7 changed files with 46 additions and 28 deletions

View File

@ -178,7 +178,7 @@ license your work under the terms of the [MIT License](LICENSE.md).
### JS ### JS
- No semicolons - No semicolons (in client-side JS)
- 2 spaces (no tabs) - 2 spaces (no tabs)
- strict mode - strict mode
- "Attractive" - "Attractive"

View File

@ -45,7 +45,7 @@ module.exports = function (grunt) {
}, },
grunt: { grunt: {
options: { options: {
node: true jshintrc: 'grunt/.jshintrc'
}, },
src: ['Gruntfile.js', 'grunt/*.js'] src: ['Gruntfile.js', 'grunt/*.js']
}, },

16
grunt/.jshintrc Normal file
View File

@ -0,0 +1,16 @@
{
"asi": false,
"camelcase": true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 2,
"newcap": true,
"noarg": true,
"nonbsp": true,
"quotmark": "single",
"undef": true,
"strict": true,
"trailing": true,
"node" : true
}

View File

@ -4,29 +4,31 @@
* Copyright 2014 Twitter, Inc. * Copyright 2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
'use strict';
var fs = require('fs') var fs = require('fs');
module.exports = function generateGlyphiconsData() { module.exports = function generateGlyphiconsData() {
// Pass encoding, utf8, so `readFileSync` will return a string instead of a // Pass encoding, utf8, so `readFileSync` will return a string instead of a
// buffer // buffer
var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8') var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8');
var glpyhiconsLines = glyphiconsFile.split('\n') var glpyhiconsLines = glyphiconsFile.split('\n');
// Use any line that starts with ".glyphicon-" and capture the class name // Use any line that starts with ".glyphicon-" and capture the class name
var iconClassName = /^\.(glyphicon-[^\s]+)/ var iconClassName = /^\.(glyphicon-[^\s]+)/;
var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.** \n' + var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.** \n' +
'# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n'; '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n';
for (var i = 0, len = glpyhiconsLines.length; i < len; i++) { for (var i = 0, len = glpyhiconsLines.length; i < len; i++) {
var match = glpyhiconsLines[i].match(iconClassName) var match = glpyhiconsLines[i].match(iconClassName);
if (match != null) { if (match !== null) {
glyphiconsData += '- ' + match[1] + '\n' glyphiconsData += '- ' + match[1] + '\n';
} }
} }
// Create the `_data` directory if it doesn't already exist // Create the `_data` directory if it doesn't already exist
if (!fs.existsSync('docs/_data')) fs.mkdirSync('docs/_data') if (!fs.existsSync('docs/_data')) {
fs.mkdirSync('docs/_data');
}
fs.writeFileSync('docs/_data/glyphicons.yml', glyphiconsData) fs.writeFileSync('docs/_data/glyphicons.yml', glyphiconsData);
} };

View File

@ -4,6 +4,7 @@
* Copyright 2014 Twitter, Inc. * Copyright 2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
'use strict';
var markdown = require('markdown').markdown; var markdown = require('markdown').markdown;

View File

@ -1,32 +1,31 @@
/* global btoa: true */ /* global btoa: true */
/*! /*!
* Bootstrap Grunt task for generating raw-files.min.js for the Customizer * Bootstrap Grunt task for generating raw-files.min.js for the Customizer
* http://getbootstrap.com * http://getbootstrap.com
* Copyright 2014 Twitter, Inc. * Copyright 2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
'use strict';
var btoa = require('btoa') var btoa = require('btoa');
var fs = require('fs') var fs = require('fs');
function getFiles(type) { function getFiles(type) {
var files = {} var files = {};
fs.readdirSync(type) fs.readdirSync(type)
.filter(function (path) { .filter(function (path) {
return type == 'fonts' ? true : new RegExp('\\.' + type + '$').test(path) return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path);
}) })
.forEach(function (path) { .forEach(function (path) {
var fullPath = type + '/' + path var fullPath = type + '/' + path;
return files[path] = (type == 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8')) files[path] = (type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8'));
}) });
return 'var __' + type + ' = ' + JSON.stringify(files) + '\n' return 'var __' + type + ' = ' + JSON.stringify(files) + '\n';
} }
module.exports = function generateRawFilesJs(banner) { module.exports = function generateRawFilesJs(banner) {
if (!banner) { if (!banner) {
banner = '' banner = '';
} }
var files = banner + getFiles('js') + getFiles('less') + getFiles('fonts') var files = banner + getFiles('js') + getFiles('less') + getFiles('fonts');
fs.writeFileSync('docs/assets/js/raw-files.min.js', files) fs.writeFileSync('docs/assets/js/raw-files.min.js', files);
} };

View File

@ -8,7 +8,7 @@
This Grunt task updates the npm-shrinkwrap.canonical.json file that's used as the key for Bootstrap's npm packages cache. This Grunt task updates the npm-shrinkwrap.canonical.json file that's used as the key for Bootstrap's npm packages cache.
This task should be run and the updated file should be committed whenever Bootstrap's dependencies change. This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
*/ */
'use strict';
var canonicallyJsonStringify = require('canonical-json'); var canonicallyJsonStringify = require('canonical-json');
var NON_CANONICAL_FILE = 'npm-shrinkwrap.json'; var NON_CANONICAL_FILE = 'npm-shrinkwrap.json';
var DEST_FILE = 'test-infra/npm-shrinkwrap.canonical.json'; var DEST_FILE = 'test-infra/npm-shrinkwrap.canonical.json';