Created
June 19, 2015 08:30
-
-
Save mathiasleroy/b797bacd837868119701 to your computer and use it in GitHub Desktop.
static-website-makefile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
######################################################################### | |
# STATIC WEBSITE MAKEFILE | |
######################################################################### | |
# npm install html-minifier -g | |
# npm install uglifycss -g | |
# npm install uglify-js -g | |
project = YOURPROJECTNAME | |
v = 0.0.1 | |
outdir = ../$(project)/ | |
htmlfiles = ../$(project).html | |
cssfiles = ../css/font-awesome.min.css\ | |
../css/bootstrap.min.css\ | |
../css/normalize.css\ | |
../css/dc.css | |
jsfiles = ../js/vendor/jquery-1.11.2.min.js\ | |
../js/bootstrap.min.js\ | |
../js/d3.min.js\ | |
../js/crossfilter.min.js\ | |
../js/dc.min.js\ | |
../js/pace.min.js | |
datafiles = ../data/be-provinces-unk.geo.json\ | |
../data/public_cases.csv\ | |
../data/public_cases_sample.csv | |
fontfiles = ../fonts/fontawesome-webfont.woff\ | |
../fonts/fontawesome-webfont.ttf | |
directories = $(outdir)css\ | |
$(outdir)data\ | |
$(outdir)fonts\ | |
$(outdir)js | |
#------------------------------------------------------------------------ | |
########################## AUTOMATIC FROM HERE ########################## | |
#------------------------------------------------------------------------ | |
######################################################################### | |
# DIR | |
######################################################################### | |
dir: | |
mkdir -p $(outdir) | |
######################################################################### | |
# HTML | |
######################################################################### | |
$(outdir)index.html: $(htmlfiles) | |
html-minifier \ | |
--output $@ \ | |
--remove-comments \ | |
--collapse-whitespace \ | |
--remove-style-link-type-attributes \ | |
--remove-script-type-attributes \ | |
--minify-css \ | |
--minify-js \ | |
--minify-urls \ | |
$^ | |
html: $(outdir)index.html | |
######################################################################### | |
# CSS | |
######################################################################### | |
# $(outdir)$(project).css: $(cssfiles) | |
# cat $^ > $@ | |
$(outdir)css/$(project).min.css: $(cssfiles) | |
mkdir -p $(outdir)css | |
uglifycss $^ > $@ | |
css: $(outdir)css/$(project).min.css | |
######################################################################### | |
# JS | |
######################################################################### | |
# $(outdir)$(project).js: | |
# cat js/vendor/jquery-1.11.2.min.js > $@ | |
# echo >> $@ # new line | |
# cat js/bootstrap.min.js >> $@ | |
# echo >> $@ | |
# cat js/crossfilter.min.js >> $@ | |
# echo >> $@ | |
# cat js/d3.min.js >> $@ | |
# echo >> $@ | |
# cat js/dc.min.js >> $@ | |
# echo >> $@ | |
# cat js/pace.min.js >> $@ | |
$(outdir)js/$(project).min.js: $(jsfiles) | |
mkdir -p $(outdir)js | |
uglifyjs $^ --compress --mangle --output $@ | |
js: $(outdir)js/$(project).min.js | |
######################################################################### | |
# DATA | |
######################################################################### | |
data: $(datafiles) | |
mkdir -p $(outdir)data | |
cp $^ $(outdir)data/ | |
######################################################################### | |
# FONTS | |
######################################################################### | |
fonts: $(fontfiles) | |
mkdir -p $(outdir)fonts | |
cp $^ $(outdir)fonts/ | |
######################################################################### | |
# GLOBAL | |
######################################################################### | |
$(project): dir html css fonts data js | |
all: $(project) | |
clean: | |
rm $(outdir)index.html -f | |
rm -rf $(directories) | |
.PHONY: clean all $(project) css html js fonts data dir | |
.DEFAULT_GOAL := $(project) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment