railsstrap 3.2.0.3 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/railsstrap/constants.rb +1 -1
- data/vendor/assets/bower_components/bootstrap/Gruntfile.js +98 -76
- data/vendor/assets/bower_components/bootstrap/README.md +25 -23
- data/vendor/assets/bower_components/bootstrap/bower.json +3 -3
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +26 -11
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -1
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +2 -2
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css +286 -131
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -1
- data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css +2 -2
- data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +1 -1
- data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +340 -178
- data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +3 -2
- data/vendor/assets/bower_components/bootstrap/dist/js/npm.js +13 -0
- data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +1 -1
- data/vendor/assets/bower_components/bootstrap/grunt/bs-commonjs-generator.js +23 -0
- data/vendor/assets/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +7 -5
- data/vendor/assets/bower_components/bootstrap/grunt/sauce_browsers.yml +1 -1
- data/vendor/assets/bower_components/bootstrap/js/affix.js +43 -23
- data/vendor/assets/bower_components/bootstrap/js/alert.js +6 -4
- data/vendor/assets/bower_components/bootstrap/js/button.js +16 -10
- data/vendor/assets/bower_components/bootstrap/js/carousel.js +26 -10
- data/vendor/assets/bower_components/bootstrap/js/collapse.js +69 -28
- data/vendor/assets/bower_components/bootstrap/js/dropdown.js +20 -10
- data/vendor/assets/bower_components/bootstrap/js/modal.js +22 -21
- data/vendor/assets/bower_components/bootstrap/js/popover.js +13 -7
- data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +12 -7
- data/vendor/assets/bower_components/bootstrap/js/tab.js +41 -16
- data/vendor/assets/bower_components/bootstrap/js/tooltip.js +60 -39
- data/vendor/assets/bower_components/bootstrap/js/transition.js +1 -1
- data/vendor/assets/bower_components/bootstrap/less/button-groups.less +16 -9
- data/vendor/assets/bower_components/bootstrap/less/buttons.less +7 -4
- data/vendor/assets/bower_components/bootstrap/less/carousel.less +24 -0
- data/vendor/assets/bower_components/bootstrap/less/code.less +1 -0
- data/vendor/assets/bower_components/bootstrap/less/component-animations.less +5 -2
- data/vendor/assets/bower_components/bootstrap/less/dropdowns.less +3 -5
- data/vendor/assets/bower_components/bootstrap/less/forms.less +44 -25
- data/vendor/assets/bower_components/bootstrap/less/glyphicons.less +2 -1
- data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +4 -4
- data/vendor/assets/bower_components/bootstrap/less/list-group.less +1 -0
- data/vendor/assets/bower_components/bootstrap/less/media.less +27 -36
- data/vendor/assets/bower_components/bootstrap/less/mixins/buttons.less +2 -0
- data/vendor/assets/bower_components/bootstrap/less/mixins/forms.less +5 -1
- data/vendor/assets/bower_components/bootstrap/less/mixins/image.less +0 -1
- data/vendor/assets/bower_components/bootstrap/less/mixins/labels.less +1 -1
- data/vendor/assets/bower_components/bootstrap/less/mixins/vendor-prefixes.less +6 -3
- data/vendor/assets/bower_components/bootstrap/less/modals.less +2 -3
- data/vendor/assets/bower_components/bootstrap/less/navbar.less +29 -25
- data/vendor/assets/bower_components/bootstrap/less/navs.less +3 -1
- data/vendor/assets/bower_components/bootstrap/less/normalize.less +5 -3
- data/vendor/assets/bower_components/bootstrap/less/pager.less +1 -2
- data/vendor/assets/bower_components/bootstrap/less/pagination.less +1 -1
- data/vendor/assets/bower_components/bootstrap/less/panels.less +21 -3
- data/vendor/assets/bower_components/bootstrap/less/popovers.less +5 -4
- data/vendor/assets/bower_components/bootstrap/less/print.less +102 -96
- data/vendor/assets/bower_components/bootstrap/less/progress-bars.less +1 -19
- data/vendor/assets/bower_components/bootstrap/less/responsive-embed.less +2 -1
- data/vendor/assets/bower_components/bootstrap/less/scaffolding.less +1 -1
- data/vendor/assets/bower_components/bootstrap/less/tables.less +11 -10
- data/vendor/assets/bower_components/bootstrap/less/theme.less +12 -10
- data/vendor/assets/bower_components/bootstrap/less/thumbnails.less +1 -1
- data/vendor/assets/bower_components/bootstrap/less/type.less +0 -11
- data/vendor/assets/bower_components/bootstrap/less/utilities.less +0 -1
- data/vendor/assets/bower_components/bootstrap/less/variables.less +29 -19
- data/vendor/assets/bower_components/bootstrap/package.json +20 -19
- metadata +4 -3
- data/vendor/assets/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 576cfff798a3f38bbdcf0268a8177f0d014af88c
|
4
|
+
data.tar.gz: 9d433b38d88e8a48020fa97f0c24d8c04c69134d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b31ade8e0cd02f676c593b7deaf183ae816017a1f28018cf2f5f0615b75d2251fe3e03640d6ad50d4025fd6bd6a90dc1555379674943e4061e36d582b36c208
|
7
|
+
data.tar.gz: 4b9109e82154b84ade8438933212932bcb8bcac474d041331f06e498a071196e04845f46a6dc3a2ca0a3ce73a18125e4082a217acc5d2901c3a6091b99dc473c
|
data/lib/railsstrap/constants.rb
CHANGED
@@ -18,9 +18,15 @@ module.exports = function (grunt) {
|
|
18
18
|
var fs = require('fs');
|
19
19
|
var path = require('path');
|
20
20
|
var npmShrinkwrap = require('npm-shrinkwrap');
|
21
|
-
var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
|
22
21
|
var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
|
22
|
+
var getLessVarsData = function () {
|
23
|
+
var filePath = path.join(__dirname, 'less/variables.less');
|
24
|
+
var fileContent = fs.readFileSync(filePath, { encoding: 'utf8' });
|
25
|
+
var parser = new BsLessdocParser(fileContent);
|
26
|
+
return { sections: parser.parseFile() };
|
27
|
+
};
|
23
28
|
var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
|
29
|
+
var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
|
24
30
|
|
25
31
|
// Project configuration.
|
26
32
|
grunt.initConfig({
|
@@ -32,12 +38,26 @@ module.exports = function (grunt) {
|
|
32
38
|
' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
|
33
39
|
' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' +
|
34
40
|
' */\n',
|
35
|
-
// NOTE: This jqueryCheck code is duplicated in customizer.js;
|
36
|
-
|
41
|
+
// NOTE: This jqueryCheck/jqueryVersionCheck code is duplicated in customizer.js;
|
42
|
+
// if making changes here, be sure to update the other copy too.
|
43
|
+
jqueryCheck: [
|
44
|
+
'if (typeof jQuery === \'undefined\') {',
|
45
|
+
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')',
|
46
|
+
'}\n'
|
47
|
+
].join('\n'),
|
48
|
+
jqueryVersionCheck: [
|
49
|
+
'+function ($) {',
|
50
|
+
' var version = $.fn.jquery.split(\' \')[0].split(\'.\')',
|
51
|
+
' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {',
|
52
|
+
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')',
|
53
|
+
' }',
|
54
|
+
'}(jQuery);\n\n'
|
55
|
+
].join('\n'),
|
37
56
|
|
38
57
|
// Task configuration.
|
39
58
|
clean: {
|
40
|
-
dist:
|
59
|
+
dist: 'dist',
|
60
|
+
docs: 'docs/dist'
|
41
61
|
},
|
42
62
|
|
43
63
|
jshint: {
|
@@ -50,7 +70,7 @@ module.exports = function (grunt) {
|
|
50
70
|
},
|
51
71
|
src: ['Gruntfile.js', 'grunt/*.js']
|
52
72
|
},
|
53
|
-
|
73
|
+
core: {
|
54
74
|
src: 'js/*.js'
|
55
75
|
},
|
56
76
|
test: {
|
@@ -60,7 +80,7 @@ module.exports = function (grunt) {
|
|
60
80
|
src: 'js/tests/unit/*.js'
|
61
81
|
},
|
62
82
|
assets: {
|
63
|
-
src: ['docs/assets/js/
|
83
|
+
src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js']
|
64
84
|
}
|
65
85
|
},
|
66
86
|
|
@@ -71,8 +91,8 @@ module.exports = function (grunt) {
|
|
71
91
|
grunt: {
|
72
92
|
src: '<%= jshint.grunt.src %>'
|
73
93
|
},
|
74
|
-
|
75
|
-
src: '<%= jshint.
|
94
|
+
core: {
|
95
|
+
src: '<%= jshint.core.src %>'
|
76
96
|
},
|
77
97
|
test: {
|
78
98
|
src: '<%= jshint.test.src %>'
|
@@ -87,7 +107,7 @@ module.exports = function (grunt) {
|
|
87
107
|
|
88
108
|
concat: {
|
89
109
|
options: {
|
90
|
-
banner: '<%= banner %>\n<%= jqueryCheck %>',
|
110
|
+
banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>',
|
91
111
|
stripBanners: false
|
92
112
|
},
|
93
113
|
bootstrap: {
|
@@ -113,27 +133,29 @@ module.exports = function (grunt) {
|
|
113
133
|
options: {
|
114
134
|
preserveComments: 'some'
|
115
135
|
},
|
116
|
-
|
136
|
+
core: {
|
117
137
|
src: '<%= concat.bootstrap.dest %>',
|
118
138
|
dest: 'dist/js/<%= pkg.name %>.min.js'
|
119
139
|
},
|
120
140
|
customize: {
|
141
|
+
// NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
|
121
142
|
src: [
|
122
|
-
'docs/assets/js/
|
123
|
-
'docs/assets/js/
|
124
|
-
'docs/assets/js/
|
125
|
-
'docs/assets/js/
|
126
|
-
'docs/assets/js/
|
143
|
+
'docs/assets/js/vendor/less.min.js',
|
144
|
+
'docs/assets/js/vendor/jszip.min.js',
|
145
|
+
'docs/assets/js/vendor/uglify.min.js',
|
146
|
+
'docs/assets/js/vendor/Blob.js',
|
147
|
+
'docs/assets/js/vendor/FileSaver.js',
|
127
148
|
'docs/assets/js/raw-files.min.js',
|
128
|
-
'docs/assets/js/
|
149
|
+
'docs/assets/js/src/customizer.js'
|
129
150
|
],
|
130
151
|
dest: 'docs/assets/js/customize.min.js'
|
131
152
|
},
|
132
153
|
docsJs: {
|
154
|
+
// NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
|
133
155
|
src: [
|
134
|
-
'docs/assets/js/
|
135
|
-
'docs/assets/js/
|
136
|
-
'docs/assets/js/
|
156
|
+
'docs/assets/js/vendor/holder.js',
|
157
|
+
'docs/assets/js/vendor/ZeroClipboard.min.js',
|
158
|
+
'docs/assets/js/src/application.js'
|
137
159
|
],
|
138
160
|
dest: 'docs/assets/js/docs.min.js'
|
139
161
|
}
|
@@ -155,9 +177,8 @@ module.exports = function (grunt) {
|
|
155
177
|
sourceMapURL: '<%= pkg.name %>.css.map',
|
156
178
|
sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map'
|
157
179
|
},
|
158
|
-
|
159
|
-
|
160
|
-
}
|
180
|
+
src: 'less/bootstrap.less',
|
181
|
+
dest: 'dist/css/<%= pkg.name %>.css'
|
161
182
|
},
|
162
183
|
compileTheme: {
|
163
184
|
options: {
|
@@ -167,9 +188,8 @@ module.exports = function (grunt) {
|
|
167
188
|
sourceMapURL: '<%= pkg.name %>-theme.css.map',
|
168
189
|
sourceMapFilename: 'dist/css/<%= pkg.name %>-theme.css.map'
|
169
190
|
},
|
170
|
-
|
171
|
-
|
172
|
-
}
|
191
|
+
src: 'less/theme.less',
|
192
|
+
dest: 'dist/css/<%= pkg.name %>-theme.css'
|
173
193
|
}
|
174
194
|
},
|
175
195
|
|
@@ -199,7 +219,7 @@ module.exports = function (grunt) {
|
|
199
219
|
src: 'dist/css/<%= pkg.name %>-theme.css'
|
200
220
|
},
|
201
221
|
docs: {
|
202
|
-
src: 'docs/assets/css/
|
222
|
+
src: 'docs/assets/css/src/docs.css'
|
203
223
|
},
|
204
224
|
examples: {
|
205
225
|
expand: true,
|
@@ -213,7 +233,7 @@ module.exports = function (grunt) {
|
|
213
233
|
options: {
|
214
234
|
csslintrc: 'less/.csslintrc'
|
215
235
|
},
|
216
|
-
|
236
|
+
dist: [
|
217
237
|
'dist/css/bootstrap.css',
|
218
238
|
'dist/css/bootstrap-theme.css'
|
219
239
|
],
|
@@ -225,7 +245,7 @@ module.exports = function (grunt) {
|
|
225
245
|
ids: false,
|
226
246
|
'overqualified-elements': false
|
227
247
|
},
|
228
|
-
src: 'docs/assets/css/
|
248
|
+
src: 'docs/assets/css/src/docs.css'
|
229
249
|
}
|
230
250
|
},
|
231
251
|
|
@@ -235,16 +255,18 @@ module.exports = function (grunt) {
|
|
235
255
|
keepSpecialComments: '*',
|
236
256
|
noAdvanced: true
|
237
257
|
},
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
258
|
+
minifyCore: {
|
259
|
+
src: 'dist/css/<%= pkg.name %>.css',
|
260
|
+
dest: 'dist/css/<%= pkg.name %>.min.css'
|
261
|
+
},
|
262
|
+
minifyTheme: {
|
263
|
+
src: 'dist/css/<%= pkg.name %>-theme.css',
|
264
|
+
dest: 'dist/css/<%= pkg.name %>-theme.min.css'
|
243
265
|
},
|
244
266
|
docs: {
|
245
267
|
src: [
|
246
|
-
'docs/assets/css/
|
247
|
-
'docs/assets/css/
|
268
|
+
'docs/assets/css/src/docs.css',
|
269
|
+
'docs/assets/css/src/pygments-manni.css'
|
248
270
|
],
|
249
271
|
dest: 'docs/assets/css/docs.min.css'
|
250
272
|
}
|
@@ -277,27 +299,19 @@ module.exports = function (grunt) {
|
|
277
299
|
dest: 'docs/examples/'
|
278
300
|
},
|
279
301
|
docs: {
|
280
|
-
|
281
|
-
|
282
|
-
}
|
302
|
+
src: 'docs/assets/css/src/docs.css',
|
303
|
+
dest: 'docs/assets/css/src/docs.css'
|
283
304
|
}
|
284
305
|
},
|
285
306
|
|
286
307
|
copy: {
|
287
308
|
fonts: {
|
288
|
-
expand: true,
|
289
309
|
src: 'fonts/*',
|
290
310
|
dest: 'dist/'
|
291
311
|
},
|
292
312
|
docs: {
|
293
|
-
|
294
|
-
|
295
|
-
src: [
|
296
|
-
'{css,js}/*.min.*',
|
297
|
-
'css/*.map',
|
298
|
-
'fonts/*'
|
299
|
-
],
|
300
|
-
dest: 'docs/dist'
|
313
|
+
src: 'dist/*/*',
|
314
|
+
dest: 'docs/'
|
301
315
|
}
|
302
316
|
},
|
303
317
|
|
@@ -315,20 +329,17 @@ module.exports = function (grunt) {
|
|
315
329
|
},
|
316
330
|
|
317
331
|
jade: {
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
'docs/_includes/customizer-variables.html': 'docs/_jade/customizer-variables.jade',
|
330
|
-
'docs/_includes/nav/customize.html': 'docs/_jade/customizer-nav.jade'
|
331
|
-
}
|
332
|
+
options: {
|
333
|
+
pretty: true,
|
334
|
+
data: getLessVarsData
|
335
|
+
},
|
336
|
+
customizerVars: {
|
337
|
+
src: 'docs/_jade/customizer-variables.jade',
|
338
|
+
dest: 'docs/_includes/customizer-variables.html'
|
339
|
+
},
|
340
|
+
customizerNav: {
|
341
|
+
src: 'docs/_jade/customizer-nav.jade',
|
342
|
+
dest: 'docs/_includes/nav/customize.html'
|
332
343
|
}
|
333
344
|
},
|
334
345
|
|
@@ -340,7 +351,9 @@ module.exports = function (grunt) {
|
|
340
351
|
reset: true,
|
341
352
|
relaxerror: [
|
342
353
|
'Bad value X-UA-Compatible for attribute http-equiv on element meta.',
|
343
|
-
'Element img is missing required attribute src.'
|
354
|
+
'Element img is missing required attribute src.',
|
355
|
+
'Attribute autocomplete not allowed on element input at this point.',
|
356
|
+
'Attribute autocomplete not allowed on element button at this point.'
|
344
357
|
]
|
345
358
|
},
|
346
359
|
files: {
|
@@ -350,15 +363,15 @@ module.exports = function (grunt) {
|
|
350
363
|
|
351
364
|
watch: {
|
352
365
|
src: {
|
353
|
-
files: '<%= jshint.
|
354
|
-
tasks: ['jshint:src', 'qunit']
|
366
|
+
files: '<%= jshint.core.src %>',
|
367
|
+
tasks: ['jshint:src', 'qunit', 'concat']
|
355
368
|
},
|
356
369
|
test: {
|
357
370
|
files: '<%= jshint.test.src %>',
|
358
371
|
tasks: ['jshint:test', 'qunit']
|
359
372
|
},
|
360
373
|
less: {
|
361
|
-
files: 'less
|
374
|
+
files: 'less/**/*.less',
|
362
375
|
tasks: 'less'
|
363
376
|
}
|
364
377
|
},
|
@@ -412,7 +425,7 @@ module.exports = function (grunt) {
|
|
412
425
|
var testSubtasks = [];
|
413
426
|
// Skip core tests if running a different subset of the test suite
|
414
427
|
if (runSubset('core')) {
|
415
|
-
testSubtasks = testSubtasks.concat(['dist-css', '
|
428
|
+
testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'csslint:dist', 'test-js', 'docs']);
|
416
429
|
}
|
417
430
|
// Skip HTML validation if running a different subset of the test suite
|
418
431
|
if (runSubset('validate-html') &&
|
@@ -430,30 +443,26 @@ module.exports = function (grunt) {
|
|
430
443
|
testSubtasks.push('saucelabs-qunit');
|
431
444
|
}
|
432
445
|
grunt.registerTask('test', testSubtasks);
|
446
|
+
grunt.registerTask('test-js', ['jshint:core', 'jshint:test', 'jshint:grunt', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']);
|
433
447
|
|
434
448
|
// JS distribution task.
|
435
|
-
grunt.registerTask('dist-js', ['concat', 'uglify']);
|
449
|
+
grunt.registerTask('dist-js', ['concat', 'uglify:core', 'commonjs']);
|
436
450
|
|
437
451
|
// CSS distribution task.
|
438
452
|
grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']);
|
439
|
-
grunt.registerTask('dist-css', ['less-compile', 'autoprefixer', 'usebanner', 'csscomb', 'cssmin']);
|
440
|
-
|
441
|
-
// Docs distribution task.
|
442
|
-
grunt.registerTask('dist-docs', 'copy:docs');
|
453
|
+
grunt.registerTask('dist-css', ['less-compile', 'autoprefixer:core', 'autoprefixer:theme', 'usebanner', 'csscomb:dist', 'cssmin:minifyCore', 'cssmin:minifyTheme']);
|
443
454
|
|
444
455
|
// Full distribution task.
|
445
|
-
grunt.registerTask('dist', ['clean', 'dist-css', 'copy:fonts', 'dist-js'
|
456
|
+
grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js']);
|
446
457
|
|
447
458
|
// Default task.
|
448
|
-
grunt.registerTask('default', ['
|
459
|
+
grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']);
|
449
460
|
|
450
461
|
// Version numbering task.
|
451
462
|
// grunt change-version-number --oldver=A.B.C --newver=X.Y.Z
|
452
463
|
// This can be overzealous, so its changes should always be manually reviewed!
|
453
464
|
grunt.registerTask('change-version-number', 'sed');
|
454
465
|
|
455
|
-
grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); });
|
456
|
-
|
457
466
|
// task for building customizer
|
458
467
|
grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']);
|
459
468
|
grunt.registerTask('build-customizer-html', 'jade');
|
@@ -462,6 +471,19 @@ module.exports = function (grunt) {
|
|
462
471
|
generateRawFiles(grunt, banner);
|
463
472
|
});
|
464
473
|
|
474
|
+
grunt.registerTask('commonjs', 'Generate CommonJS entrypoint module in dist dir.', function () {
|
475
|
+
var srcFiles = grunt.config.get('concat.bootstrap.src');
|
476
|
+
var destFilepath = 'dist/js/npm.js';
|
477
|
+
generateCommonJSModule(grunt, srcFiles, destFilepath);
|
478
|
+
});
|
479
|
+
|
480
|
+
// Docs task.
|
481
|
+
grunt.registerTask('docs-css', ['autoprefixer:docs', 'autoprefixer:examples', 'csscomb:docs', 'csscomb:examples', 'cssmin:docs']);
|
482
|
+
grunt.registerTask('lint-docs-css', ['csslint:docs', 'csslint:examples']);
|
483
|
+
grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']);
|
484
|
+
grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']);
|
485
|
+
grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-customizer']);
|
486
|
+
|
465
487
|
// Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json).
|
466
488
|
// This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
|
467
489
|
grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']);
|
@@ -469,7 +491,7 @@ module.exports = function (grunt) {
|
|
469
491
|
var done = this.async();
|
470
492
|
npmShrinkwrap({ dev: true, dirname: __dirname }, function (err) {
|
471
493
|
if (err) {
|
472
|
-
grunt.fail.warn(err)
|
494
|
+
grunt.fail.warn(err);
|
473
495
|
}
|
474
496
|
var dest = 'test-infra/npm-shrinkwrap.json';
|
475
497
|
fs.renameSync('npm-shrinkwrap.json', dest);
|
@@ -1,32 +1,33 @@
|
|
1
1
|
# [Bootstrap](http://getbootstrap.com)
|
2
2
|
[![Bower version](https://badge.fury.io/bo/bootstrap.svg)](http://badge.fury.io/bo/bootstrap)
|
3
3
|
[![NPM version](https://badge.fury.io/js/bootstrap.svg)](http://badge.fury.io/js/bootstrap)
|
4
|
-
[![Build Status](https://secure.travis-ci.org/twbs/bootstrap.svg?branch=master)](
|
4
|
+
[![Build Status](https://secure.travis-ci.org/twbs/bootstrap.svg?branch=master)](https://travis-ci.org/twbs/bootstrap)
|
5
5
|
[![devDependency Status](https://david-dm.org/twbs/bootstrap/dev-status.svg)](https://david-dm.org/twbs/bootstrap#info=devDependencies)
|
6
6
|
[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap)
|
7
7
|
|
8
|
-
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](
|
8
|
+
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thornton](https://twitter.com/fat), and maintained by the [core team](https://github.com/twbs?tab=members) with the massive support and involvement of the community.
|
9
9
|
|
10
10
|
To get started, check out <http://getbootstrap.com>!
|
11
11
|
|
12
12
|
## Table of contents
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
14
|
+
- [Quick start](#quick-start)
|
15
|
+
- [Bugs and feature requests](#bugs-and-feature-requests)
|
16
|
+
- [Documentation](#documentation)
|
17
|
+
- [Contributing](#contributing)
|
18
|
+
- [Community](#community)
|
19
|
+
- [Versioning](#versioning)
|
20
|
+
- [Creators](#creators)
|
21
|
+
- [Copyright and license](#copyright-and-license)
|
22
22
|
|
23
23
|
## Quick start
|
24
24
|
|
25
|
-
|
25
|
+
Four quick start options are available:
|
26
26
|
|
27
|
-
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.
|
27
|
+
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.0.zip).
|
28
28
|
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
|
29
29
|
- Install with [Bower](http://bower.io): `bower install bootstrap`.
|
30
|
+
- Install with [npm](https://www.npmjs.org): `npm install bootstrap`.
|
30
31
|
|
31
32
|
Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.
|
32
33
|
|
@@ -66,10 +67,11 @@ Bootstrap's documentation, included in this repo in the root directory, is built
|
|
66
67
|
|
67
68
|
### Running documentation locally
|
68
69
|
|
69
|
-
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.
|
70
|
-
- **Windows users:** Read [this unofficial guide](
|
71
|
-
2.
|
72
|
-
3.
|
70
|
+
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.3.x).
|
71
|
+
- **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
|
72
|
+
2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`.
|
73
|
+
3. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
|
74
|
+
4. Open <http://localhost:9001> in your browser, and voilà.
|
73
75
|
|
74
76
|
Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).
|
75
77
|
|
@@ -85,7 +87,7 @@ Documentation for v2.3.2 has been made available for the time being at <http://g
|
|
85
87
|
|
86
88
|
Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
|
87
89
|
|
88
|
-
Moreover, if your pull request contains JavaScript patches or features, you must include relevant unit tests. All HTML and CSS should conform to the [Code Guide](
|
90
|
+
Moreover, if your pull request contains JavaScript patches or features, you must include relevant unit tests. All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo).
|
89
91
|
|
90
92
|
Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>.
|
91
93
|
|
@@ -95,9 +97,9 @@ Editor preferences are available in the [editor config](https://github.com/twbs/
|
|
95
97
|
|
96
98
|
Keep track of development and community news.
|
97
99
|
|
98
|
-
- Follow [@twbootstrap on Twitter](
|
100
|
+
- Follow [@twbootstrap on Twitter](https://twitter.com/twbootstrap).
|
99
101
|
- Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com).
|
100
|
-
- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##
|
102
|
+
- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel.
|
101
103
|
- Implementation help may be found at Stack Overflow (tagged [`twitter-bootstrap-3`](http://stackoverflow.com/questions/tagged/twitter-bootstrap-3)).
|
102
104
|
|
103
105
|
|
@@ -112,13 +114,13 @@ For transparency into our release cycle and in striving to maintain backward com
|
|
112
114
|
|
113
115
|
**Mark Otto**
|
114
116
|
|
115
|
-
- <
|
116
|
-
- <
|
117
|
+
- <https://twitter.com/mdo>
|
118
|
+
- <https://github.com/mdo>
|
117
119
|
|
118
120
|
**Jacob Thornton**
|
119
121
|
|
120
|
-
- <
|
121
|
-
- <
|
122
|
+
- <https://twitter.com/fat>
|
123
|
+
- <https://github.com/fat>
|
122
124
|
|
123
125
|
|
124
126
|
|