Compile NanoUI into two files

This commit is contained in:
Bjorn Neergaard
2015-12-17 10:15:11 -06:00
parent 15681a727e
commit b00f19e8ee
9 changed files with 137 additions and 144 deletions
+2 -5
View File
@@ -175,11 +175,8 @@ You can set verify to TRUE if you want send() to sleep until the client has the
/datum/asset/simple/nanoui
assets = list(
"nanoui.lib.js" = 'nano/assets/nanoui.lib.js',
"nanoui.main.js" = 'nano/assets/nanoui.main.js',
"nanoui.templates.js" = 'nano/assets/nanoui.templates.js',
"nanoui.lib.css" = 'nano/assets/nanoui.lib.css',
"nanoui.main.css" = 'nano/assets/nanoui.main.css',
"nanoui.js" = 'nano/assets/nanoui.js',
"nanoui.css" = 'nano/assets/nanoui.css',
"fontawesome-webfont.eot" = 'nano/assets/fontawesome-webfont.eot',
"fontawesome-webfont.woff2" = 'nano/assets/fontawesome-webfont.woff2'
)
+2 -5
View File
@@ -201,14 +201,11 @@
/datum/nanoui/proc/get_html()
// Generate <script> and <link> tags.
var/script_html = {"
<script type='text/javascript' src='nanoui.lib.js'></script>
<script type='text/javascript' src='nanoui.main.js'></script>
<script type='text/javascript' src='nanoui.templates.js'></script>
<script type='text/javascript' src='nanoui.js'></script>
"}
var/stylesheet_html = {"
<link rel="stylesheet" type='text/css' href='http://css-spinners.com/css/spinner/hexdots.css'>
<link rel='stylesheet' type='text/css' href='nanoui.lib.css' />
<link rel='stylesheet' type='text/css' href='nanoui.main.css' />
<link rel='stylesheet' type='text/css' href='nanoui.css' />
"}
// Generate JSON.
+128 -127
View File
@@ -1,127 +1,128 @@
### Settings ###
util = require("gulp-util")
s =
min: util.env.min
colorblind: util.env.colorblind
# Project Paths
input =
fonts: "**/*.{eot,woff2}"
images: "images"
scripts: "scripts"
styles: "styles"
templates: "templates"
output =
dir: "assets"
scripts:
lib: "nanoui.lib.js"
main: "nanoui.main.js"
styles:
lib: "nanoui.lib.css"
prefix: "nanoui."
templates: "nanoui.templates.js"
# doT Settings
dotOpts =
evaluate: /\{\{([\s\S]+?)\}\}/g,
interpolate: /\{\{=([\s\S]+?)\}\}/g,
encode: /\{\{!([\s\S]+?)\}\}/g,
use: /\{\{#([\s\S]+?)\}\}/g,
define: /\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,
conditional: /\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,
iterate: /\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,
varname: "data, config, helper",
strip: true,
append: true,
selfcontained: true
### Pacakages ###
bower = require "main-bower-files"
child_process = require "child_process"
del = require "del"
gulp = require "gulp"
merge = require "merge-stream"
### Plugins ###
g = require("gulp-load-plugins")({replaceString: /^gulp(-|\.)|-/g})
p =
autoprefixer: require "autoprefixer"
colorblind: require "postcss-colorblind"
fontweights: require "postcss-font-weights"
gradient: require "postcss-filter-gradient"
opacity: require "postcss-opacity"
plsfilters: require "pleeease-filters"
rgba: require "postcss-color-rgba-fallback"
### Helpers ###
glob = (path) ->
"#{path}/*"
### Tasks ###
gulp.task "default", ["fonts", "scripts", "styles", "templates"]
gulp.task "clean", ->
del glob output.dir
gulp.task "watch", ->
gulp.watch [glob input.images], ["reload"]
gulp.watch [glob input.scripts], ["reload"]
gulp.watch [glob input.styles], ["reload"]
gulp.watch [glob input.templates], ["reload"]
gulp.task "reload", ["default"], ->
child_process.exec "reload.bat", (err, stdout, stderr) ->
return console.log err if err
gulp.task "fonts", ["clean"], ->
gulp.src bower input.fonts
.pipe gulp.dest output.dir
gulp.task "scripts", ["clean"], ->
lib = gulp.src bower "**/*.js"
.pipe g.concat(output.scripts.lib)
.pipe g.if(s.min, g.uglify(), g.jsbeautifier())
.pipe gulp.dest output.dir
main = gulp.src glob input.scripts
.pipe g.coffee()
.pipe g.concat(output.scripts.main)
.pipe g.if(s.min, g.uglify(), g.jsbeautifier())
.pipe gulp.dest output.dir
merge lib, main
gulp.task "styles", ["clean"], ->
lib = gulp.src bower "**/*.css"
.pipe g.replace("../fonts/", "")
.pipe g.concat(output.styles.lib)
.pipe g.if(s.min, g.cssnano({discardComments: {removeAll: true}}), g.csscomb())
.pipe gulp.dest output.dir
main = gulp.src glob input.styles
.pipe g.filter(["*.less", "!_*.less"])
.pipe g.less({paths: [input.images]})
.pipe g.postcss([
p.autoprefixer({browsers: ["last 2 versions", "ie >= 8"]}),
p.plsfilters({oldIE: true}),
p.rgba({oldie: true}),
p.opacity,
p.gradient,
p.fontweights
])
.pipe g.if(s.colorblind, g.postcss([p.colorblind]))
.pipe g.if(s.min, g.cssnano({discardComments: {removeAll: true}}), g.csscomb())
.pipe g.rename({prefix: output.styles.prefix})
.pipe gulp.dest output.dir
merge lib, main
gulp.task "templates", ["clean"], ->
gulp.src glob input.templates
.pipe g.dotprecompiler({dictionary: "TMPL", templateSettings: dotOpts})
.pipe g.concat(output.templates)
.pipe g.header("window.TMPL = {};\n")
.pipe g.if(s.min, g.uglify(), g.jsbeautifier())
.pipe gulp.dest output.dir
### Settings ###
util = require("gulp-util")
f =
colorblind: util.env.colorblind || util.env.c
min: util.env.min || util.env.m
sourcemaps: util.env.sourcemaps || util.env.s
# Project Paths
input =
fonts: "**/*.{eot,woff2}"
images: "images"
scripts: "scripts"
styles: "styles"
templates: "templates"
output =
dir: "assets"
js: "nanoui.js"
css: "nanoui.css"
# doT Settings
dotOpts =
evaluate: /\{\{([\s\S]+?)\}\}/g,
interpolate: /\{\{=([\s\S]+?)\}\}/g,
encode: /\{\{!([\s\S]+?)\}\}/g,
use: /\{\{#([\s\S]+?)\}\}/g,
define: /\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,
conditional: /\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,
iterate: /\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,
varname: "data, config, helper",
strip: true,
append: true,
selfcontained: true
### Pacakages ###
bower = require "main-bower-files"
child_process = require "child_process"
del = require "del"
gulp = require "gulp"
merge = require "merge2"
### Plugins ###
g = require("gulp-load-plugins")({replaceString: /^gulp(-|\.)|-/g})
p =
autoprefixer: require "autoprefixer"
colorblind: require "postcss-colorblind"
fontweights: require "postcss-font-weights"
gradient: require "postcss-filter-gradient"
opacity: require "postcss-opacity"
plsfilters: require "pleeease-filters"
rgba: require "postcss-color-rgba-fallback"
### Helpers ###
glob = (path) ->
"#{path}/*"
### Tasks ###
gulp.task "default", ["fonts", "js", "css"]
gulp.task "clean", ->
del glob output.dir
gulp.task "watch", ->
gulp.watch [glob input.images], ["reload"]
gulp.watch [glob input.scripts], ["reload"]
gulp.watch [glob input.styles], ["reload"]
gulp.watch [glob input.templates], ["reload"]
gulp.task "reload", ["default"], ->
child_process.exec "reload.bat", (err, stdout, stderr) ->
return console.log err if err
gulp.task "fonts", ["clean"], ->
gulp.src bower input.fonts
.pipe gulp.dest output.dir
gulp.task "js", ["clean"], ->
lib = gulp.src bower "**/*.js"
.pipe g.if(f.sourcemaps, g.sourcemaps.init())
main = gulp.src glob input.scripts
.pipe g.if(f.sourcemaps, g.sourcemaps.init())
.pipe g.coffee()
templates = gulp.src glob input.templates
.pipe g.dotprecompiler({dictionary: "TMPL", templateSettings: dotOpts})
.pipe g.concat("templates")
.pipe g.header("window.TMPL = {};\n")
combined = merge lib, main, templates
combined
.pipe g.concat(output.js)
.pipe g.if(f.min, g.uglify(), g.jsbeautifier())
.pipe g.if(f.sourcemaps, g.sourcemaps.write())
.pipe gulp.dest output.dir
gulp.task "css", ["clean"], ->
lib = gulp.src bower "**/*.css"
.pipe g.if(f.sourcemaps, g.sourcemaps.init())
.pipe g.replace("../fonts/", "")
main = gulp.src glob input.styles
.pipe g.filter(["*.less", "!_*.less"])
.pipe g.if(f.sourcemaps, g.sourcemaps.init())
.pipe g.less({paths: [input.images]})
.pipe g.postcss([
p.autoprefixer({browsers: ["last 2 versions", "ie >= 8"]}),
p.plsfilters({oldIE: true}),
p.rgba({oldie: true}),
p.opacity,
p.gradient,
p.fontweights
])
.pipe g.if(f.colorblind, g.postcss([p.colorblind]))
combined = merge lib, main
combined
.pipe g.if(f.min, g.cssnano({discardComments: {removeAll: true}}), g.csscomb())
.pipe g.concat(output.css)
.pipe g.if(f.sourcemaps, g.sourcemaps.write())
.pipe gulp.dest output.dir
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -19,11 +19,12 @@
"gulp-postcss": "^6.0.1",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.5.4",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^1.5.1",
"gulp-util": "^3.0.7",
"hexa-color-regex": "^1.0.0",
"main-bower-files": "^2.9.0",
"merge-stream": "^1.0.0",
"merge2": "^0.3.6",
"pleeease-filters": "^2.0.0",
"postcss-color-rgba-fallback": "git+https://github.com/postcss/postcss-color-rgba-fallback",
"postcss-colorblind": "^0.4.0",