PHP Classes

File: WITheme/WICMS/admin/js/plugins/textEditor/tinymce_4.2.6_dev/tinymce/tools/tasks/skin.js

Recommend this page to a friend!
  Classes of Jules Warner   WICMS   WITheme/WICMS/admin/js/plugins/textEditor/tinymce_4.2.6_dev/tinymce/tools/tasks/skin.js   Download  
File: WITheme/WICMS/admin/js/plugins/textEditor/tinymce_4.2.6_dev/tinymce/tools/tasks/skin.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: WICMS
Database driven content management system with PDO
Author: By
Last change:
Date: 7 years ago
Size: 2,333 bytes
 

Contents

Class file image Download
/** * Task for creating a skin.dev.less files for each of the skin directories located in the path. It will automatically import * the used less files based on the JS components found in the importFrom file. It will look for -x-less JSDoc comments and include * these into the output less file. */ var path = require('path'); var fs = require('fs'); module.exports = function(grunt) { /** * Compiles a less file with imports for all the specified paths. */ function compileLessFile(paths, lessFilePath) { var lessImportCode = ""; paths.forEach(function(filePath) { lessImportCode += '@import "' + filePath + '";\n'; }); fs.writeFileSync(lessFilePath, lessImportCode); } /** * Compiles a less source file from all the specified paths. */ function compileLessSourceFile(paths, lessFilePath) { var lessSourceCode = ""; paths.forEach(function(filePath) { lessSourceCode += "\n" + fs.readFileSync(path.join(path.dirname(lessFilePath), filePath)) + "\n"; }); fs.writeFileSync(lessFilePath, lessSourceCode); } /** * Parses the JS doc comments for -x-less items and include returns them as an array. */ function parseLessDocs(filePath) { var matches, docCommentRegExp = /\/\*\*([\s\S]+?)\*\//g, lessFiles = []; var source = grunt.file.read(filePath).toString(); for (matches = docCommentRegExp.exec(source); matches; matches = docCommentRegExp.exec(source)) { var docComment = matches[1]; var lessMatch = /\@\-x\-less\s+(.+)/g.exec(docComment); if (lessMatch) { lessFiles.push(lessMatch[1]); } } return lessFiles; } grunt.registerMultiTask("skin", "Creates skin less files out of registred UI components.", function() { var options = grunt.config([this.name, this.target]).options; fs.readdirSync(options.path).forEach(function(dirName) { var skinDirPath = path.join(options.path, dirName); if (fs.statSync(skinDirPath).isDirectory()) { var lessFiles = options.prepend || []; if (options.importFrom) { lessFiles = lessFiles.concat(parseLessDocs(options.importFrom)); } if (options.append) { lessFiles = lessFiles.concat(options.append); } compileLessFile(lessFiles, path.join(skinDirPath, options.devLess)); compileLessSourceFile(lessFiles, path.join(skinDirPath, options.srcLess)); } }); }); };