2
0
mirror of https://github.com/tenrok/bootstrap.git synced 2026-06-08 17:22:31 +03:00

Write Glyphicons to _data, generate Glyphicons markup

This generates a glyphicons.yml file from the glyphicons.less source,
and then components.html uses that data to generate the Glyphicons docs
by iterating through the data. The _data directory was introduced in
Jekyll 1.3.0, and GitHub Pages is already on [version 1.4.2][1].

Fixes #11862.

[1] https://github.com/github/pages-gem/blob/master/github-pages.gemspec#L16
This commit is contained in:
Ross Allen
2013-12-18 20:15:23 -08:00
parent 4eaa297e68
commit b048ea545f
3 changed files with 238 additions and 801 deletions
+28 -1
View File
@@ -299,13 +299,40 @@ module.exports = function (grunt) {
grunt.registerTask('dist', ['clean', 'dist-css', 'dist-fonts', 'dist-js']);
// Default task.
grunt.registerTask('default', ['test', 'dist', 'build-customizer']);
grunt.registerTask('default', ['test', 'dist', 'build-glyphicons-data', 'build-customizer']);
// Version numbering task.
// grunt change-version-number --oldver=A.B.C --newver=X.Y.Z
// This can be overzealous, so its changes should always be manually reviewed!
grunt.registerTask('change-version-number', ['sed']);
grunt.registerTask('build-glyphicons-data', function () {
var fs = require('fs')
// Pass encoding, utf8, so `readFileSync` will return a string instead of a
// buffer
var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8')
var glpyhiconsLines = glyphiconsFile.split('\n')
// Use any line that starts with ".glyphicon-" and capture the class name
var iconClassName = /^\.(glyphicon-[^\s]+)/
var glyphiconsData = '# Generated on ' + (new Date()) + '\n' +
'# **Don\'t edit this directly!**\n' +
'# Look at the \'build-glyphicons-data\' task in Gruntfile.js\n\n';
for (var i = 0, len = glpyhiconsLines.length; i < len; i++) {
var match = glpyhiconsLines[i].match(iconClassName)
if (match != null) {
glyphiconsData += '- ' + match[1] + '\n'
}
}
// Create the `_data` directory if it doesn't already exist
if (!fs.existsSync('_data')) fs.mkdirSync('_data')
fs.writeFileSync('_data/glyphicons.yml', glyphiconsData)
});
// task for building customizer
grunt.registerTask('build-customizer', 'Add scripts/less files to customizer.', function () {
var fs = require('fs')