-
Notifications
You must be signed in to change notification settings - Fork 141
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fa93422
commit 70a2573
Showing
221 changed files
with
45,821 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# editorconfig.org | ||
|
||
root = true | ||
|
||
[*] | ||
indent_style = space | ||
indent_size = 2 | ||
end_of_line = lf | ||
charset = utf-8 | ||
trim_trailing_whitespace = true | ||
insert_final_newline = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Ignore compiled docs | ||
_gh_pages | ||
_site | ||
|
||
# Numerous always-ignore extensions | ||
*.diff | ||
*.err | ||
*.orig | ||
*.log | ||
*.rej | ||
*.swo | ||
*.swp | ||
*.zip | ||
*.vi | ||
*~ | ||
*.sass-cache | ||
*.ruby-version | ||
|
||
# OS or Editor folders | ||
.DS_Store | ||
._* | ||
Thumbs.db | ||
.cache | ||
.project | ||
.settings | ||
.tmproj | ||
*.esproj | ||
nbproject | ||
*.sublime-project | ||
*.sublime-workspace | ||
|
||
# Komodo | ||
*.komodoproject | ||
.komodotools | ||
|
||
# grunt-html-validation | ||
validation-staus.json | ||
|
||
# Folders to ignore | ||
.hg | ||
.svn | ||
.CVS | ||
.idea | ||
node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
language: node_js | ||
node_js: | ||
- 0.8 | ||
before_script: | ||
- gem install jekyll | ||
- npm install -g grunt-cli | ||
env: | ||
global: | ||
- secure: Besg41eyU+2mfxrywQ4ydOShMdc34ImaO0S0ENP+aCOBuyNBIgP59wy5tBMmyai2/8eInYeVps4Td96mWInMMxzTe3Bar7eTLG5tWVKRSr/wc4NBPZ/ppoPAmCEsz9Y+VptRH9/FO8n7hsL9EFZ+xBKbG+C0SccGoyBDpA5j7/w= | ||
- secure: Ptiv7phCImFP3ALIz+sMQzrZg8k7C1gLZbFBhWxjnQr3g06wIfX3Ls5y9OHvxid+lOZZjISui3wzBVgpVHqwHUYf96+r0mo6/mJ+F4ffUmShZANVaIMD/JRTnXhUQJbvntGLvxn1EYWPdNM+2IHJrMipnjHxU9tkgAnlel4Zdew= | ||
- TWBS_HAVE_OWN_BROWSERSTACK_KEY: "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
getbootstrap.com |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Contributing to Bootstrap | ||
|
||
Looking to contribute something to Bootstrap? **Here's how you can help.** | ||
|
||
|
||
|
||
## Reporting issues | ||
|
||
We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems that we can fix within the Bootstrap core. Please read the following guidelines before opening any issue. | ||
|
||
1. **Search for existing issues.** We get a lot of duplicate issues, and you'd help us out a lot by first checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a fix available. | ||
2. **Create an isolated and reproducible test case.** Be sure the problem exists in Bootstrap's code with a [reduced test case](http://css-tricks.com/reduced-test-cases/) that should be included in each bug report. | ||
3. **Include a live example.** Make use of jsFiddle or jsBin to share your isolated test cases. | ||
4. **Share as much information as possible.** Include operating system and version, browser and version, version of Bootstrap, customized or vanilla build, etc. where appropriate. Also include steps to reproduce the bug. | ||
|
||
|
||
|
||
## Key branches | ||
|
||
- `master` is the latest, deployed version. | ||
- `gh-pages` is the hosted docs (not to be used for pull requests). | ||
- `*-wip` is the official work in progress branch for the next release. | ||
|
||
|
||
|
||
## Pull requests | ||
|
||
- Try to submit pull requests against the latest `*-wip` branch for easier merging | ||
- CSS changes must be done in .less files first, never just the compiled files | ||
- If modifying the .less files, always recompile and commit the compiled files bootstrap.css and bootstrap.min.css | ||
- Try not to pollute your pull request with unintended changes--keep them simple and small | ||
- Try to share which browsers your code has been tested in before submitting a pull request | ||
|
||
|
||
|
||
## Coding standards | ||
|
||
### HTML | ||
|
||
- Two spaces for indentation, never tabs | ||
- Double quotes only, never single quotes | ||
- Always use proper indentation | ||
- Use tags and elements appropriate for an HTML5 doctype (e.g., self-closing tags) | ||
|
||
### CSS | ||
|
||
- Adhere to the [Recess CSS property order](http://markdotto.com/2011/11/29/css-property-order/) | ||
- Multiple-line approach (one property and value per line) | ||
- Always a space after a property's colon (.e.g, `display: block;` and not `display:block;`) | ||
- End all lines with a semi-colon | ||
- For multiple, comma-separated selectors, place each selector on its own line | ||
- Attribute selectors, like `input[type="text"]` should always wrap the attribute's value in double quotes, for consistency and safety (see this [blog post on unquoted attribute values](http://mathiasbynens.be/notes/unquoted-attribute-values) that can lead to XSS attacks). | ||
|
||
### JS | ||
|
||
- No semicolons | ||
- Comma first | ||
- 2 spaces (no tabs) | ||
- strict mode | ||
- "Attractive" | ||
|
||
|
||
|
||
## License | ||
|
||
By contributing your code, you agree to license your contribution under the terms of the APLv2: https://github.com/twbs/bootstrap/blob/master/LICENSE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,217 @@ | ||
/* jshint node: true */ | ||
|
||
module.exports = function(grunt) { | ||
"use strict"; | ||
|
||
// Project configuration. | ||
grunt.initConfig({ | ||
|
||
// Metadata. | ||
pkg: grunt.file.readJSON('package.json'), | ||
banner: '/**\n' + | ||
'* <%= pkg.name %>.js v<%= pkg.version %> by @fat and @mdo\n' + | ||
'* Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + | ||
'* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' + | ||
'*/\n', | ||
jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n', | ||
|
||
// Task configuration. | ||
clean: { | ||
dist: ['dist'] | ||
}, | ||
|
||
jshint: { | ||
options: { | ||
jshintrc: 'js/.jshintrc' | ||
}, | ||
gruntfile: { | ||
src: 'Gruntfile.js' | ||
}, | ||
src: { | ||
src: ['js/*.js'] | ||
}, | ||
test: { | ||
src: ['js/tests/unit/*.js'] | ||
} | ||
}, | ||
|
||
concat: { | ||
options: { | ||
banner: '<%= banner %><%= jqueryCheck %>', | ||
stripBanners: false | ||
}, | ||
bootstrap: { | ||
src: [ | ||
'js/transition.js', | ||
'js/alert.js', | ||
'js/button.js', | ||
'js/carousel.js', | ||
'js/collapse.js', | ||
'js/dropdown.js', | ||
'js/modal.js', | ||
'js/tooltip.js', | ||
'js/popover.js', | ||
'js/scrollspy.js', | ||
'js/tab.js', | ||
'js/affix.js' | ||
], | ||
dest: 'dist/js/<%= pkg.name %>.js' | ||
} | ||
}, | ||
|
||
uglify: { | ||
options: { | ||
banner: '<%= banner %>' | ||
}, | ||
bootstrap: { | ||
src: ['<%= concat.bootstrap.dest %>'], | ||
dest: 'dist/js/<%= pkg.name %>.min.js' | ||
} | ||
}, | ||
|
||
recess: { | ||
options: { | ||
compile: true | ||
}, | ||
bootstrap: { | ||
src: ['less/bootstrap.less'], | ||
dest: 'dist/css/<%= pkg.name %>.css' | ||
}, | ||
min: { | ||
options: { | ||
compress: true | ||
}, | ||
src: ['less/bootstrap.less'], | ||
dest: 'dist/css/<%= pkg.name %>.min.css' | ||
}, | ||
theme: { | ||
src: ['less/theme.less'], | ||
dest: 'dist/css/<%= pkg.name %>-theme.css' | ||
}, | ||
theme_min: { | ||
options: { | ||
compress: true | ||
}, | ||
src: ['less/theme.less'], | ||
dest: 'dist/css/<%= pkg.name %>-theme.min.css' | ||
} | ||
}, | ||
|
||
copy: { | ||
fonts: { | ||
expand: true, | ||
src: ["fonts/*"], | ||
dest: 'dist/' | ||
} | ||
}, | ||
|
||
qunit: { | ||
options: { | ||
inject: 'js/tests/unit/phantom.js' | ||
}, | ||
files: ['js/tests/*.html'] | ||
}, | ||
|
||
connect: { | ||
server: { | ||
options: { | ||
port: 3000, | ||
base: '.' | ||
} | ||
} | ||
}, | ||
|
||
jekyll: { | ||
docs: {} | ||
}, | ||
|
||
validation: { | ||
options: { | ||
reset: true | ||
}, | ||
files: { | ||
src: ["_gh_pages/**/*.html"] | ||
} | ||
}, | ||
|
||
watch: { | ||
src: { | ||
files: '<%= jshint.src.src %>', | ||
tasks: ['jshint:src', 'qunit'] | ||
}, | ||
test: { | ||
files: '<%= jshint.test.src %>', | ||
tasks: ['jshint:test', 'qunit'] | ||
}, | ||
recess: { | ||
files: 'less/*.less', | ||
tasks: ['recess'] | ||
} | ||
} | ||
}); | ||
|
||
|
||
// These plugins provide necessary tasks. | ||
grunt.loadNpmTasks('grunt-contrib-clean'); | ||
grunt.loadNpmTasks('grunt-contrib-concat'); | ||
grunt.loadNpmTasks('grunt-contrib-connect'); | ||
grunt.loadNpmTasks('grunt-contrib-copy'); | ||
grunt.loadNpmTasks('grunt-contrib-jshint'); | ||
grunt.loadNpmTasks('grunt-contrib-qunit'); | ||
grunt.loadNpmTasks('grunt-contrib-uglify'); | ||
grunt.loadNpmTasks('grunt-contrib-watch'); | ||
grunt.loadNpmTasks('grunt-html-validation'); | ||
grunt.loadNpmTasks('grunt-jekyll'); | ||
grunt.loadNpmTasks('grunt-recess'); | ||
grunt.loadNpmTasks('browserstack-runner'); | ||
|
||
// Docs HTML validation task | ||
grunt.registerTask('validate-html', ['jekyll', 'validation']); | ||
|
||
// Test task. | ||
var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html']; | ||
// Only run BrowserStack tests under Travis | ||
if (process.env.TRAVIS) { | ||
// Only run BrowserStack tests if this is a mainline commit in twbs/bootstrap, or you have your own BrowserStack key | ||
if ((process.env.TRAVIS_REPO_SLUG === 'twbs/bootstrap' && process.env.TRAVIS_PULL_REQUEST === 'false') || process.env.TWBS_HAVE_OWN_BROWSERSTACK_KEY) { | ||
testSubtasks.push('browserstack_runner'); | ||
} | ||
} | ||
grunt.registerTask('test', testSubtasks); | ||
|
||
// JS distribution task. | ||
grunt.registerTask('dist-js', ['concat', 'uglify']); | ||
|
||
// CSS distribution task. | ||
grunt.registerTask('dist-css', ['recess']); | ||
|
||
// Fonts distribution task. | ||
grunt.registerTask('dist-fonts', ['copy']); | ||
|
||
// Full distribution task. | ||
grunt.registerTask('dist', ['clean', 'dist-css', 'dist-fonts', 'dist-js']); | ||
|
||
// Default task. | ||
grunt.registerTask('default', ['test', 'dist', 'build-customizer']); | ||
|
||
// task for building customizer | ||
grunt.registerTask('build-customizer', 'Add scripts/less files to customizer.', function () { | ||
var fs = require('fs') | ||
|
||
function getFiles(type) { | ||
var files = {} | ||
fs.readdirSync(type) | ||
.filter(function (path) { | ||
return type == 'fonts' ? true : new RegExp('\\.' + type + '$').test(path) | ||
}) | ||
.forEach(function (path) { | ||
return files[path] = fs.readFileSync(type + '/' + path, 'utf8') | ||
}) | ||
return 'var __' + type + ' = ' + JSON.stringify(files) + '\n' | ||
} | ||
|
||
var customize = fs.readFileSync('customize.html', 'utf-8') | ||
var files = getFiles('js') + getFiles('less') + getFiles('fonts') | ||
fs.writeFileSync('assets/js/raw-files.js', files) | ||
}); | ||
}; |
Oops, something went wrong.