UNPKG

alpaca

Version:

Alpaca provides the easiest and fastest way to generate interactive forms for the web and mobile devices. It runs simply as HTML5 or more elaborately using Bootstrap, jQuery Mobile or jQuery UI. Alpaca uses Handlebars to process JSON schema and provide

42 lines (36 loc) 1.4 kB
/*! * Bootstrap Grunt task for Glyphicons data generation * http://getbootstrap.com * Copyright 2014 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ 'use strict'; var fs = require('fs'); module.exports = function generateGlyphiconsData(grunt) { // Pass encoding, utf8, so `readFileSync` will return a string instead of a // buffer var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8'); var glyphiconsLines = glyphiconsFile.split('\n'); // Use any line that starts with ".glyphicon-" and capture the class name var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/; 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'; var glyphiconsYml = 'docs/_data/glyphicons.yml'; for (var i = 0, len = glyphiconsLines.length; i < len; i++) { var match = glyphiconsLines[i].match(iconClassName); if (match !== null) { glyphiconsData += '- ' + match[1] + '\n'; } } // Create the `_data` directory if it doesn't already exist if (!fs.existsSync('docs/_data')) { fs.mkdirSync('docs/_data'); } try { fs.writeFileSync(glyphiconsYml, glyphiconsData); } catch (err) { grunt.fail.warn(err); } grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.'); };