htdocs: add a node.js method for minifying the files.
Run `node make` or `node make minify`. Additionally, you can use `npm run check` or `npm run lint` to check our js and css files for errors with JSHint and csslint.
This commit is contained in:
parent
2204bd89b2
commit
1e56b94311
|
@ -69,3 +69,5 @@ htmlreport/MANIFEST
|
||||||
|
|
||||||
# kdevelop 4.x
|
# kdevelop 4.x
|
||||||
*.kdev4
|
*.kdev4
|
||||||
|
|
||||||
|
htdocs/site/node_modules
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"node" : true,
|
||||||
|
"browser" : false,
|
||||||
|
|
||||||
|
"bitwise": true,
|
||||||
|
"boss": true,
|
||||||
|
"camelcase": true,
|
||||||
|
"curly": true,
|
||||||
|
"eqeqeq": true,
|
||||||
|
"indent": 4,
|
||||||
|
"latedef": true,
|
||||||
|
"multistr": true,
|
||||||
|
"noarg": true,
|
||||||
|
"noempty": true,
|
||||||
|
"plusplus": false,
|
||||||
|
"regexp": true,
|
||||||
|
"strict": false,
|
||||||
|
"trailing": true,
|
||||||
|
"unused": true,
|
||||||
|
"globals": {
|
||||||
|
"cd": true,
|
||||||
|
"cp": true,
|
||||||
|
"target": true,
|
||||||
|
"echo": true,
|
||||||
|
"cat": true,
|
||||||
|
"exec": true,
|
||||||
|
"require": true,
|
||||||
|
"__dirname": true
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
Copyright (C) 2013 MPC-HC Team
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
|
@ -0,0 +1,9 @@
|
||||||
|
Getting started
|
||||||
|
---------------
|
||||||
|
|
||||||
|
* Install [node.js](http://nodejs.org/download/)
|
||||||
|
* Install the node.js dependencies: `npm install`
|
||||||
|
* Run `node make` or `node make minify`
|
||||||
|
|
||||||
|
You can run `npm run check` or `npm run lint` to run [JSHint](https://github.com/jshint/jshint)
|
||||||
|
and [csslint](https://github.com/stubbornella/csslint) for our files.
|
|
@ -1,3 +1,5 @@
|
||||||
|
/*csslint box-sizing: false, ids: false, qualified-headings: false*/
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
/**!
|
||||||
|
* make.js, script to build the website for cppcheck
|
||||||
|
* Released under the terms of MIT license.
|
||||||
|
*
|
||||||
|
* https://github.com/danmar/cppcheck
|
||||||
|
*
|
||||||
|
* Copyright (C) 2013 XhmikosR and Cppcheck team.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
require('shelljs/make');
|
||||||
|
var fs = require('fs'),
|
||||||
|
cleanCSS = require('clean-css'),
|
||||||
|
UglifyJS = require('uglify-js'),
|
||||||
|
ROOT_DIR = __dirname + '/'; // absolute path to project's root
|
||||||
|
|
||||||
|
//
|
||||||
|
// make minify
|
||||||
|
//
|
||||||
|
target.minify = function () {
|
||||||
|
cd(ROOT_DIR);
|
||||||
|
echo();
|
||||||
|
echo("### Minifying css files...");
|
||||||
|
|
||||||
|
// pack.css
|
||||||
|
|
||||||
|
var inCss = cat(['css/all.css',
|
||||||
|
'css/demo.css',
|
||||||
|
'css/normalize.css'
|
||||||
|
]);
|
||||||
|
|
||||||
|
var packCss = cleanCSS.process(inCss, {
|
||||||
|
removeEmpty: true,
|
||||||
|
keepSpecialComments: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
fs.writeFileSync('css/pack.css', packCss, 'utf8');
|
||||||
|
|
||||||
|
echo();
|
||||||
|
echo('### Finished' + ' ' + 'css/pack.css' + '.');
|
||||||
|
|
||||||
|
echo();
|
||||||
|
echo("### Minifying js files...");
|
||||||
|
|
||||||
|
var inJs = cat(['js/github.js',
|
||||||
|
'js/picnet.table.filter.min.js']);
|
||||||
|
|
||||||
|
var minifiedJs = UglifyJS.minify(inJs, {
|
||||||
|
compress: true,
|
||||||
|
fromString: true, // this is needed to pass JS source code instead of filenames
|
||||||
|
mangle: true,
|
||||||
|
warnings: false
|
||||||
|
});
|
||||||
|
|
||||||
|
fs.writeFileSync('js/pack.js', minifiedJs.code, 'utf8');
|
||||||
|
|
||||||
|
echo();
|
||||||
|
echo('### Finished' + ' ' + 'js/pack.js' + '.');
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// make all
|
||||||
|
//
|
||||||
|
target.all = function () {
|
||||||
|
target.minify();
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// make help
|
||||||
|
//
|
||||||
|
target.help = function () {
|
||||||
|
echo("Available targets:");
|
||||||
|
echo(" minify Creates the minified CSS and JS");
|
||||||
|
echo(" help shows this help message");
|
||||||
|
};
|
||||||
|
|
||||||
|
}());
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# install node.js and then run:
|
|
||||||
# npm install -g clean-css
|
|
||||||
# npm install -g uglify-js
|
|
||||||
|
|
||||||
cat css/all.css css/demo.css css/normalize.css | cleancss --s0 -o css/pack.css
|
|
||||||
uglifyjs js/github.js js/picnet.table.filter.min.js -o js/pack.js --compress --mangle
|
|
|
@ -1,11 +0,0 @@
|
||||||
@echo off
|
|
||||||
rem install node.js and then run:
|
|
||||||
rem npm install -g clean-css
|
|
||||||
rem npm install -g uglify-js
|
|
||||||
|
|
||||||
pushd %~dp0
|
|
||||||
|
|
||||||
type css\all.css css\demo.css css\normalize.css | cleancss --s0 -o css\pack.css
|
|
||||||
cmd /c uglifyjs js/github.js js/picnet.table.filter.min.js -o js/pack.js --compress --mangle
|
|
||||||
|
|
||||||
popd
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"name": "cppcheck-web",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"author": "XhmikosR (https://github.com/XhmikosR)",
|
||||||
|
"description": "The dependencies to build cppcheck's website",
|
||||||
|
"homepage": "https://github.com/danmar/cppcheck",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/danmar/cppcheck.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "http://sourceforge.net/apps/trac/cppcheck/wiki"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "make.js",
|
||||||
|
"readmeFilename": "Readme.md",
|
||||||
|
"scripts": {
|
||||||
|
"check": "node run-tests",
|
||||||
|
"lint": "node run-tests"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"clean-css": "~1.0.6",
|
||||||
|
"csslint": "~0.9.10",
|
||||||
|
"jshint": "~2.1.3",
|
||||||
|
"shelljs": "~0.1.4",
|
||||||
|
"uglify-js": "~2.3.6"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "~0.8.0"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
/**!
|
||||||
|
* run-tests.js, script to run csslint and JSHint for our files
|
||||||
|
* Released under the terms of MIT license.
|
||||||
|
*
|
||||||
|
* https://github.com/danmar/cppcheck
|
||||||
|
*
|
||||||
|
* Copyright (C) 2013 XhmikosR and Cppcheck team.
|
||||||
|
*/
|
||||||
|
|
||||||
|
require('shelljs/global');
|
||||||
|
|
||||||
|
cd(__dirname);
|
||||||
|
|
||||||
|
//
|
||||||
|
// JSHint
|
||||||
|
//
|
||||||
|
JSHINT_BIN = './node_modules/jshint/bin/jshint';
|
||||||
|
|
||||||
|
if (!test('-f', JSHINT_BIN)) {
|
||||||
|
echo('JSHint not found. Run `npm install` in the root dir first.');
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (exec('node' +' ' + JSHINT_BIN +' ' + 'make.js run-tests.js').code !== 0) {
|
||||||
|
echo('*** JSHint failed! (return code != 0)');
|
||||||
|
echo();
|
||||||
|
} else {
|
||||||
|
echo('JSHint completed successfully');
|
||||||
|
echo();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// csslint
|
||||||
|
//
|
||||||
|
CSSLINT_BIN = './node_modules/csslint/cli.js';
|
||||||
|
|
||||||
|
if (!test('-f', CSSLINT_BIN)) {
|
||||||
|
echo('csslint not found. Run `npm install` in the root dir first.');
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (exec('node' +' ' + CSSLINT_BIN +' ' + 'css/all.css').code !== 0) {
|
||||||
|
echo('*** csslint failed! (return code != 0)');
|
||||||
|
echo();
|
||||||
|
}
|
Loading…
Reference in New Issue