From b048ea545f06621e42d2f55afcc0ff819b5805ba Mon Sep 17 00:00:00 2001 From: Ross Allen Date: Wed, 18 Dec 2013 20:15:23 -0800 Subject: [PATCH] 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 --- Gruntfile.js | 29 +- _data/glyphicons.yml | 204 +++++++++++ components.html | 806 +------------------------------------------ 3 files changed, 238 insertions(+), 801 deletions(-) create mode 100644 _data/glyphicons.yml diff --git a/Gruntfile.js b/Gruntfile.js index d2b371ed79..04ff10a109 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -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') diff --git a/_data/glyphicons.yml b/_data/glyphicons.yml new file mode 100644 index 0000000000..a894f8bf65 --- /dev/null +++ b/_data/glyphicons.yml @@ -0,0 +1,204 @@ +# Generated on Wed Dec 18 2013 20:14:37 GMT-0800 (PST) +# **Don't edit this directly!** +# Look at the 'build-glyphicons-data' task in Gruntfile.js + +- glyphicon-asterisk +- glyphicon-plus +- glyphicon-euro +- glyphicon-minus +- glyphicon-cloud +- glyphicon-envelope +- glyphicon-pencil +- glyphicon-glass +- glyphicon-music +- glyphicon-search +- glyphicon-heart +- glyphicon-star +- glyphicon-star-empty +- glyphicon-user +- glyphicon-film +- glyphicon-th-large +- glyphicon-th +- glyphicon-th-list +- glyphicon-ok +- glyphicon-remove +- glyphicon-zoom-in +- glyphicon-zoom-out +- glyphicon-off +- glyphicon-signal +- glyphicon-cog +- glyphicon-trash +- glyphicon-home +- glyphicon-file +- glyphicon-time +- glyphicon-road +- glyphicon-download-alt +- glyphicon-download +- glyphicon-upload +- glyphicon-inbox +- glyphicon-play-circle +- glyphicon-repeat +- glyphicon-refresh +- glyphicon-list-alt +- glyphicon-lock +- glyphicon-flag +- glyphicon-headphones +- glyphicon-volume-off +- glyphicon-volume-down +- glyphicon-volume-up +- glyphicon-qrcode +- glyphicon-barcode +- glyphicon-tag +- glyphicon-tags +- glyphicon-book +- glyphicon-bookmark +- glyphicon-print +- glyphicon-camera +- glyphicon-font +- glyphicon-bold +- glyphicon-italic +- glyphicon-text-height +- glyphicon-text-width +- glyphicon-align-left +- glyphicon-align-center +- glyphicon-align-right +- glyphicon-align-justify +- glyphicon-list +- glyphicon-indent-left +- glyphicon-indent-right +- glyphicon-facetime-video +- glyphicon-picture +- glyphicon-map-marker +- glyphicon-adjust +- glyphicon-tint +- glyphicon-edit +- glyphicon-share +- glyphicon-check +- glyphicon-move +- glyphicon-step-backward +- glyphicon-fast-backward +- glyphicon-backward +- glyphicon-play +- glyphicon-pause +- glyphicon-stop +- glyphicon-forward +- glyphicon-fast-forward +- glyphicon-step-forward +- glyphicon-eject +- glyphicon-chevron-left +- glyphicon-chevron-right +- glyphicon-plus-sign +- glyphicon-minus-sign +- glyphicon-remove-sign +- glyphicon-ok-sign +- glyphicon-question-sign +- glyphicon-info-sign +- glyphicon-screenshot +- glyphicon-remove-circle +- glyphicon-ok-circle +- glyphicon-ban-circle +- glyphicon-arrow-left +- glyphicon-arrow-right +- glyphicon-arrow-up +- glyphicon-arrow-down +- glyphicon-share-alt +- glyphicon-resize-full +- glyphicon-resize-small +- glyphicon-exclamation-sign +- glyphicon-gift +- glyphicon-leaf +- glyphicon-fire +- glyphicon-eye-open +- glyphicon-eye-close +- glyphicon-warning-sign +- glyphicon-plane +- glyphicon-calendar +- glyphicon-random +- glyphicon-comment +- glyphicon-magnet +- glyphicon-chevron-up +- glyphicon-chevron-down +- glyphicon-retweet +- glyphicon-shopping-cart +- glyphicon-folder-close +- glyphicon-folder-open +- glyphicon-resize-vertical +- glyphicon-resize-horizontal +- glyphicon-hdd +- glyphicon-bullhorn +- glyphicon-bell +- glyphicon-certificate +- glyphicon-thumbs-up +- glyphicon-thumbs-down +- glyphicon-hand-right +- glyphicon-hand-left +- glyphicon-hand-up +- glyphicon-hand-down +- glyphicon-circle-arrow-right +- glyphicon-circle-arrow-left +- glyphicon-circle-arrow-up +- glyphicon-circle-arrow-down +- glyphicon-globe +- glyphicon-wrench +- glyphicon-tasks +- glyphicon-filter +- glyphicon-briefcase +- glyphicon-fullscreen +- glyphicon-dashboard +- glyphicon-paperclip +- glyphicon-heart-empty +- glyphicon-link +- glyphicon-phone +- glyphicon-pushpin +- glyphicon-usd +- glyphicon-gbp +- glyphicon-sort +- glyphicon-sort-by-alphabet +- glyphicon-sort-by-alphabet-alt +- glyphicon-sort-by-order +- glyphicon-sort-by-order-alt +- glyphicon-sort-by-attributes +- glyphicon-sort-by-attributes-alt +- glyphicon-unchecked +- glyphicon-expand +- glyphicon-collapse-down +- glyphicon-collapse-up +- glyphicon-log-in +- glyphicon-flash +- glyphicon-log-out +- glyphicon-new-window +- glyphicon-record +- glyphicon-save +- glyphicon-open +- glyphicon-saved +- glyphicon-import +- glyphicon-export +- glyphicon-send +- glyphicon-floppy-disk +- glyphicon-floppy-saved +- glyphicon-floppy-remove +- glyphicon-floppy-save +- glyphicon-floppy-open +- glyphicon-credit-card +- glyphicon-transfer +- glyphicon-cutlery +- glyphicon-header +- glyphicon-compressed +- glyphicon-earphone +- glyphicon-phone-alt +- glyphicon-tower +- glyphicon-stats +- glyphicon-sd-video +- glyphicon-hd-video +- glyphicon-subtitles +- glyphicon-sound-stereo +- glyphicon-sound-dolby +- glyphicon-sound-5-1 +- glyphicon-sound-6-1 +- glyphicon-sound-7-1 +- glyphicon-copyright-mark +- glyphicon-registration-mark +- glyphicon-cloud-download +- glyphicon-cloud-upload +- glyphicon-tree-conifer +- glyphicon-tree-deciduous diff --git a/components.html b/components.html index cdea79edce..b511f46a01 100644 --- a/components.html +++ b/components.html @@ -18,806 +18,12 @@ base_url: "../"

Includes 200 glyphs in font format from the Glyphicon Halflings set. Glyphicons Halflings are normally not available for free, but their creator has made them available for Bootstrap free of cost. As a thank you, we only ask that you to include a link back to Glyphicons whenever possible.