Move the site over to Middleman.
This includes converting the haml templates to erb.
21
.gitignore
vendored
@ -1,3 +1,18 @@
|
||||
.DS_*
|
||||
.sass-cache
|
||||
*.esproj
|
||||
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||
#
|
||||
# If you find yourself ignoring temporary files generated by your text editor
|
||||
# or operating system, you probably want to add a global ignore instead:
|
||||
# git config --global core.excludesfile ~/.gitignore_global
|
||||
|
||||
# Ignore bundler config
|
||||
/.bundle
|
||||
|
||||
# Ignore the build directory
|
||||
/build
|
||||
|
||||
# Ignore cache
|
||||
/.sass-cache
|
||||
/.cache
|
||||
|
||||
# Ignore .DS_store file
|
||||
.DS_Store
|
||||
|
||||
22
Gemfile
@ -1,14 +1,14 @@
|
||||
source "http://rubygems.org"
|
||||
# If you do not have OpenSSL installed, update
|
||||
# the following line to use "http://" instead
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem "rake"
|
||||
gem "middleman", "~>3.3.7"
|
||||
|
||||
gem "stasis"
|
||||
gem "therubyracer"
|
||||
gem "hpricot"
|
||||
gem "haml"
|
||||
gem "sass"
|
||||
gem "redcarpet"
|
||||
gem "coffee-script"
|
||||
# Live-reloading plugin
|
||||
gem "middleman-livereload", "~> 3.1.0"
|
||||
|
||||
# for deployment
|
||||
gem "net-ssh"
|
||||
# For faster file watcher updates on Windows:
|
||||
gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]
|
||||
|
||||
# Windows does not come with time zone data
|
||||
gem "tzinfo-data", platforms: [:mswin, :mingw]
|
||||
|
||||
150
Gemfile.lock
@ -1,43 +1,129 @@
|
||||
GEM
|
||||
remote: http://rubygems.org/
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
coffee-script (2.2.0)
|
||||
activesupport (4.1.9)
|
||||
i18n (~> 0.6, >= 0.6.9)
|
||||
json (~> 1.7, >= 1.7.7)
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.1)
|
||||
tzinfo (~> 1.1)
|
||||
celluloid (0.16.0)
|
||||
timers (~> 4.0.0)
|
||||
chunky_png (1.3.3)
|
||||
coffee-script (2.3.0)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.6.2)
|
||||
directory_watcher (1.4.1)
|
||||
execjs (1.4.0)
|
||||
coffee-script-source (1.9.0)
|
||||
compass (1.0.3)
|
||||
chunky_png (~> 1.2)
|
||||
compass-core (~> 1.0.2)
|
||||
compass-import-once (~> 1.0.5)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
sass (>= 3.3.13, < 3.5)
|
||||
compass-core (1.0.3)
|
||||
multi_json (~> 1.0)
|
||||
haml (4.0.0)
|
||||
sass (>= 3.3.0, < 3.5)
|
||||
compass-import-once (1.0.5)
|
||||
sass (>= 3.2, < 3.5)
|
||||
em-websocket (0.5.1)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
erubis (2.7.0)
|
||||
eventmachine (1.0.7)
|
||||
execjs (2.3.0)
|
||||
ffi (1.9.6)
|
||||
haml (4.0.6)
|
||||
tilt
|
||||
hpricot (0.8.6)
|
||||
libv8 (3.11.8.13)
|
||||
multi_json (1.7.1)
|
||||
net-ssh (2.6.6)
|
||||
rake (10.0.3)
|
||||
redcarpet (2.2.2)
|
||||
ref (1.0.3)
|
||||
sass (3.2.7)
|
||||
slop (3.3.2)
|
||||
stasis (0.2.0)
|
||||
directory_watcher (= 1.4.1)
|
||||
slop (= 3.3.2)
|
||||
tilt (= 1.3.3)
|
||||
therubyracer (0.11.4)
|
||||
libv8 (~> 3.11.8.12)
|
||||
ref
|
||||
tilt (1.3.3)
|
||||
hike (1.2.3)
|
||||
hitimes (1.2.2)
|
||||
hooks (0.4.0)
|
||||
uber (~> 0.0.4)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.6.11)
|
||||
json (1.8.2)
|
||||
kramdown (1.5.0)
|
||||
listen (2.8.5)
|
||||
celluloid (>= 0.15.2)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
middleman (3.3.7)
|
||||
coffee-script (~> 2.2)
|
||||
compass (>= 1.0.0, < 2.0.0)
|
||||
compass-import-once (= 1.0.5)
|
||||
execjs (~> 2.0)
|
||||
haml (>= 4.0.5)
|
||||
kramdown (~> 1.2)
|
||||
middleman-core (= 3.3.7)
|
||||
middleman-sprockets (>= 3.1.2)
|
||||
sass (>= 3.4.0, < 4.0)
|
||||
uglifier (~> 2.5)
|
||||
middleman-core (3.3.7)
|
||||
activesupport (~> 4.1.0)
|
||||
bundler (~> 1.1)
|
||||
erubis
|
||||
hooks (~> 0.3)
|
||||
i18n (~> 0.6.9)
|
||||
listen (>= 2.7.9, < 3.0)
|
||||
padrino-helpers (~> 0.12.3)
|
||||
rack (>= 1.4.5, < 2.0)
|
||||
rack-test (~> 0.6.2)
|
||||
thor (>= 0.15.2, < 2.0)
|
||||
tilt (~> 1.4.1, < 2.0)
|
||||
middleman-livereload (3.1.1)
|
||||
em-websocket (>= 0.2.0)
|
||||
middleman-core (>= 3.0.2)
|
||||
multi_json (~> 1.0)
|
||||
rack-livereload
|
||||
middleman-sprockets (3.4.1)
|
||||
middleman-core (>= 3.3)
|
||||
sprockets (~> 2.12.1)
|
||||
sprockets-helpers (~> 1.1.0)
|
||||
sprockets-sass (~> 1.3.0)
|
||||
minitest (5.5.1)
|
||||
multi_json (1.10.1)
|
||||
padrino-helpers (0.12.4)
|
||||
i18n (~> 0.6, >= 0.6.7)
|
||||
padrino-support (= 0.12.4)
|
||||
tilt (~> 1.4.1)
|
||||
padrino-support (0.12.4)
|
||||
activesupport (>= 3.1)
|
||||
rack (1.6.0)
|
||||
rack-livereload (0.3.15)
|
||||
rack
|
||||
rack-test (0.6.3)
|
||||
rack (>= 1.0)
|
||||
rb-fsevent (0.9.4)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
sass (3.4.11)
|
||||
sprockets (2.12.3)
|
||||
hike (~> 1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.0)
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
sprockets-helpers (1.1.0)
|
||||
sprockets (~> 2.0)
|
||||
sprockets-sass (1.3.1)
|
||||
sprockets (~> 2.0)
|
||||
tilt (~> 1.1)
|
||||
thor (0.19.1)
|
||||
thread_safe (0.3.4)
|
||||
tilt (1.4.1)
|
||||
timers (4.0.1)
|
||||
hitimes
|
||||
tzinfo (1.2.2)
|
||||
thread_safe (~> 0.1)
|
||||
uber (0.0.13)
|
||||
uglifier (2.7.0)
|
||||
execjs (>= 0.3.0)
|
||||
json (>= 1.8.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
coffee-script
|
||||
haml
|
||||
hpricot
|
||||
net-ssh
|
||||
rake
|
||||
redcarpet
|
||||
sass
|
||||
stasis
|
||||
therubyracer
|
||||
middleman (~> 3.3.7)
|
||||
middleman-livereload (~> 3.1.0)
|
||||
tzinfo-data
|
||||
wdm (~> 0.1.0)
|
||||
|
||||
816
build/build.xml
@ -1,816 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<project name="Boilerplate Build" default="build" basedir="../"> <!-- one back since we're in build/ -->
|
||||
|
||||
|
||||
<!-- Load in Ant-Contrib to give us access to some very useful tasks! -->
|
||||
<!-- the .jar file is located in the tools directory -->
|
||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
|
||||
<classpath>
|
||||
<pathelement location="${basedir}/build/tools/ant-contrib-1.0b3.jar"/>
|
||||
</classpath>
|
||||
</taskdef>
|
||||
|
||||
<!-- load shell environment -->
|
||||
<property environment="ENV" />
|
||||
|
||||
<!-- load property files -->
|
||||
<property file="build/config/project.properties"/>
|
||||
<property file="build/config/default.properties"/>
|
||||
|
||||
<!-- merge the stylesheet properties -->
|
||||
<var name="stylesheet-files" value="${file.stylesheets}, ${file.default.stylesheets}"/>
|
||||
|
||||
<!-- merge the pages properties -->
|
||||
<var name="page-files" value="${file.pages}, ${file.pages.default.include}"/>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
*************************************************
|
||||
* BASE TARGETS *
|
||||
*************************************************
|
||||
-->
|
||||
<target name="basics">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-basics.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-basics.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-basics.production"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="text">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-text.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-text.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-text.production"/>
|
||||
</else>
|
||||
</if>
|
||||
<!-- funky order due to jpegtran being a jerk. See comment at top of imagesjpg task -->
|
||||
<antcall target="-jpgcopy"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="buildkit">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-buildkit.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-buildkit.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-buildkit.production"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="build">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-build.dev" />
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-build.test" />
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-build.production" />
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="minify">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-minify.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-minify.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-minify.production"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<!--
|
||||
*************************************************
|
||||
* BUILD TARGETS *
|
||||
*************************************************
|
||||
-->
|
||||
|
||||
<!-- Target: basics -->
|
||||
<target name="-basics.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy"/>
|
||||
|
||||
<target name="-basics.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html"/>
|
||||
|
||||
<target name="-basics.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html"/>
|
||||
|
||||
<!-- Target: text -->
|
||||
<target name="-text.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy"/>
|
||||
|
||||
<target name="-text.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean"/>
|
||||
|
||||
<target name="-text.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean"/>
|
||||
|
||||
<!-- Target: buildkit -->
|
||||
<target name="-buildkit.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-buildkit.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlbuildkit,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-buildkit.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlbuildkit,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<!-- Target: build -->
|
||||
<target name="-build.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-build.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-build.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<!-- Target: minify -->
|
||||
<target name="-minify.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-minify.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlcompress,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-minify.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlcompress,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<!--
|
||||
*************************************************
|
||||
* FUNCTION TARGETS *
|
||||
*************************************************
|
||||
-->
|
||||
<target name="-load-build-info" description="(PRIVATE) Loads the build versioning information">
|
||||
<property file="./${dir.build}/config/${build.version.info}"/>
|
||||
</target>
|
||||
|
||||
<target name="-clean" description="(PRIVATE) Wipe the previous build (Deletes the dir.publish directory">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="Cleaning up previous build directory..."/>
|
||||
<delete dir="./${dir.publish}/"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-rev" description="(PRIVATE) Increase the current build number by one and set build date">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="====================================================================="/>
|
||||
<echo message="Welcome to the HTML5 Boilerplate Build Script!"/>
|
||||
<echo message=" "/>
|
||||
<echo message="We're going to get your site all ship-shape and ready for prime time."/>
|
||||
<echo message=" "/>
|
||||
<echo message="This should take somewhere between 15 seconds and a few minutes,"/>
|
||||
<echo message="mostly depending on how many images we're going to compress."/>
|
||||
<echo message=" "/>
|
||||
<echo message="Feel free to come back or stay here and follow along."/>
|
||||
<echo message="====================================================================="/>
|
||||
<echo message=" "/>
|
||||
<echo message=" "/>
|
||||
|
||||
|
||||
<echo message="Increasing the build number..."/>
|
||||
<propertyfile file="./${dir.build}/config/${build.version.info}" comment="Build Information File - DO NOT CHANGE">
|
||||
<entry key="build.number" type="int" default="0000" operation="+" pattern="0000"/>
|
||||
<entry key="build.date" type="date" value="now" pattern="dd.MM.yyyy HH:mm"/>
|
||||
</propertyfile>
|
||||
<property file="./${dir.build}/config/${build.version.info}"/>
|
||||
<echo>Creating build ${build.number}</echo>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="current-number" depends="-load-build-info" description="(PUBLIC) Returns the current build number">
|
||||
<echo>Current build number: ${build.number}</echo>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-copy" depends="-load-build-info">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="Copying over new files..."/>
|
||||
<!-- combine the 2 exclude properties -->
|
||||
<var name="excluded-files" value="${file.default.exclude}, ${file.exclude}"/>
|
||||
|
||||
<copy todir="./${dir.publish}">
|
||||
<fileset dir="${dir.source}/" excludes="${excluded-files}"/>
|
||||
</copy>
|
||||
|
||||
<echo message="A copy of all non-dev files are now in: ./${dir.publish}."/>
|
||||
</target>
|
||||
|
||||
<target name="-prodcopy" depends="-load-build-info">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="Copying over new files..."/>
|
||||
<!-- combine the 2 exclude properties -->
|
||||
<var name="prod-excluded-files" value="${file.default.exclude}, ${file.jpg.exclude}, ${file.exclude}"/>
|
||||
|
||||
<copy todir="./${dir.publish}">
|
||||
<fileset dir="${dir.source}/" excludes="${prod-excluded-files}"/>
|
||||
</copy>
|
||||
|
||||
<echo message="A copy of all non-dev files are now in: ./${dir.publish}."/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- JAVASCRIPT -->
|
||||
<target name="-js.main.concat" depends="-load-build-info" description="(PRIVATE) Concatenates the JS files in dir.js">
|
||||
<echo message="Concatenating Main JS scripts..."/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.js">
|
||||
<fileset dir="./${dir.publish}/">
|
||||
<include name="**/${dir.js.main}/*.min.js"/>
|
||||
<exclude name="**/${dir.js.mylibs}/*.js"/>
|
||||
<exclude name="**/${dir.js.libs}/*.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.mylibs.concat" depends="-load-build-info" description="(PRIVATE) Concatenates the JS files in dir.js.mylibs">
|
||||
<echo message="Concatenating JS libraries"/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/libs-${build.number}.js">
|
||||
<fileset dir="./${dir.publish}/${dir.js.mylibs}/">
|
||||
<include name="**/*.min.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.scripts.concat" depends="-load-build-info" if="build.concat.scripts">
|
||||
<echo message="Concatenating library file with main script file"/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js">
|
||||
<fileset dir="./${dir.publish}/${dir.js}/">
|
||||
<include name="libs-${build.number}.js"/>
|
||||
<include name="scripts-${build.number}.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
|
||||
<echo message="Concatenating library file with main debug script file"/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.min.js">
|
||||
<fileset dir="./${dir.publish}/${dir.js}/">
|
||||
<include name="libs-${build.number}.js"/>
|
||||
<include name="scripts-${build.number}-debug.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.all.minify" depends="-js.libs.minify" description="(PRIVATE) Minifies the scripts.js files created by js.scripts.concat">
|
||||
<echo message="Minifying concatenated script- and library-file"/>
|
||||
<apply executable="java" parallel="false">
|
||||
<fileset dir="./${dir.publish}/${dir.js}">
|
||||
<include name="**/*.js"/>
|
||||
<exclude name="**/*.min.js"/>
|
||||
<exclude name="**/${dir.js.libs}/*.js"/>
|
||||
</fileset>
|
||||
<arg line="-jar"/>
|
||||
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
|
||||
<srcfile/>
|
||||
<arg line="--line-break"/>
|
||||
<arg line="4000"/>
|
||||
<arg line="-o"/>
|
||||
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js}/*.min.js"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.libs.minify" depends="-load-build-info" description="(PRIVATE) Minifies the helper files in dir.js.libs">
|
||||
<echo message="Minifying helper JS files..."/>
|
||||
|
||||
<apply executable="java" parallel="false">
|
||||
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
|
||||
<arg line="-jar"/>
|
||||
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
|
||||
<srcfile/>
|
||||
<arg line="-o"/>
|
||||
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js.libs}/*-${build.number}.min.js"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.delete" depends="-load-build-info" description="(PRIVATE) Deletes the unoptimized js files from build if set">
|
||||
<if>
|
||||
<equals arg1="${build.delete.unoptimized}" arg2="true"/>
|
||||
<then>
|
||||
<echo message="Deleting unoptimized files..."/>
|
||||
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
|
||||
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.js"/>
|
||||
<!--
|
||||
<delete dir="./${dir.publish}/${dir.js.lib}/"/>
|
||||
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
|
||||
this guy probably COULD be on but I think it's better if we keep him off for now. ^pi
|
||||
<delete includeemptydirs="true">
|
||||
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
|
||||
</delete>
|
||||
-->
|
||||
</then>
|
||||
</if>
|
||||
|
||||
<if>
|
||||
<and>
|
||||
<equals arg1="${build.delete.unoptimized}" arg2="true"/>
|
||||
<equals arg1="${build.concat.scripts}" arg2="true"/>
|
||||
</and>
|
||||
<then>
|
||||
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
|
||||
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
|
||||
</then>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-strip-console.log" description="(PRIVATE)Comments out any console.log statements">
|
||||
<echo message="Commenting out console.log lines"/>
|
||||
|
||||
|
||||
<replaceregexp match="(console.log\(.*\))" replace="/\*\1\*/" flags="g" >
|
||||
<fileset dir="./${dir.publish}/${dir.js}/">
|
||||
<include name="**/*.js"/>
|
||||
<exclude name="**/*.min.js"/>
|
||||
</fileset>
|
||||
</replaceregexp>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- HTML -->
|
||||
<target name="-usemin" depends="-serverconfig" description="(PRIVATE) Replaces references to non-minified scripts">
|
||||
<echo message="Switching to minified js files..."/>
|
||||
|
||||
<!-- switch from a regular jquery to minified -->
|
||||
<replaceregexp match="jquery-(\d|\d(\.\d)+)\.js" replace="jquery-\1.min.js" flags="g">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
<!-- switch any google CDN reference to minified -->
|
||||
<replaceregexp match="(\d|\d(\.\d)+)\/jquery\.js" replace="\1/jquery.min.js" flags="g">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
|
||||
<echo>Kill off those versioning flags: ?v=2</echo>
|
||||
<replaceregexp match='\?v=\d+">' replace='">' flags="g">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
|
||||
<echo>Remove favicon.ico reference if it is pointing to the root</echo>
|
||||
<replaceregexp match="<link rel="shortcut icon" href="/favicon\.ico">" replace="">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
<!-- we maintain the apple-touch-icon reference for Android 2.2 www.ravelrumba.com/blog/android-apple-touch-icon
|
||||
<replace token="<link rel="apple-touch-icon" href="/apple-touch-icon.png">" value="">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replace>
|
||||
-->
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-html" depends="-load-build-info" description="(PRIVATE) Very basic clean up of the HTML">
|
||||
<echo message="Update the HTML to reference our concatenated script file: scripts-${build.number}.min.js"/>
|
||||
<!-- style.css replacement handled as a replacetoken above -->
|
||||
<replaceregexp match="<!-- scripts concatenated [\d\w\s\W]*?!-- end ((scripts)|(concatenated and minified scripts))-->" replace="<script src='${dir.js}/scripts-${build.number}.min.js\'></script>" flags="m">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
<!--[! use comments like this one to avoid having them get minified -->
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-htmlclean">
|
||||
<echo message="Run htmlcompressor on the HTML"/>
|
||||
<echo message=" - maintaining whitespace"/>
|
||||
<echo message=" - removing html comments"/>
|
||||
<echo message=" - compressing inline style/script tag contents"/>
|
||||
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
|
||||
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
|
||||
<arg value="-jar"/>
|
||||
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
|
||||
<arg line="--type html"/>
|
||||
<arg line="--preserve-multi-spaces"/>
|
||||
<arg line="--remove-quotes"/>
|
||||
<arg line="--compress-js"/>
|
||||
<arg line="--compress-css"/>
|
||||
<srcfile/>
|
||||
<arg value="-o"/>
|
||||
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-htmlbuildkit">
|
||||
<echo message="Run htmlcompressor on the HTML"/>
|
||||
<echo message=" - maintaining whitespace"/>
|
||||
<echo message=" - retain html comments"/>
|
||||
<echo message=" - compressing inline style/script tag contents"/>
|
||||
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
|
||||
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
|
||||
<arg value="-jar"/>
|
||||
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
|
||||
<arg value="--preserve-comments"/>
|
||||
<arg line="--preserve-multi-spaces"/>
|
||||
<arg line="--type html"/>
|
||||
<arg line="--compress-js"/>
|
||||
<arg line="--compress-css"/>
|
||||
<srcfile/>
|
||||
<arg value="-o"/>
|
||||
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-htmlcompress">
|
||||
<echo message="Run htmlcompressor on the HTML"/>
|
||||
<echo message=" - removing unnecessary whitespace"/>
|
||||
<echo message=" - removing html comments"/>
|
||||
<echo message=" - compressing inline style/script tag contents"/>
|
||||
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
|
||||
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
|
||||
<arg value="-jar"/>
|
||||
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
|
||||
<arg line="--type html"/>
|
||||
<arg line="--remove-quotes"/>
|
||||
<arg line="--compress-js"/>
|
||||
<arg line="--compress-css"/>
|
||||
<srcfile/>
|
||||
<arg value="-o"/>
|
||||
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-serverconfig" description="(PRIVATE) Upgrades expires headers">
|
||||
<echo message="Upgrading expires header timeouts for js/css to 1yr..."/>
|
||||
<replace file="./${dir.publish}/${file.serverconfig}" token="access plus 2 months" value="access plus 1 year"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- CSS -->
|
||||
<target name="-css" depends="-load-build-info" description="Concatenates and Minifies any stylesheets listed in the file.stylesheets property">
|
||||
<echo message="Concatenating css..."/>
|
||||
|
||||
<concat destfile="./${dir.publish}/${dir.css}/style-${build.number}.css">
|
||||
<filelist dir="./${dir.publish}/${dir.css}" files="${stylesheet-files}"/>
|
||||
</concat>
|
||||
|
||||
<echo message="Minifying css..."/>
|
||||
|
||||
<apply executable="java" parallel="false">
|
||||
<fileset dir="./${dir.publish}/${dir.css}/" includes="style-${build.number}.css"/>
|
||||
<arg line="-jar"/>
|
||||
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
|
||||
<srcfile/>
|
||||
<arg line="-o"/>
|
||||
<mapper type="glob" from="style-${build.number}.css" to="../${dir.publish}/${dir.css}/style-${build.number}.min.css"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
|
||||
<echo message="Updating the HTML with the new css filename"/>
|
||||
|
||||
<replace token="style.css" value="style-${build.number}.min.css" dir="${dir.publish}" includes="${page-files}"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- IMAGES -->
|
||||
<target name="-imagespng" description="(PRIVATE) Optimizes .png images using optipng">
|
||||
<echo message="Optimizing images..."/>
|
||||
<echo message="This part might take a while. But everything else is already done."/>
|
||||
<echo message=" "/>
|
||||
|
||||
|
||||
<echo message="First, we run optipng on the .png files..."/>
|
||||
|
||||
<!-- osfamily=unix is actually true on OS X as well -->
|
||||
<!-- On *nix's and OS X, check for optipng and give a helpful message if it's not installed -->
|
||||
<if>
|
||||
<and>
|
||||
<os family="unix" />
|
||||
<available file="optipng" filepath="${ENV.PATH}" />
|
||||
</and>
|
||||
<then>
|
||||
<apply executable="optipng" osfamily="unix">
|
||||
<arg value="-quiet"/>
|
||||
<arg value="-o7"/>
|
||||
<fileset dir="./${dir.publish}/">
|
||||
<include name="**/*.png"/>
|
||||
</fileset>
|
||||
</apply>
|
||||
</then>
|
||||
<elseif>
|
||||
<os family="unix" />
|
||||
<then>
|
||||
<echo message="*** optipng NOT INSTALLED. SKIPPING OPTIMIZATION OF PNGs." />
|
||||
<echo message="*** Install optipng to enable png optimization." />
|
||||
<echo message="*** For instructions see 'Dependencies' at: http://html5boilerplate.com/docs/#Build-script#dependencies" />
|
||||
</then>
|
||||
</elseif>
|
||||
</if>
|
||||
|
||||
<apply executable="tools/optipng-0.6.4-exe/optipng.exe" osfamily="windows">
|
||||
<arg value="-o7"/>
|
||||
<arg value="-quiet"/>
|
||||
<fileset dir="./${dir.publish}/">
|
||||
<include name="**/*.png"/>
|
||||
</fileset>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-imagesjpg" description="(PRIVATE) Optimizes .jpg images using jpegtan">
|
||||
<echo message="Now, we clean up those jpgs..."/>
|
||||
|
||||
<!-- jpegtran is a little weird in that it assumes a pre-existing file means it's already optimized. -->
|
||||
<!-- why? good question. To combat this, we skipped copying over the ${dir.images}/*.jpg earlier in the -->
|
||||
<!-- copy task. Now, we're using jpegtran to copy the files over while we crunch 'em. -->
|
||||
|
||||
<if>
|
||||
<equals arg1="${images.strip.metadata}" arg2="true"/>
|
||||
<then>
|
||||
<var name="strip-meta-tags" value="none"/>
|
||||
</then>
|
||||
<else>
|
||||
<var name="strip-meta-tags" value="all"/>
|
||||
</else>
|
||||
</if>
|
||||
|
||||
<!-- On *nix's and OS X, check for jpegtran and give a helpful message if it's not installed -->
|
||||
<if>
|
||||
<and>
|
||||
<os family="unix" />
|
||||
<available file="jpegtran" filepath="${ENV.PATH}" />
|
||||
</and>
|
||||
<then>
|
||||
<apply executable="jpegtran" osfamily="unix">
|
||||
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
|
||||
<arg value="-copy"/>
|
||||
<arg value="${strip-meta-tags}"/>
|
||||
<arg value="-optimize"/>
|
||||
<srcfile/>
|
||||
<redirector>
|
||||
<outputmapper type="glob" from="*.jpg" to="./${dir.publish}/${dir.images}/*.jpg"/>
|
||||
</redirector>
|
||||
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
|
||||
</apply>
|
||||
</then>
|
||||
<elseif>
|
||||
<os family="unix" />
|
||||
<then>
|
||||
<echo message="*** jpegtran NOT INSTALLED. SKIPPING OPTIMIZATION OF JPEGs." />
|
||||
<echo message="*** Install jpegtran to enable jpeg optimization." />
|
||||
<echo message="*** For instructions see 'Dependencies' at: http://html5boilerplate.com/docs/#Build-script#dependencies" />
|
||||
</then>
|
||||
</elseif>
|
||||
</if>
|
||||
|
||||
<apply executable="tools/jpegtran.exe" osfamily="windows">
|
||||
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
|
||||
<arg value="-copy"/>
|
||||
<arg value="${strip-meta-tags}"/>
|
||||
<arg value="-optimize"/>
|
||||
<srcfile/>
|
||||
<targetfile/>
|
||||
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
|
||||
<mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-jpgcopy">
|
||||
<echo message="Copying over the unmodified jpegs."/>
|
||||
|
||||
<copy todir="./${dir.publish}/${dir.images}">
|
||||
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
|
||||
</project>
|
||||
@ -1,80 +0,0 @@
|
||||
#
|
||||
# Default Build Settings
|
||||
# you can override these settings on a project basis in a project.properties file
|
||||
# so probably best not to touch these as they could be overwritten in later versions!
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# Directory Paths
|
||||
#
|
||||
dir.source = .
|
||||
dir.publish = publish
|
||||
dir.build = build
|
||||
dir.build.tools = ${dir.build}/tools
|
||||
dir.test = test
|
||||
dir.demo = demo
|
||||
dir.js = js
|
||||
dir.js.main = ${dir.js}
|
||||
# scripts in the lib direcotry will only be minified, not concatenated together
|
||||
dir.js.libs = ${dir.js}/libs
|
||||
dir.js.mylibs = ${dir.js}/mylibs
|
||||
dir.css = css
|
||||
dir.images = img
|
||||
|
||||
|
||||
#
|
||||
# HTML, PHP, etc files to clean and update script/css references
|
||||
#
|
||||
file.pages.default.include = index.html, 404.html
|
||||
|
||||
# You will need to include the property file.pages.include in your project.properties file
|
||||
# and add any extra pages you want to be updated by the scripts in a comma separated lis
|
||||
|
||||
|
||||
# the server configuration you're going with. If you don't use apache,
|
||||
# get a different one here: github.com/paulirish/html5-boilerplate-server-configs
|
||||
|
||||
file.serverconfig = .htaccess
|
||||
|
||||
#
|
||||
# Files not to be copied over by the script to the publish directory
|
||||
#
|
||||
file.default.exclude = .gitignore, .project, .settings, README.markdown, README.md, **/.git/**, **/.svn/**, **/${dir.build}/**, **/${dir.test}/**, **/${dir.demo}/**
|
||||
file.jpg.exclude = ${dir.images}/*.jpg
|
||||
# Declare the file.exclude property in your project.properties file if you want to exclude files / folders you have added
|
||||
# Note: you cannot decalre an empty file.exclude property
|
||||
|
||||
|
||||
#
|
||||
# Default Styleshee
|
||||
#
|
||||
file.default.stylesheets = style.css
|
||||
|
||||
#
|
||||
# Script Optimisation
|
||||
#
|
||||
# If set, concat libraries with main scripts file, producing single script file
|
||||
build.concat.scripts = true
|
||||
# If set, delete minified but unconcatted files.
|
||||
build.delete.unoptimized = true
|
||||
|
||||
|
||||
#
|
||||
# Image Optimisation
|
||||
#
|
||||
images.strip.metadata = true
|
||||
# Seting this to true will strip the metadata from all jpeg files.
|
||||
# YOU SHOULD ONLY DO THIS IF YOU OWN THE COPYRIGHT TO ALL THE IMAGES IN THE BUILD
|
||||
|
||||
|
||||
# Build Info
|
||||
build.version.info = buildinfo.properties
|
||||
build.scripts.dir = ${dir.build}/build-scripts
|
||||
|
||||
# Tools
|
||||
tool.yuicompressor = yuicompressor-2.4.2.jar
|
||||
tool.htmlcompressor = htmlcompressor-0.9.9.jar
|
||||
tool.csscompressor = css-compressor/cli.php
|
||||
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
# project.properties file defines overrides for default.properties
|
||||
|
||||
# Explanation: This file should be created by each user as and when he or she needs to override particular values.
|
||||
# Consequently, it should not be placed under version control.
|
||||
|
||||
|
||||
# Stylesheets
|
||||
#
|
||||
# Note: Stylesheets will be concatenated in the order they are listed in the file.stylesheets property (i.e. the las
|
||||
# file listed will be at the end of the concatenated file), so it probably makes sense to have the main style.css file
|
||||
# as the first entry
|
||||
# Example:
|
||||
# file.stylesheets = style.css, lightbox.css, plugin.css
|
||||
#
|
||||
file.stylesheets =
|
||||
|
||||
|
||||
# Web Pages
|
||||
#
|
||||
# These are the pages (files) that will be served to users (.html, .php, .asp, etc). Files in this property will
|
||||
# be minified / optimised and have any stylesheet or javascript references updated to the minified examples
|
||||
#
|
||||
# The paths need to be relative
|
||||
#
|
||||
# Files can be added in a comma separated form
|
||||
file.pages =
|
||||
|
||||
|
||||
|
||||
# Excluded files and dirs
|
||||
#
|
||||
# Add any files or directories you add to the project and do not want to be copied to the publish directory as a
|
||||
# comma separated lis
|
||||
# These files are ignored in addition to the default ones specified in default.properties.
|
||||
file.exclude =
|
||||
|
||||
|
||||
# Specify an environment to build
|
||||
#
|
||||
# By Default, it builds a production environmen
|
||||
# Set to dev if buidling a development environmen
|
||||
# Set to test if building a test environmen
|
||||
env =
|
||||
|
||||
|
||||
# Directory Structure
|
||||
#
|
||||
# Override any directory paths specific to this projec
|
||||
#
|
||||
# dir.publish
|
||||
# dir.js
|
||||
# dir.js.libs
|
||||
# dir.js.mylibs
|
||||
# dir.css
|
||||
# dir.images
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#Generate a new project from your HTML5 Boilerplate repo clone
|
||||
#Created 2010-10-13, Rick Waldron
|
||||
|
||||
|
||||
##first run
|
||||
# $ cd html5-boilerplate/build
|
||||
# $ chmod +x createproject.sh && ./createproject.sh
|
||||
|
||||
##usage
|
||||
# $ cd html5-boilerplate/build
|
||||
# $ ./createproject.sh
|
||||
|
||||
# find project root (also ensure script is ran from within repo)
|
||||
src=$(git rev-parse --show-toplevel) || exit 1
|
||||
|
||||
# get a name for new project
|
||||
while [[ -z $name ]]
|
||||
do
|
||||
echo "To create a new html5-boilerplate project, enter a new directory name:"
|
||||
read name || exit
|
||||
done
|
||||
dst=$src/../$name
|
||||
|
||||
if [[ -d $dst ]]
|
||||
then
|
||||
echo "$dst exists"
|
||||
else
|
||||
#create new project
|
||||
mkdir "$dst" || exit 1
|
||||
|
||||
#sucess message
|
||||
echo "Created Directory: $dst"
|
||||
|
||||
cd "$src"
|
||||
cp -vr css js img build test *.html *.xml *.txt *.png *.ico .htaccess "$dst"
|
||||
|
||||
#sucess message
|
||||
echo "Created Project: $dst"
|
||||
fi
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
# This is for windows users only.
|
||||
# If you're on a mac or linux, just run `ant build` from this folder in Terminal
|
||||
|
||||
set MYDIR=%~dp0
|
||||
ant build
|
||||
@ -1,21 +0,0 @@
|
||||
|
||||
Copyright (C) 2001-2010 Cosmin Truta.
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the author(s) be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
74
config.rb
Normal file
@ -0,0 +1,74 @@
|
||||
###
|
||||
# Compass
|
||||
###
|
||||
|
||||
# Change Compass configuration
|
||||
# compass_config do |config|
|
||||
# config.output_style = :compact
|
||||
# end
|
||||
|
||||
###
|
||||
# Page options, layouts, aliases and proxies
|
||||
###
|
||||
|
||||
# Per-page layout changes:
|
||||
#
|
||||
# With no layout
|
||||
# page "/path/to/file.html", :layout => false
|
||||
#
|
||||
# With alternative layout
|
||||
# page "/path/to/file.html", :layout => :otherlayout
|
||||
#
|
||||
# A path which all have the same layout
|
||||
# with_layout :admin do
|
||||
# page "/admin/*"
|
||||
# end
|
||||
|
||||
# Proxy pages (http://middlemanapp.com/basics/dynamic-pages/)
|
||||
# proxy "/this-page-has-no-template.html", "/template-file.html", :locals => {
|
||||
# :which_fake_page => "Rendering a fake page with a local variable" }
|
||||
|
||||
###
|
||||
# Helpers
|
||||
###
|
||||
|
||||
# Automatic image dimensions on image_tag helper
|
||||
# activate :automatic_image_sizes
|
||||
|
||||
# Reload the browser automatically whenever files change
|
||||
# configure :development do
|
||||
# activate :livereload
|
||||
# end
|
||||
|
||||
# Methods defined in the helpers block are available in templates
|
||||
# helpers do
|
||||
# def some_helper
|
||||
# "Helping"
|
||||
# end
|
||||
# end
|
||||
|
||||
set :css_dir, 'stylesheets'
|
||||
|
||||
set :js_dir, 'javascripts'
|
||||
|
||||
set :images_dir, 'images'
|
||||
|
||||
set :markdown, auto_ids: false
|
||||
|
||||
# Build-specific configuration
|
||||
configure :build do
|
||||
# For example, change the Compass output style for deployment
|
||||
# activate :minify_css
|
||||
|
||||
# Minify Javascript on build
|
||||
# activate :minify_javascript
|
||||
|
||||
# Enable cache buster
|
||||
# activate :asset_hash
|
||||
|
||||
# Use relative URLs
|
||||
# activate :relative_assets
|
||||
|
||||
# Or use a different image path
|
||||
# set :http_prefix, "/Content/images/"
|
||||
end
|
||||
@ -1,17 +0,0 @@
|
||||
.content.clearfix
|
||||
%div{:role => "main"}
|
||||
.container.clearfix
|
||||
%section#profile
|
||||
= render "sections/profile.markdown"
|
||||
%section#skills
|
||||
= render "sections/skills.markdown"
|
||||
%section#experience
|
||||
= render "sections/experience.markdown"
|
||||
.container.clearfix
|
||||
%section#portfolio
|
||||
= render "sections/portfolio.markdown"
|
||||
%section#interests
|
||||
= render "sections/interests.markdown"
|
||||
%section#contact.vcard
|
||||
= render "sections/contact.html.haml"
|
||||
%div{:role => "complementary"}
|
||||
@ -1,12 +0,0 @@
|
||||
!!! 5
|
||||
/
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
%html.no-js{:lang => "en", :manifest => "default.appcache?v=1"}
|
||||
%head
|
||||
= render "partials/_head.html.haml"
|
||||
%body.clearfix
|
||||
= render "partials/_header.html.haml"
|
||||
= yield
|
||||
= render "partials/_footer.html.haml"
|
||||
@ -1,25 +0,0 @@
|
||||
%meta{:charset => "utf-8"}/
|
||||
%title Dan Barber - Web Developer & Designer
|
||||
%meta{:content => "", :name => "description"}/
|
||||
%meta{:content => "", :name => "author"}/
|
||||
/ http://t.co/dKP3o1e
|
||||
%meta{:content => "True", :name => "HandheldFriendly"}/
|
||||
%meta{:content => "320", :name => "MobileOptimized"}/
|
||||
%meta{:content => "target-densitydpi=160dpi, initial-scale=1", :name => "viewport"}/
|
||||
/
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
/ For all browsers
|
||||
%link{:href => "css/style.css?v=1", :rel => "stylesheet"}/
|
||||
/ JavaScript at bottom except for Modernizr and Typekit
|
||||
%script{:src => "js/libs/modernizr-1.7.min.js"}
|
||||
/ Typekit
|
||||
%script{:src => "http://use.typekit.com/ewi2mjz.js", :type => "text/javascript"}
|
||||
:javascript
|
||||
try{Typekit.load();}catch(e){}
|
||||
%link{:href => "favicon.png", :rel => "shortcut icon"}/
|
||||
/ Microsoft. Delete if not required
|
||||
%meta{:content => "on", "http-equiv" => "cleartype"}/
|
||||
%meta{:content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible"}/
|
||||
/ http://t.co/y1jPVnT
|
||||
%link{:href => "/", :rel => "canonical"}/
|
||||
@ -1,8 +0,0 @@
|
||||
%div#stripe
|
||||
.container
|
||||
%canvas#colours{ :width => 890, :height => 12 }
|
||||
|
||||
%header.clearfix{:role => "banner"}
|
||||
.container
|
||||
%h1#main_heading.icon-logo Dan Barber
|
||||
%h2 Web Designer & Developer
|
||||
114
public/404.html
@ -1,114 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<!--
|
||||
320 and Up boilerplate extension
|
||||
Author: Andy Clarke
|
||||
Version: 0.9b
|
||||
URL: http://stuffandnonsense.co.uk/projects/320andup
|
||||
-->
|
||||
|
||||
<!--[if IEMobile 7 ]><html class="no-js iem7" manifest="default.appcache?v=1"><![endif]-->
|
||||
<!--[if lt IE 7 ]><html class="no-js ie6" lang="en"><![endif]-->
|
||||
<!--[if IE 7 ]><html class="no-js ie7" lang="en"><![endif]-->
|
||||
<!--[if IE 8 ]><html class="no-js ie8" lang="en"><![endif]-->
|
||||
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" manifest="default.appcache?v=1" lang="en"><!--<![endif]-->
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title>320 and up</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta name="HandheldFriendly" content="True">
|
||||
<meta name="MobileOptimized" content="320">
|
||||
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1">
|
||||
|
||||
<!-- For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1"> -->
|
||||
|
||||
<!-- For all browsers -->
|
||||
<link rel="stylesheet" href="css/style.css?v=1">
|
||||
|
||||
<!-- JavaScript at bottom except for Modernizr -->
|
||||
<script src="js/libs/modernizr-1.7.min.js"></script>
|
||||
|
||||
<!-- For iPhone 4 -->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="img/h/apple-touch-icon.png">
|
||||
<!-- For iPad 1-->
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="img/m/apple-touch-icon.png">
|
||||
<!-- For iPhone 3G, iPod Touch and Android -->
|
||||
<link rel="apple-touch-icon-precomposed" href="img/l/apple-touch-icon-precomposed.png">
|
||||
<!-- For Nokia -->
|
||||
<link rel="shortcut icon" href="img/l/apple-touch-icon.png">
|
||||
<!-- For everything else -->
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
|
||||
<!--iOS. Delete if not required -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
<link rel="apple-touch-startup-image" href="img/splash.png">
|
||||
|
||||
<!--Microsoft. Delete if not required -->
|
||||
<meta http-equiv="cleartype" content="on">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link rel="canonical" href="/">
|
||||
</head>
|
||||
|
||||
<body class="clearfix">
|
||||
|
||||
<header role="banner" class="clearfix">
|
||||
<h1>320 and up</h1>
|
||||
</header>
|
||||
|
||||
<div class="content clearfix">
|
||||
|
||||
<h1>Page not found</h1>
|
||||
|
||||
<div role="main">
|
||||
<p>Sorry, but the page you’re looking for doesn’t not exist.</p>
|
||||
<p>It looks like this was either the result of:</p>
|
||||
|
||||
<ul>
|
||||
<li>A mis-typed address</li>
|
||||
<li>An out-of-date link</li>
|
||||
</ul>
|
||||
|
||||
<script>var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2), GOOG_FIXURL_SITE = location.host;</script>
|
||||
<script src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
|
||||
</div>
|
||||
|
||||
<div role="complimentary">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer role="contentinfo" class="clearfix">
|
||||
</footer>
|
||||
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
|
||||
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>
|
||||
<!-- Scripts -->
|
||||
<script src="js/plugins.js"></script>
|
||||
<script src="js/script.js"></script>
|
||||
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,816 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<project name="Boilerplate Build" default="build" basedir="../"> <!-- one back since we're in build/ -->
|
||||
|
||||
|
||||
<!-- Load in Ant-Contrib to give us access to some very useful tasks! -->
|
||||
<!-- the .jar file is located in the tools directory -->
|
||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
|
||||
<classpath>
|
||||
<pathelement location="${basedir}/build/tools/ant-contrib-1.0b3.jar"/>
|
||||
</classpath>
|
||||
</taskdef>
|
||||
|
||||
<!-- load shell environment -->
|
||||
<property environment="ENV" />
|
||||
|
||||
<!-- load property files -->
|
||||
<property file="build/config/project.properties"/>
|
||||
<property file="build/config/default.properties"/>
|
||||
|
||||
<!-- merge the stylesheet properties -->
|
||||
<var name="stylesheet-files" value="${file.stylesheets}, ${file.default.stylesheets}"/>
|
||||
|
||||
<!-- merge the pages properties -->
|
||||
<var name="page-files" value="${file.pages}, ${file.pages.default.include}"/>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
*************************************************
|
||||
* BASE TARGETS *
|
||||
*************************************************
|
||||
-->
|
||||
<target name="basics">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-basics.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-basics.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-basics.production"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="text">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-text.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-text.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-text.production"/>
|
||||
</else>
|
||||
</if>
|
||||
<!-- funky order due to jpegtran being a jerk. See comment at top of imagesjpg task -->
|
||||
<antcall target="-jpgcopy"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="buildkit">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-buildkit.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-buildkit.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-buildkit.production"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="build">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-build.dev" />
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-build.test" />
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-build.production" />
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="minify">
|
||||
<if>
|
||||
<equals arg1="${env}" arg2="dev"/>
|
||||
<then>
|
||||
<!-- Build a dev environment -->
|
||||
<echo message="Building a Development Environment..."/>
|
||||
<antcall target="-minify.dev"/>
|
||||
</then>
|
||||
|
||||
<elseif>
|
||||
<equals arg1="${env}" arg2="test"/>
|
||||
<then>
|
||||
<!-- Build a test environment -->
|
||||
<echo message="Building a Test Environment..."/>
|
||||
<antcall target="-minify.test"/>
|
||||
</then>
|
||||
</elseif>
|
||||
|
||||
<else>
|
||||
<!-- Build a production environment -->
|
||||
<echo message="Building a Production Environment..."/>
|
||||
<antcall target="-minify.production"/>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<!--
|
||||
*************************************************
|
||||
* BUILD TARGETS *
|
||||
*************************************************
|
||||
-->
|
||||
|
||||
<!-- Target: basics -->
|
||||
<target name="-basics.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy"/>
|
||||
|
||||
<target name="-basics.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html"/>
|
||||
|
||||
<target name="-basics.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html"/>
|
||||
|
||||
<!-- Target: text -->
|
||||
<target name="-text.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy"/>
|
||||
|
||||
<target name="-text.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean"/>
|
||||
|
||||
<target name="-text.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-copy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean"/>
|
||||
|
||||
<!-- Target: buildkit -->
|
||||
<target name="-buildkit.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-buildkit.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlbuildkit,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-buildkit.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlbuildkit,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<!-- Target: build -->
|
||||
<target name="-build.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-build.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-build.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlclean,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<!-- Target: minify -->
|
||||
<target name="-minify.dev"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-minify.test"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-css,
|
||||
-html,
|
||||
-htmlcompress,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<target name="-minify.production"
|
||||
depends="-rev,
|
||||
-clean,
|
||||
-prodcopy,
|
||||
-usemin,
|
||||
-js.all.minify,
|
||||
-js.main.concat,
|
||||
-js.mylibs.concat,
|
||||
-js.scripts.concat,
|
||||
-js.delete,
|
||||
-strip-console.log,
|
||||
-css,
|
||||
-html,
|
||||
-htmlcompress,
|
||||
-imagespng,
|
||||
-imagesjpg"/>
|
||||
|
||||
<!--
|
||||
*************************************************
|
||||
* FUNCTION TARGETS *
|
||||
*************************************************
|
||||
-->
|
||||
<target name="-load-build-info" description="(PRIVATE) Loads the build versioning information">
|
||||
<property file="./${dir.build}/config/${build.version.info}"/>
|
||||
</target>
|
||||
|
||||
<target name="-clean" description="(PRIVATE) Wipe the previous build (Deletes the dir.publish directory">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="Cleaning up previous build directory..."/>
|
||||
<delete dir="./${dir.publish}/"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-rev" description="(PRIVATE) Increase the current build number by one and set build date">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="====================================================================="/>
|
||||
<echo message="Welcome to the HTML5 Boilerplate Build Script!"/>
|
||||
<echo message=" "/>
|
||||
<echo message="We're going to get your site all ship-shape and ready for prime time."/>
|
||||
<echo message=" "/>
|
||||
<echo message="This should take somewhere between 15 seconds and a few minutes,"/>
|
||||
<echo message="mostly depending on how many images we're going to compress."/>
|
||||
<echo message=" "/>
|
||||
<echo message="Feel free to come back or stay here and follow along."/>
|
||||
<echo message="====================================================================="/>
|
||||
<echo message=" "/>
|
||||
<echo message=" "/>
|
||||
|
||||
|
||||
<echo message="Increasing the build number..."/>
|
||||
<propertyfile file="./${dir.build}/config/${build.version.info}" comment="Build Information File - DO NOT CHANGE">
|
||||
<entry key="build.number" type="int" default="0000" operation="+" pattern="0000"/>
|
||||
<entry key="build.date" type="date" value="now" pattern="dd.MM.yyyy HH:mm"/>
|
||||
</propertyfile>
|
||||
<property file="./${dir.build}/config/${build.version.info}"/>
|
||||
<echo>Creating build ${build.number}</echo>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="current-number" depends="-load-build-info" description="(PUBLIC) Returns the current build number">
|
||||
<echo>Current build number: ${build.number}</echo>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-copy" depends="-load-build-info">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="Copying over new files..."/>
|
||||
<!-- combine the 2 exclude properties -->
|
||||
<var name="excluded-files" value="${file.default.exclude}, ${file.exclude}"/>
|
||||
|
||||
<copy todir="./${dir.publish}">
|
||||
<fileset dir="${dir.source}/" excludes="${excluded-files}"/>
|
||||
</copy>
|
||||
|
||||
<echo message="A copy of all non-dev files are now in: ./${dir.publish}."/>
|
||||
</target>
|
||||
|
||||
<target name="-prodcopy" depends="-load-build-info">
|
||||
<!-- This is a private target -->
|
||||
|
||||
<echo message="Copying over new files..."/>
|
||||
<!-- combine the 2 exclude properties -->
|
||||
<var name="prod-excluded-files" value="${file.default.exclude}, ${file.jpg.exclude}, ${file.exclude}"/>
|
||||
|
||||
<copy todir="./${dir.publish}">
|
||||
<fileset dir="${dir.source}/" excludes="${prod-excluded-files}"/>
|
||||
</copy>
|
||||
|
||||
<echo message="A copy of all non-dev files are now in: ./${dir.publish}."/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- JAVASCRIPT -->
|
||||
<target name="-js.main.concat" depends="-load-build-info" description="(PRIVATE) Concatenates the JS files in dir.js">
|
||||
<echo message="Concatenating Main JS scripts..."/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.js">
|
||||
<fileset dir="./${dir.publish}/">
|
||||
<include name="**/${dir.js.main}/*.min.js"/>
|
||||
<exclude name="**/${dir.js.mylibs}/*.js"/>
|
||||
<exclude name="**/${dir.js.libs}/*.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.mylibs.concat" depends="-load-build-info" description="(PRIVATE) Concatenates the JS files in dir.js.mylibs">
|
||||
<echo message="Concatenating JS libraries"/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/libs-${build.number}.js">
|
||||
<fileset dir="./${dir.publish}/${dir.js.mylibs}/">
|
||||
<include name="**/*.min.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.scripts.concat" depends="-load-build-info" if="build.concat.scripts">
|
||||
<echo message="Concatenating library file with main script file"/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js">
|
||||
<fileset dir="./${dir.publish}/${dir.js}/">
|
||||
<include name="libs-${build.number}.js"/>
|
||||
<include name="scripts-${build.number}.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
|
||||
<echo message="Concatenating library file with main debug script file"/>
|
||||
<concat destfile="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.min.js">
|
||||
<fileset dir="./${dir.publish}/${dir.js}/">
|
||||
<include name="libs-${build.number}.js"/>
|
||||
<include name="scripts-${build.number}-debug.js"/>
|
||||
</fileset>
|
||||
</concat>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.all.minify" depends="-js.libs.minify" description="(PRIVATE) Minifies the scripts.js files created by js.scripts.concat">
|
||||
<echo message="Minifying concatenated script- and library-file"/>
|
||||
<apply executable="java" parallel="false">
|
||||
<fileset dir="./${dir.publish}/${dir.js}">
|
||||
<include name="**/*.js"/>
|
||||
<exclude name="**/*.min.js"/>
|
||||
<exclude name="**/${dir.js.libs}/*.js"/>
|
||||
</fileset>
|
||||
<arg line="-jar"/>
|
||||
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
|
||||
<srcfile/>
|
||||
<arg line="--line-break"/>
|
||||
<arg line="4000"/>
|
||||
<arg line="-o"/>
|
||||
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js}/*.min.js"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.libs.minify" depends="-load-build-info" description="(PRIVATE) Minifies the helper files in dir.js.libs">
|
||||
<echo message="Minifying helper JS files..."/>
|
||||
|
||||
<apply executable="java" parallel="false">
|
||||
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
|
||||
<arg line="-jar"/>
|
||||
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
|
||||
<srcfile/>
|
||||
<arg line="-o"/>
|
||||
<mapper type="glob" from="*.js" to="../${dir.publish}/${dir.js.libs}/*-${build.number}.min.js"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-js.delete" depends="-load-build-info" description="(PRIVATE) Deletes the unoptimized js files from build if set">
|
||||
<if>
|
||||
<equals arg1="${build.delete.unoptimized}" arg2="true"/>
|
||||
<then>
|
||||
<echo message="Deleting unoptimized files..."/>
|
||||
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
|
||||
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}-debug.js"/>
|
||||
<!--
|
||||
<delete dir="./${dir.publish}/${dir.js.lib}/"/>
|
||||
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
|
||||
this guy probably COULD be on but I think it's better if we keep him off for now. ^pi
|
||||
<delete includeemptydirs="true">
|
||||
<fileset dir="./${dir.publish}/${dir.js.libs}/" includes="*.js" excludes="*.min.js"/>
|
||||
</delete>
|
||||
-->
|
||||
</then>
|
||||
</if>
|
||||
|
||||
<if>
|
||||
<and>
|
||||
<equals arg1="${build.delete.unoptimized}" arg2="true"/>
|
||||
<equals arg1="${build.concat.scripts}" arg2="true"/>
|
||||
</and>
|
||||
<then>
|
||||
<delete file="./${dir.publish}/${dir.js}/libs-${build.number}.js"/>
|
||||
<delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.js"/>
|
||||
</then>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-strip-console.log" description="(PRIVATE)Comments out any console.log statements">
|
||||
<echo message="Commenting out console.log lines"/>
|
||||
|
||||
|
||||
<replaceregexp match="(console.log\(.*\))" replace="/\*\1\*/" flags="g" >
|
||||
<fileset dir="./${dir.publish}/${dir.js}/">
|
||||
<include name="**/*.js"/>
|
||||
<exclude name="**/*.min.js"/>
|
||||
</fileset>
|
||||
</replaceregexp>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- HTML -->
|
||||
<target name="-usemin" depends="-serverconfig" description="(PRIVATE) Replaces references to non-minified scripts">
|
||||
<echo message="Switching to minified js files..."/>
|
||||
|
||||
<!-- switch from a regular jquery to minified -->
|
||||
<replaceregexp match="jquery-(\d|\d(\.\d)+)\.js" replace="jquery-\1.min.js" flags="g">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
<!-- switch any google CDN reference to minified -->
|
||||
<replaceregexp match="(\d|\d(\.\d)+)\/jquery\.js" replace="\1/jquery.min.js" flags="g">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
|
||||
<echo>Kill off those versioning flags: ?v=2</echo>
|
||||
<replaceregexp match='\?v=\d+">' replace='">' flags="g">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
|
||||
<echo>Remove favicon.ico reference if it is pointing to the root</echo>
|
||||
<replaceregexp match="<link rel="shortcut icon" href="/favicon\.ico">" replace="">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
<!-- we maintain the apple-touch-icon reference for Android 2.2 www.ravelrumba.com/blog/android-apple-touch-icon
|
||||
<replace token="<link rel="apple-touch-icon" href="/apple-touch-icon.png">" value="">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replace>
|
||||
-->
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-html" depends="-load-build-info" description="(PRIVATE) Very basic clean up of the HTML">
|
||||
<echo message="Update the HTML to reference our concatenated script file: scripts-${build.number}.min.js"/>
|
||||
<!-- style.css replacement handled as a replacetoken above -->
|
||||
<replaceregexp match="<!-- scripts concatenated [\d\w\s\W]*?!-- end ((scripts)|(concatenated and minified scripts))-->" replace="<script src='${dir.js}/scripts-${build.number}.min.js\'></script>" flags="m">
|
||||
<fileset dir="./${dir.publish}" includes="${page-files}"/>
|
||||
</replaceregexp>
|
||||
<!--[! use comments like this one to avoid having them get minified -->
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-htmlclean">
|
||||
<echo message="Run htmlcompressor on the HTML"/>
|
||||
<echo message=" - maintaining whitespace"/>
|
||||
<echo message=" - removing html comments"/>
|
||||
<echo message=" - compressing inline style/script tag contents"/>
|
||||
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
|
||||
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
|
||||
<arg value="-jar"/>
|
||||
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
|
||||
<arg line="--type html"/>
|
||||
<arg line="--preserve-multi-spaces"/>
|
||||
<arg line="--remove-quotes"/>
|
||||
<arg line="--compress-js"/>
|
||||
<arg line="--compress-css"/>
|
||||
<srcfile/>
|
||||
<arg value="-o"/>
|
||||
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-htmlbuildkit">
|
||||
<echo message="Run htmlcompressor on the HTML"/>
|
||||
<echo message=" - maintaining whitespace"/>
|
||||
<echo message=" - retain html comments"/>
|
||||
<echo message=" - compressing inline style/script tag contents"/>
|
||||
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
|
||||
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
|
||||
<arg value="-jar"/>
|
||||
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
|
||||
<arg value="--preserve-comments"/>
|
||||
<arg line="--preserve-multi-spaces"/>
|
||||
<arg line="--type html"/>
|
||||
<arg line="--compress-js"/>
|
||||
<arg line="--compress-css"/>
|
||||
<srcfile/>
|
||||
<arg value="-o"/>
|
||||
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-htmlcompress">
|
||||
<echo message="Run htmlcompressor on the HTML"/>
|
||||
<echo message=" - removing unnecessary whitespace"/>
|
||||
<echo message=" - removing html comments"/>
|
||||
<echo message=" - compressing inline style/script tag contents"/>
|
||||
<apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" >
|
||||
<fileset dir="./${dir.publish}/" includes="${page-files}"/>
|
||||
<arg value="-jar"/>
|
||||
<arg path="./${dir.build}/tools/${tool.htmlcompressor}"/>
|
||||
<arg line="--type html"/>
|
||||
<arg line="--remove-quotes"/>
|
||||
<arg line="--compress-js"/>
|
||||
<arg line="--compress-css"/>
|
||||
<srcfile/>
|
||||
<arg value="-o"/>
|
||||
<mapper type="glob" from="*.html" to="../${dir.publish}/*.html"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-serverconfig" description="(PRIVATE) Upgrades expires headers">
|
||||
<echo message="Upgrading expires header timeouts for js/css to 1yr..."/>
|
||||
<replace file="./${dir.publish}/${file.serverconfig}" token="access plus 2 months" value="access plus 1 year"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- CSS -->
|
||||
<target name="-css" depends="-load-build-info" description="Concatenates and Minifies any stylesheets listed in the file.stylesheets property">
|
||||
<echo message="Concatenating css..."/>
|
||||
|
||||
<concat destfile="./${dir.publish}/${dir.css}/style-${build.number}.css">
|
||||
<filelist dir="./${dir.publish}/${dir.css}" files="${stylesheet-files}"/>
|
||||
</concat>
|
||||
|
||||
<echo message="Minifying css..."/>
|
||||
|
||||
<apply executable="java" parallel="false">
|
||||
<fileset dir="./${dir.publish}/${dir.css}/" includes="style-${build.number}.css"/>
|
||||
<arg line="-jar"/>
|
||||
<arg path="./${dir.build.tools}/${tool.yuicompressor}"/>
|
||||
<srcfile/>
|
||||
<arg line="-o"/>
|
||||
<mapper type="glob" from="style-${build.number}.css" to="../${dir.publish}/${dir.css}/style-${build.number}.min.css"/>
|
||||
<targetfile/>
|
||||
</apply>
|
||||
|
||||
<echo message="Updating the HTML with the new css filename"/>
|
||||
|
||||
<replace token="style.css" value="style-${build.number}.min.css" dir="${dir.publish}" includes="${page-files}"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- IMAGES -->
|
||||
<target name="-imagespng" description="(PRIVATE) Optimizes .png images using optipng">
|
||||
<echo message="Optimizing images..."/>
|
||||
<echo message="This part might take a while. But everything else is already done."/>
|
||||
<echo message=" "/>
|
||||
|
||||
|
||||
<echo message="First, we run optipng on the .png files..."/>
|
||||
|
||||
<!-- osfamily=unix is actually true on OS X as well -->
|
||||
<!-- On *nix's and OS X, check for optipng and give a helpful message if it's not installed -->
|
||||
<if>
|
||||
<and>
|
||||
<os family="unix" />
|
||||
<available file="optipng" filepath="${ENV.PATH}" />
|
||||
</and>
|
||||
<then>
|
||||
<apply executable="optipng" osfamily="unix">
|
||||
<arg value="-quiet"/>
|
||||
<arg value="-o7"/>
|
||||
<fileset dir="./${dir.publish}/">
|
||||
<include name="**/*.png"/>
|
||||
</fileset>
|
||||
</apply>
|
||||
</then>
|
||||
<elseif>
|
||||
<os family="unix" />
|
||||
<then>
|
||||
<echo message="*** optipng NOT INSTALLED. SKIPPING OPTIMIZATION OF PNGs." />
|
||||
<echo message="*** Install optipng to enable png optimization." />
|
||||
<echo message="*** For instructions see 'Dependencies' at: http://html5boilerplate.com/docs/#Build-script#dependencies" />
|
||||
</then>
|
||||
</elseif>
|
||||
</if>
|
||||
|
||||
<apply executable="tools/optipng-0.6.4-exe/optipng.exe" osfamily="windows">
|
||||
<arg value="-o7"/>
|
||||
<arg value="-quiet"/>
|
||||
<fileset dir="./${dir.publish}/">
|
||||
<include name="**/*.png"/>
|
||||
</fileset>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-imagesjpg" description="(PRIVATE) Optimizes .jpg images using jpegtan">
|
||||
<echo message="Now, we clean up those jpgs..."/>
|
||||
|
||||
<!-- jpegtran is a little weird in that it assumes a pre-existing file means it's already optimized. -->
|
||||
<!-- why? good question. To combat this, we skipped copying over the ${dir.images}/*.jpg earlier in the -->
|
||||
<!-- copy task. Now, we're using jpegtran to copy the files over while we crunch 'em. -->
|
||||
|
||||
<if>
|
||||
<equals arg1="${images.strip.metadata}" arg2="true"/>
|
||||
<then>
|
||||
<var name="strip-meta-tags" value="none"/>
|
||||
</then>
|
||||
<else>
|
||||
<var name="strip-meta-tags" value="all"/>
|
||||
</else>
|
||||
</if>
|
||||
|
||||
<!-- On *nix's and OS X, check for jpegtran and give a helpful message if it's not installed -->
|
||||
<if>
|
||||
<and>
|
||||
<os family="unix" />
|
||||
<available file="jpegtran" filepath="${ENV.PATH}" />
|
||||
</and>
|
||||
<then>
|
||||
<apply executable="jpegtran" osfamily="unix">
|
||||
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
|
||||
<arg value="-copy"/>
|
||||
<arg value="${strip-meta-tags}"/>
|
||||
<arg value="-optimize"/>
|
||||
<srcfile/>
|
||||
<redirector>
|
||||
<outputmapper type="glob" from="*.jpg" to="./${dir.publish}/${dir.images}/*.jpg"/>
|
||||
</redirector>
|
||||
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
|
||||
</apply>
|
||||
</then>
|
||||
<elseif>
|
||||
<os family="unix" />
|
||||
<then>
|
||||
<echo message="*** jpegtran NOT INSTALLED. SKIPPING OPTIMIZATION OF JPEGs." />
|
||||
<echo message="*** Install jpegtran to enable jpeg optimization." />
|
||||
<echo message="*** For instructions see 'Dependencies' at: http://html5boilerplate.com/docs/#Build-script#dependencies" />
|
||||
</then>
|
||||
</elseif>
|
||||
</if>
|
||||
|
||||
<apply executable="tools/jpegtran.exe" osfamily="windows">
|
||||
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
|
||||
<arg value="-copy"/>
|
||||
<arg value="${strip-meta-tags}"/>
|
||||
<arg value="-optimize"/>
|
||||
<srcfile/>
|
||||
<targetfile/>
|
||||
<!-- you may want to flag optimized images. If so, do it here. Otherwise change this to type="identity" -->
|
||||
<mapper type="glob" from="*.jpg" to="../${dir.publish}/${dir.images}/*.jpg"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="-jpgcopy">
|
||||
<echo message="Copying over the unmodified jpegs."/>
|
||||
|
||||
<copy todir="./${dir.publish}/${dir.images}">
|
||||
<fileset dir="${dir.source}/${dir.images}" includes="*.jpg"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
|
||||
</project>
|
||||
@ -1,80 +0,0 @@
|
||||
#
|
||||
# Default Build Settings
|
||||
# you can override these settings on a project basis in a project.properties file
|
||||
# so probably best not to touch these as they could be overwritten in later versions!
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# Directory Paths
|
||||
#
|
||||
dir.source = .
|
||||
dir.publish = publish
|
||||
dir.build = build
|
||||
dir.build.tools = ${dir.build}/tools
|
||||
dir.test = test
|
||||
dir.demo = demo
|
||||
dir.js = js
|
||||
dir.js.main = ${dir.js}
|
||||
# scripts in the lib direcotry will only be minified, not concatenated together
|
||||
dir.js.libs = ${dir.js}/libs
|
||||
dir.js.mylibs = ${dir.js}/mylibs
|
||||
dir.css = css
|
||||
dir.images = img
|
||||
|
||||
|
||||
#
|
||||
# HTML, PHP, etc files to clean and update script/css references
|
||||
#
|
||||
file.pages.default.include = index.html, 404.html
|
||||
|
||||
# You will need to include the property file.pages.include in your project.properties file
|
||||
# and add any extra pages you want to be updated by the scripts in a comma separated lis
|
||||
|
||||
|
||||
# the server configuration you're going with. If you don't use apache,
|
||||
# get a different one here: github.com/paulirish/html5-boilerplate-server-configs
|
||||
|
||||
file.serverconfig = .htaccess
|
||||
|
||||
#
|
||||
# Files not to be copied over by the script to the publish directory
|
||||
#
|
||||
file.default.exclude = .gitignore, .project, .settings, README.markdown, README.md, **/.git/**, **/.svn/**, **/${dir.build}/**, **/${dir.test}/**, **/${dir.demo}/**
|
||||
file.jpg.exclude = ${dir.images}/*.jpg
|
||||
# Declare the file.exclude property in your project.properties file if you want to exclude files / folders you have added
|
||||
# Note: you cannot decalre an empty file.exclude property
|
||||
|
||||
|
||||
#
|
||||
# Default Styleshee
|
||||
#
|
||||
file.default.stylesheets = style.css
|
||||
|
||||
#
|
||||
# Script Optimisation
|
||||
#
|
||||
# If set, concat libraries with main scripts file, producing single script file
|
||||
build.concat.scripts = true
|
||||
# If set, delete minified but unconcatted files.
|
||||
build.delete.unoptimized = true
|
||||
|
||||
|
||||
#
|
||||
# Image Optimisation
|
||||
#
|
||||
images.strip.metadata = true
|
||||
# Seting this to true will strip the metadata from all jpeg files.
|
||||
# YOU SHOULD ONLY DO THIS IF YOU OWN THE COPYRIGHT TO ALL THE IMAGES IN THE BUILD
|
||||
|
||||
|
||||
# Build Info
|
||||
build.version.info = buildinfo.properties
|
||||
build.scripts.dir = ${dir.build}/build-scripts
|
||||
|
||||
# Tools
|
||||
tool.yuicompressor = yuicompressor-2.4.2.jar
|
||||
tool.htmlcompressor = htmlcompressor-0.9.9.jar
|
||||
tool.csscompressor = css-compressor/cli.php
|
||||
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
# project.properties file defines overrides for default.properties
|
||||
|
||||
# Explanation: This file should be created by each user as and when he or she needs to override particular values.
|
||||
# Consequently, it should not be placed under version control.
|
||||
|
||||
|
||||
# Stylesheets
|
||||
#
|
||||
# Note: Stylesheets will be concatenated in the order they are listed in the file.stylesheets property (i.e. the las
|
||||
# file listed will be at the end of the concatenated file), so it probably makes sense to have the main style.css file
|
||||
# as the first entry
|
||||
# Example:
|
||||
# file.stylesheets = style.css, lightbox.css, plugin.css
|
||||
#
|
||||
file.stylesheets =
|
||||
|
||||
|
||||
# Web Pages
|
||||
#
|
||||
# These are the pages (files) that will be served to users (.html, .php, .asp, etc). Files in this property will
|
||||
# be minified / optimised and have any stylesheet or javascript references updated to the minified examples
|
||||
#
|
||||
# The paths need to be relative
|
||||
#
|
||||
# Files can be added in a comma separated form
|
||||
file.pages =
|
||||
|
||||
|
||||
|
||||
# Excluded files and dirs
|
||||
#
|
||||
# Add any files or directories you add to the project and do not want to be copied to the publish directory as a
|
||||
# comma separated lis
|
||||
# These files are ignored in addition to the default ones specified in default.properties.
|
||||
file.exclude =
|
||||
|
||||
|
||||
# Specify an environment to build
|
||||
#
|
||||
# By Default, it builds a production environmen
|
||||
# Set to dev if buidling a development environmen
|
||||
# Set to test if building a test environmen
|
||||
env =
|
||||
|
||||
|
||||
# Directory Structure
|
||||
#
|
||||
# Override any directory paths specific to this projec
|
||||
#
|
||||
# dir.publish
|
||||
# dir.js
|
||||
# dir.js.libs
|
||||
# dir.js.mylibs
|
||||
# dir.css
|
||||
# dir.images
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#Generate a new project from your HTML5 Boilerplate repo clone
|
||||
#Created 2010-10-13, Rick Waldron
|
||||
|
||||
|
||||
##first run
|
||||
# $ cd html5-boilerplate/build
|
||||
# $ chmod +x createproject.sh && ./createproject.sh
|
||||
|
||||
##usage
|
||||
# $ cd html5-boilerplate/build
|
||||
# $ ./createproject.sh
|
||||
|
||||
# find project root (also ensure script is ran from within repo)
|
||||
src=$(git rev-parse --show-toplevel) || exit 1
|
||||
|
||||
# get a name for new project
|
||||
while [[ -z $name ]]
|
||||
do
|
||||
echo "To create a new html5-boilerplate project, enter a new directory name:"
|
||||
read name || exit
|
||||
done
|
||||
dst=$src/../$name
|
||||
|
||||
if [[ -d $dst ]]
|
||||
then
|
||||
echo "$dst exists"
|
||||
else
|
||||
#create new project
|
||||
mkdir "$dst" || exit 1
|
||||
|
||||
#sucess message
|
||||
echo "Created Directory: $dst"
|
||||
|
||||
cd "$src"
|
||||
cp -vr css js img build test *.html *.xml *.txt *.png *.ico .htaccess "$dst"
|
||||
|
||||
#sucess message
|
||||
echo "Created Project: $dst"
|
||||
fi
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
# This is for windows users only.
|
||||
# If you're on a mac or linux, just run `ant build` from this folder in Terminal
|
||||
|
||||
set MYDIR=%~dp0
|
||||
ant build
|
||||
@ -1,21 +0,0 @@
|
||||
|
||||
Copyright (C) 2001-2010 Cosmin Truta.
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the author(s) be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
|
||||
<cross-domain-policy>
|
||||
|
||||
|
||||
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
|
||||
|
||||
<!-- Most restrictive policy: -->
|
||||
<site-control permitted-cross-domain-policies="none"/>
|
||||
|
||||
|
||||
|
||||
<!-- Least restrictive policy: -->
|
||||
<!--
|
||||
<site-control permitted-cross-domain-policies="all"/>
|
||||
<allow-access-from domain="*" to-ports="*" secure="false"/>
|
||||
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
|
||||
-->
|
||||
<!--
|
||||
If you host a crossdomain.xml file with allow-access-from domain=“*”
|
||||
and don’t understand all of the points described here, you probably
|
||||
have a nasty security vulnerability. ~ simon willison
|
||||
-->
|
||||
|
||||
</cross-domain-policy>
|
||||
@ -1,13 +0,0 @@
|
||||
/* Handheld
|
||||
|
||||
_____________________________________________________
|
||||
|
||||
320 and Up boilerplate extension
|
||||
|
||||
Author: Andy Clarke
|
||||
Version: 0.9b
|
||||
URL: http://stuffandnonsense.co.uk/projects/320andup/
|
||||
License: http://creativecommons.org/licenses/MIT/
|
||||
_____________________________________________________
|
||||
|
||||
*/
|
||||
@ -1,130 +0,0 @@
|
||||
/* Forms
|
||||
|
||||
_____________________________________________________
|
||||
|
||||
320 and Up boilerplate extension
|
||||
|
||||
Author: Andy Clarke
|
||||
Version: 0.9b
|
||||
URL: http://stuffandnonsense.co.uk/projects/320andup/
|
||||
License: http://creativecommons.org/licenses/MIT/
|
||||
_____________________________________________________
|
||||
|
||||
*/
|
||||
|
||||
form {
|
||||
margin-bottom : 1.5em; }
|
||||
|
||||
fieldset {
|
||||
margin-bottom : 1.5em;
|
||||
padding : 0;
|
||||
border-width : 0; }
|
||||
|
||||
legend {
|
||||
margin-top : -.2em 0 1em 0;
|
||||
font-weight : bold;
|
||||
font-size : 1.2em; }
|
||||
|
||||
label {
|
||||
font-weight : normal; }
|
||||
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
margin : 0; }
|
||||
|
||||
label,
|
||||
input[type="button"],
|
||||
input[type="submit"],
|
||||
input[type="image"],
|
||||
button {
|
||||
cursor : pointer; }
|
||||
|
||||
input,
|
||||
select {
|
||||
vertical-align : middle; }
|
||||
|
||||
input[type=text],
|
||||
input[type=password],
|
||||
input[type=tel],
|
||||
input[type=email],
|
||||
input[type=url],
|
||||
input[type=search],
|
||||
textarea {
|
||||
padding : 2px;
|
||||
width : 100%;
|
||||
background-color : rgb(255,255,255);
|
||||
border : 1px solid rgb(200,200,200);
|
||||
font-family : inherit;
|
||||
font-size : inherit; }
|
||||
|
||||
input[type=text]:focus,
|
||||
input[type=password]:focus,
|
||||
input[type=tel]:focus,
|
||||
input[type=email]:focus,
|
||||
input[type=url]:focus,
|
||||
input[type=search]:focus,
|
||||
textarea:focus {
|
||||
border-color : rgb(100,100,100); }
|
||||
|
||||
input[type="radio"] {
|
||||
vertical-align : text-bottom; }
|
||||
|
||||
input[type="checkbox"] {
|
||||
vertical-align : bottom; }
|
||||
|
||||
/* Colors for form validity */
|
||||
input:valid,
|
||||
textarea:valid {
|
||||
/* Styles */ }
|
||||
|
||||
input:invalid,
|
||||
textarea:invalid {
|
||||
-webkit-box-shadow : 0 0 2px rgb(255,0,0);
|
||||
-moz-box-shadow : 0 0 2px rgb(255,0,0);
|
||||
box-shadow : 0 0 2px rgb(255,0,0); }
|
||||
|
||||
.no-boxshadow input:invalid,
|
||||
.no-boxshadow textarea:invalid {
|
||||
background-color : rgb(240,221,221); }
|
||||
|
||||
select {
|
||||
margin : .5em 0;
|
||||
background-color : rgb(255,255,255);
|
||||
border-width : 1px;
|
||||
border-style : solid; }
|
||||
|
||||
textarea {
|
||||
overflow : auto;
|
||||
padding : 2px; }
|
||||
|
||||
button {
|
||||
width : auto;
|
||||
padding : 8px 12px 9px;
|
||||
overflow : visible;
|
||||
background-color : rgb(227,227,227);
|
||||
border : 1px solid rgb(204,204,204);
|
||||
border-bottom-color : rgb(187,187,187);
|
||||
font-family : "Helvetica Neue", Helvetica, Arial;
|
||||
font-size : .875em;
|
||||
font-weight: bold;
|
||||
text-align : center;
|
||||
line-height : 1;
|
||||
color : rgb(51,51,51);
|
||||
text-shadow : 0 1px 0 rgb(255,255,255); }
|
||||
|
||||
button:hover {
|
||||
cursor : pointer;
|
||||
background-color : rgb(217,217,217); }
|
||||
|
||||
.ie6 legend,
|
||||
.ie7 legend {
|
||||
margin-left : -7px; }
|
||||
|
||||
.ie6 input {
|
||||
vertical-align : text-bottom; }
|
||||
|
||||
.ie7 input[type="checkbox"],
|
||||
.iem7 input[type="checkbox"] {
|
||||
vertical-align : baseline; }
|
||||
@ -1,692 +0,0 @@
|
||||
/* ====================================================
|
||||
*
|
||||
* Dan Barber CV Styles
|
||||
* Based on:
|
||||
* 320 and Up boilerplate extension
|
||||
*
|
||||
* Author: Andy Clarke
|
||||
* Version: 0.9b
|
||||
* URL: http://stuffandnonsense.co.uk/projects/320andup/
|
||||
* _____________________________________________________
|
||||
*
|
||||
* 1.ROOT
|
||||
* 2.HEADINGS
|
||||
* 3.TYPOGRAPHY
|
||||
* 4.LINKS
|
||||
* 5.FIGURES & IMAGES
|
||||
* 6.TABLES
|
||||
* 7.FORMS (See css/mylibs/forms.css)
|
||||
* 8.BANNER header[role="banner"]
|
||||
* 9.NAVIGATION nav[role="navigation"]
|
||||
* 10.CONTENT
|
||||
* 11.MAIN div[role="main"]
|
||||
* 12.COMPLIMENTARY div[role="complementary"]
|
||||
* 13.CONTENTINFO footer[role="contentinfo"]
|
||||
* 14.GLOBAL OBJECTS
|
||||
* 15.VENDOR-SPECIFIC
|
||||
* 16.TEMPLATE SPECIFICS
|
||||
* 17.MODERNIZR
|
||||
*
|
||||
* COLOURS */
|
||||
@font-face {
|
||||
font-family: 'icomoon';
|
||||
src: url("../fonts/icomoon.eot");
|
||||
src: url("../fonts/icomoon.eot?#iefix") format("embedded-opentype"), url("../fonts/icomoon.woff") format("woff"), url("../fonts/icomoon.ttf") format("truetype"), url("../fonts/icomoon.svg#icomoon") format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal; }
|
||||
|
||||
/* Use the following CSS code if you want to use data attributes for inserting your icons */
|
||||
[data-icon]:before {
|
||||
font-family: 'icomoon';
|
||||
content: attr(data-icon);
|
||||
speak: none;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
|
||||
/* Use the following CSS code if you want to have a class per icon */
|
||||
/*
|
||||
Instead of a list of all class selectors,
|
||||
you can use the generic selector below, but it's slower:
|
||||
*/
|
||||
[class*="icon-"]:before {
|
||||
font-family: 'icomoon';
|
||||
speak: none;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
|
||||
.icon-logo:before {
|
||||
content: "\e000"; }
|
||||
|
||||
.icon-mail:before {
|
||||
content: "\e001"; }
|
||||
|
||||
.icon-earth:before {
|
||||
content: "\e002"; }
|
||||
|
||||
.icon-phone:before {
|
||||
content: "\e003"; }
|
||||
|
||||
.icon-github:before {
|
||||
content: "\e004"; }
|
||||
|
||||
.icon-twitter:before {
|
||||
content: "\e006"; }
|
||||
|
||||
.icon-apple:before {
|
||||
content: "\e007"; }
|
||||
|
||||
.icon-skype:before {
|
||||
content: "\e005"; }
|
||||
|
||||
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline; }
|
||||
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
|
||||
display: block; }
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: 1px dotted;
|
||||
cursor: help; }
|
||||
|
||||
/* 1.ROOT */
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
background: white; }
|
||||
|
||||
body {
|
||||
margin: 0 auto;
|
||||
padding: 0 0;
|
||||
font: 100%/1.4 "museo-sans-1", "museo-sans-2", sans-serif;
|
||||
font-weight: 100;
|
||||
color: #262626;
|
||||
background: white;
|
||||
background: -moz-linear-gradient(left, #efefef 0%, white 35%, white 65%, #efefef 100%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, #efefef), color-stop(35%, white), color-stop(65%, white), color-stop(100%, #efefef));
|
||||
background: -webkit-linear-gradient(left, #efefef 0%, white 35%, white 65%, #efefef 100%);
|
||||
background: -o-linear-gradient(left, #efefef 0%, white 35%, white 65%, #efefef 100%);
|
||||
background: -ms-linear-gradient(left, #efefef 0%, white 35%, white 65%, #efefef 100%);
|
||||
background: linear-gradient(to right, #efefef 0%, white 35%, white 65%, #efefef 100%); }
|
||||
|
||||
#stripe {
|
||||
background: #262626;
|
||||
height: 12px;
|
||||
line-height: 0;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
|
||||
#stripe canvas {
|
||||
height: 12px;
|
||||
width: 100%; }
|
||||
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
padding: 0 0;
|
||||
width: 90%; }
|
||||
|
||||
/* 2.HEADINGS */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: "museo-slab-1", "museo-slab-2", "Helvetica Neue", Helvetica, Arial, serif;
|
||||
font-weight: black;
|
||||
text-shadow: 1px 1px 1px white;
|
||||
text-rendering: optimizeLegibility; }
|
||||
|
||||
h1 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.1em;
|
||||
font-size: 3em;
|
||||
/* 48 / 16 = 3 */
|
||||
line-height: 1.2;
|
||||
font-weight: 900;
|
||||
text-align: center;
|
||||
width: 100%; }
|
||||
h1:before {
|
||||
display: block;
|
||||
font-size: 1.5em;
|
||||
margin-top: 0.3em;
|
||||
margin-bottom: 0.1em;
|
||||
text-align: center; }
|
||||
|
||||
/* Hide the logomark in ie7/8 as it just doesn't work correctly. It's not essential. */
|
||||
.ie8 h1:before, .ie7 h1:before {
|
||||
border: 1px solid red;
|
||||
display: none; }
|
||||
|
||||
h2 {
|
||||
margin-bottom: 0.75em;
|
||||
font-size: 1.7em;
|
||||
/* 36 / 16 = 2 */
|
||||
line-height: 1.2;
|
||||
text-align: center; }
|
||||
|
||||
h3 {
|
||||
text-transform: uppercase;
|
||||
margin-bottom: 1em;
|
||||
font-size: 1.4em;
|
||||
/* 24 / 16 = 1.5 */
|
||||
line-height: 1.3; }
|
||||
|
||||
h4 {
|
||||
margin-bottom: 0.75em;
|
||||
margin-top: 1.7em;
|
||||
font-size: 1.2em;
|
||||
/* 20 / 16 = 1.25 */
|
||||
line-height: 1.25;
|
||||
font-weight: 500; }
|
||||
|
||||
h5 {
|
||||
margin-bottom: 1.5em;
|
||||
font-size: 1em;
|
||||
/* 16 / 16 = 1 */ }
|
||||
|
||||
h6 {
|
||||
font-size: 1em;
|
||||
/* 16 / 16 = 1 */ }
|
||||
|
||||
/* 3.TYPOGRAPHY */
|
||||
.link {
|
||||
float: right; }
|
||||
|
||||
.period {
|
||||
font-style: italic; }
|
||||
|
||||
p, ol, ul, dl, address {
|
||||
margin-bottom: 0.75em;
|
||||
font-size: 1em;
|
||||
/* 16 / 16 = 1 */ }
|
||||
|
||||
ul, ol {
|
||||
margin: 0 0 0 -24px;
|
||||
padding-left: 24px; }
|
||||
|
||||
ul {
|
||||
list-style-type: disc; }
|
||||
ul ul {
|
||||
padding-left: 0; }
|
||||
|
||||
ol {
|
||||
list-style-type: decimal; }
|
||||
|
||||
li ul, li ol {
|
||||
margin: 0;
|
||||
font-size: 1em;
|
||||
/* 16 / 16 = 1 */ }
|
||||
|
||||
.container > section {
|
||||
border-top: 2px solid #666666;
|
||||
padding-top: 1em;
|
||||
margin-bottom: 2em; }
|
||||
.container > section ul, .container > section ol {
|
||||
list-style: none; }
|
||||
|
||||
dl, dd {
|
||||
margin-bottom: 1.5em; }
|
||||
|
||||
dt {
|
||||
font-weight: normal; }
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1.5em -24px;
|
||||
padding-left: 24px;
|
||||
border-left: 1px solid #c8c8c8;
|
||||
font-style: italic; }
|
||||
blockquote:before, blockquote:after {
|
||||
content: "";
|
||||
content: none; }
|
||||
|
||||
q:before, q:after {
|
||||
content: "";
|
||||
content: none; }
|
||||
|
||||
b, strong {
|
||||
font-weight: bold; }
|
||||
|
||||
i, em {
|
||||
font-style: italic; }
|
||||
|
||||
sup, sub {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0; }
|
||||
|
||||
sup {
|
||||
top: -0.5em; }
|
||||
|
||||
sub {
|
||||
bottom: -0.25em; }
|
||||
|
||||
address {
|
||||
font-style: normal; }
|
||||
|
||||
pre {
|
||||
margin-bottom: 1.5em;
|
||||
white-space: pre;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
font: 0.875em "andale mono", "lucida console", monospace;
|
||||
line-height: 1.5; }
|
||||
|
||||
code {
|
||||
font: 0.875em "andale mono", "lucida console", monospace;
|
||||
line-height: 1.5; }
|
||||
|
||||
small {
|
||||
font-size: 1em;
|
||||
/* 16 / 16 = 1 */ }
|
||||
|
||||
/* 4.LINKS */
|
||||
a {
|
||||
outline: none;
|
||||
color: #1777af;
|
||||
text-decoration: none; }
|
||||
a:visited {
|
||||
outline: none;
|
||||
color: #1777af;
|
||||
text-decoration: none; }
|
||||
a:hover, a:focus {
|
||||
outline: none;
|
||||
color: #282828;
|
||||
text-decoration: underline; }
|
||||
a:active {
|
||||
outline: none;
|
||||
color: black; }
|
||||
|
||||
/* 5.FIGURES & IMAGES */
|
||||
figure {
|
||||
margin-bottom: 1.5em; }
|
||||
figure img, figure object, figure embed {
|
||||
margin-bottom: 0.75em;
|
||||
max-width: 100%; }
|
||||
|
||||
figcaption {
|
||||
display: block;
|
||||
font-weight: normal; }
|
||||
|
||||
/* 6.TABLES */
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
margin-bottom: 1.4em;
|
||||
width: 100%;
|
||||
font-size: 0.875em;
|
||||
/* 14 / 16 = .875 */ }
|
||||
|
||||
th {
|
||||
font-weight: bold;
|
||||
padding: 0.25em 10px 0.25em 5px; }
|
||||
|
||||
td, caption {
|
||||
padding: 0.25em 10px 0.25em 5px; }
|
||||
|
||||
tfoot {
|
||||
font-style: italic; }
|
||||
|
||||
caption {
|
||||
background-color: transparent; }
|
||||
|
||||
/* 7.FORMS (See css/mylibs/forms.css) */
|
||||
/* 8.BANNER */
|
||||
/* 9.NAVIGATION */
|
||||
/* 10.CONTENT */
|
||||
/* 11.MAIN */
|
||||
/* 12.COMPLIMENTARY */
|
||||
/* 13.CONTENTINFO */
|
||||
/* 14.GLOBAL OBJECTS */
|
||||
.clearfix {
|
||||
zoom: 1; }
|
||||
.clearfix:before {
|
||||
content: "\0020";
|
||||
display: block;
|
||||
height: 0;
|
||||
overflow: hidden; }
|
||||
.clearfix:after {
|
||||
content: "\0020";
|
||||
display: block;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
clear: both; }
|
||||
|
||||
/* 15.VENDOR-SPECIFIC */
|
||||
body {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%; }
|
||||
|
||||
a:link {
|
||||
-webkit-tap-highlight-color: #349edb; }
|
||||
|
||||
::-webkit-selection {
|
||||
background: #1777af;
|
||||
color: #fafafa;
|
||||
text-shadow: none; }
|
||||
|
||||
::-moz-selection {
|
||||
background: #1777af;
|
||||
color: #fafafa;
|
||||
text-shadow: none; }
|
||||
|
||||
::selection {
|
||||
background: #1777af;
|
||||
color: #fafafa;
|
||||
text-shadow: none; }
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
padding: 10px;
|
||||
font-size: 0.875em;
|
||||
line-height: 1.4; }
|
||||
|
||||
/* input[type=search] { -webkit-appearance: none; }
|
||||
*
|
||||
*input[type="search"]::-webkit-search-decoration,
|
||||
*input[type="search"]::-webkit-search-cancel-button { display: none; } */
|
||||
input:-moz-placeholder {
|
||||
padding: 10px;
|
||||
font-size: 0.875em;
|
||||
line-height: 1.4; }
|
||||
|
||||
.ie7 img, .iem7 img {
|
||||
-ms-interpolation-mode: bicubic; }
|
||||
|
||||
div, input, textarea {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
|
||||
/* Non-semantic helper classes */
|
||||
/* Image replacement */
|
||||
.ir {
|
||||
display: block;
|
||||
text-indent: -999em;
|
||||
overflow: hidden;
|
||||
background-repeat: no-repeat;
|
||||
text-align: left;
|
||||
direction: ltr; }
|
||||
|
||||
/* Hide for screenreaders and visual browsers */
|
||||
.hidden {
|
||||
display: none;
|
||||
visibility: hidden; }
|
||||
|
||||
/* Hide visually */
|
||||
.visuallyhidden {
|
||||
position: absolute;
|
||||
clip: rect(0 0 0 0);
|
||||
overflow: hidden;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
height: 1px;
|
||||
width: 1px;
|
||||
border: 0; }
|
||||
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
|
||||
position: static;
|
||||
clip: auto;
|
||||
overflow: visible;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
width: auto; }
|
||||
|
||||
/* Allow an element to be focusable via keyboard */
|
||||
/* Hide but maintain layout */
|
||||
.invisible {
|
||||
visibility: hidden; }
|
||||
|
||||
/* 16.TEMPLATE SPECIFICS */
|
||||
#goog-fixurl ul {
|
||||
list-style-type: none; }
|
||||
#goog-fixurl input {
|
||||
margin-bottom: 1.5em; }
|
||||
|
||||
/* 17.MODERNIZR */
|
||||
/* MEDIA QUERIES */
|
||||
/*Print __________________________________________________________________________________________________________ */
|
||||
@media print {
|
||||
* {
|
||||
background: transparent !important;
|
||||
color: black !important;
|
||||
text-shadow: none !important;
|
||||
filter: none !important;
|
||||
-ms-filter: none !important; }
|
||||
|
||||
a {
|
||||
color: #444444 !important;
|
||||
text-decoration: underline; }
|
||||
a:visited {
|
||||
color: #444444 !important;
|
||||
text-decoration: underline; }
|
||||
a[href]:after {
|
||||
content: " (" attr(href) ")"; }
|
||||
|
||||
abbr[title]:after {
|
||||
content: " (" attr(title) ")"; }
|
||||
|
||||
a[href^="javascript:"]:after, a[href^="#"]:after {
|
||||
content: ""; }
|
||||
|
||||
pre, blockquote {
|
||||
border: 1px solid #999999;
|
||||
page-break-inside: avoid; }
|
||||
|
||||
thead {
|
||||
display: table-header-group; }
|
||||
|
||||
tr, img {
|
||||
page-break-inside: avoid; }
|
||||
|
||||
@page {
|
||||
margin: 0.5cm; }
|
||||
|
||||
p, h2, h3 {
|
||||
orphans: 3;
|
||||
widows: 3; }
|
||||
|
||||
h2, h3 {
|
||||
page-break-after: avoid; } }
|
||||
/*/mediaquery */
|
||||
/*500px __________________________________________________________________________________________________________ */
|
||||
@media only screen and (min-width: 500px) {
|
||||
/* 1.ROOT */
|
||||
body {
|
||||
font-size: 1.05em; }
|
||||
|
||||
/* 2.HEADINGS */
|
||||
h1 {
|
||||
margin-top: 0.5em;
|
||||
text-align: left;
|
||||
margin-bottom: 0;
|
||||
font-size: 3.3em; }
|
||||
h1:before {
|
||||
float: right;
|
||||
font-size: 1.5em;
|
||||
width: 78px;
|
||||
background-size: 78px;
|
||||
background-position: top center;
|
||||
position: relative;
|
||||
top: 0em;
|
||||
text-align: right;
|
||||
margin-top: 0;
|
||||
margin-bottom: -0.5em; }
|
||||
|
||||
h2 {
|
||||
text-align: left; }
|
||||
|
||||
/* 3.TYPOGRAPHY */
|
||||
/* 4.LINKS */
|
||||
/* 5.FIGURES & IMAGES */
|
||||
/* 6.TABLES */
|
||||
/* 7.FORMS */
|
||||
/* 8.BANNER */
|
||||
/* 9.NAVIGATION */
|
||||
/* 10.CONTENT */
|
||||
/* #experience h4 { float: left; margin-top: 0; }
|
||||
*#experience li { margin-top: 2.2em; }
|
||||
*#experience .period { clear: none; text-align: right; position: relative; top: 0.1em; }
|
||||
*#experience p { clear: both; } */
|
||||
/* 11.MAIN */
|
||||
/* 12.COMPLIMENTARY */
|
||||
/* 13.CONTENTINFO */
|
||||
/* 14.GLOBAL OBJECTS */
|
||||
/* 15.VENDOR-SPECIFIC */
|
||||
/* 16.TEMPLATE SPECIFICS */
|
||||
/* 17.MODERNIZR */ }
|
||||
/*/mediaquery */
|
||||
/*480px __________________________________________________________________________________________________________ */
|
||||
@media only screen and (min-width: 540px) {
|
||||
/* 1.ROOT */
|
||||
/* 2.HEADINGS */
|
||||
/* 3.TYPOGRAPHY */
|
||||
/* 4.LINKS */
|
||||
/* 5.FIGURES & IMAGES */
|
||||
/* 6.TABLES */
|
||||
/* 7.FORMS */
|
||||
/* 8.BANNER */
|
||||
/* 9.NAVIGATION */
|
||||
/* 10.CONTENT */
|
||||
#profile, #experience {
|
||||
float: left;
|
||||
width: 63%; }
|
||||
|
||||
#skills {
|
||||
float: right;
|
||||
width: 30%;
|
||||
margin-left: 7%; }
|
||||
|
||||
#portfolio {
|
||||
float: left;
|
||||
width: 63%; }
|
||||
|
||||
#interests, #contact {
|
||||
float: right;
|
||||
width: 30%;
|
||||
margin-left: 7%; }
|
||||
|
||||
/* 11.MAIN */
|
||||
/* 12.COMPLIMENTARY */
|
||||
/* 13.CONTENTINFO */
|
||||
/* 14.GLOBAL OBJECTS */
|
||||
/* 15.VENDOR-SPECIFIC */
|
||||
/* 16.TEMPLATE SPECIFICS */
|
||||
/* 17.MODERNIZR */ }
|
||||
/*/mediaquery */
|
||||
/*768px __________________________________________________________________________________________________________ */
|
||||
@media only screen and (min-width: 768px) {
|
||||
/* 1.ROOT */
|
||||
body {
|
||||
font-size: 1.1em; }
|
||||
|
||||
/* 2.HEADINGS */
|
||||
h1 {
|
||||
font-size: 5em;
|
||||
margin-bottom: 0em; }
|
||||
h1:before {
|
||||
width: 130px;
|
||||
background-size: 130px;
|
||||
background-position: top center;
|
||||
position: relative;
|
||||
top: 0em; }
|
||||
|
||||
h2 {
|
||||
font-size: 2em; }
|
||||
|
||||
/* 3.TYPOGRAPHY */
|
||||
/* 4.LINKS */
|
||||
/* 5.FIGURES & IMAGES */
|
||||
/* 6.TABLES */
|
||||
/* 7.FORMS */
|
||||
/* 8.BANNER */
|
||||
/* 9.NAVIGATION */
|
||||
/* 10.CONTENT */
|
||||
/* 11.MAIN */
|
||||
/* 12.COMPLIMENTARY */
|
||||
/* 13.CONTENTINFO */
|
||||
/* 14.GLOBAL OBJECTS */
|
||||
/* 15.VENDOR-SPECIFIC */
|
||||
/* 16.TEMPLATE SPECIFICS */
|
||||
/* 17.MODERNIZR */ }
|
||||
/*/mediaquery */
|
||||
/*992px __________________________________________________________________________________________________________ */
|
||||
@media only screen and (min-width: 992px) {
|
||||
/* 1.ROOT */
|
||||
.container {
|
||||
max-width: 890px; }
|
||||
|
||||
/* 2.HEADINGS */
|
||||
/* 3.TYPOGRAPHY */
|
||||
/* 4.LINKS */
|
||||
/* 5.FIGURES & IMAGES */
|
||||
/* 6.TABLES */
|
||||
/* 7.FORMS */
|
||||
/* 8.BANNER */
|
||||
/* 9.NAVIGATION */
|
||||
/* 10.CONTENT */
|
||||
/* 11.MAIN */
|
||||
/* 12.COMPLIMENTARY */
|
||||
/* 13.CONTENTINFO */
|
||||
/* 14.GLOBAL OBJECTS */
|
||||
/* 15.VENDOR-SPECIFIC */
|
||||
/* 16.TEMPLATE SPECIFICS */
|
||||
/* 17.MODERNIZR */ }
|
||||
/*/mediaquery */
|
||||
/*1382px __________________________________________________________________________________________________________ */
|
||||
@media only screen and (min-width: 1382px) {
|
||||
/* 1.ROOT */
|
||||
/* 2.HEADINGS */
|
||||
/* 3.TYPOGRAPHY */
|
||||
/* 4.LINKS */
|
||||
/* 5.FIGURES & IMAGES */
|
||||
/* 6.TABLES */
|
||||
/* 7.FORMS */
|
||||
/* 8.BANNER */
|
||||
/* 9.NAVIGATION */
|
||||
/* 10.CONTENT */
|
||||
/* 11.MAIN */
|
||||
/* 12.COMPLIMENTARY */
|
||||
/* 13.CONTENTINFO */
|
||||
/* 14.GLOBAL OBJECTS */
|
||||
/* 15.VENDOR-SPECIFIC */
|
||||
/* 16.TEMPLATE SPECIFICS */
|
||||
/* 17.MODERNIZR */ }
|
||||
/*/mediaquery */
|
||||
/*2x __________________________________________________________________________________________________________ */
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
|
||||
/* 1.ROOT */
|
||||
/* 2.HEADINGS */
|
||||
/* 3.TYPOGRAPHY */
|
||||
/* 4.LINKS */
|
||||
/* 5.FIGURES & IMAGES */
|
||||
/* 6.TABLES */
|
||||
/* 7.FORMS */
|
||||
/* 8.BANNER */
|
||||
/* 9.NAVIGATION */
|
||||
/* 10.CONTENT */
|
||||
/* 11.MAIN */
|
||||
/* 12.COMPLIMENTARY */
|
||||
/* 13.CONTENTINFO */
|
||||
/* 14.GLOBAL OBJECTS */
|
||||
/* 15.VENDOR-SPECIFIC */
|
||||
/* 16.TEMPLATE SPECIFICS */
|
||||
/* 17.MODERNIZR */ }
|
||||
/*/mediaquery */
|
||||
/* Sources:
|
||||
* http://meyerweb.com/eric/tools/css/reset
|
||||
* http://people.opera.com/patrickl/experiments/keyboard/test
|
||||
* http://gist.github.com/413930
|
||||
* http://pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap
|
||||
* http://sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars
|
||||
* http://tjkdesign.com/ez-css/css/base.css
|
||||
* http://viget.com/inspire/styling-the-button-element-in-internet-explorer
|
||||
* http://code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing
|
||||
* http://html5doctor.com/html-5-reset-stylesheet/
|
||||
* http://praegnanz.de/weblog/htmlcssjs-kickstart/
|
||||
* http://camendesign.com/design/
|
||||
* http://yui.yahooapis.com/2.8.1/build/base/base.css
|
||||
* http://webaim.org/techniques/css/invisiblecontent/
|
||||
* http://drupal.org/node/897638 */
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@ -1,14 +0,0 @@
|
||||
/* the humans responsible & colophon */
|
||||
/* humanstxt.org */
|
||||
|
||||
|
||||
/* TEAM */
|
||||
Designer & Coder: Dan Barber
|
||||
Site: http://danbarber.me
|
||||
Twitter: @danbee
|
||||
Location: UK
|
||||
|
||||
/* SITE */
|
||||
Standards: HTML5, CSS3
|
||||
Components: Modernizr, jQuery
|
||||
Software: Stasis, HAML, SASS, Vim
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 599 B |
|
Before Width: | Height: | Size: 599 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 614 B |
|
Before Width: | Height: | Size: 804 B |
@ -1,238 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
-->
|
||||
<html class='no-js' lang='en' manifest='default.appcache?v=1'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Dan Barber - Web Developer & Designer</title>
|
||||
<meta content='' name='description'>
|
||||
<meta content='' name='author'>
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>
|
||||
<meta content='target-densitydpi=160dpi, initial-scale=1' name='viewport'>
|
||||
<!--
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
-->
|
||||
<!-- For all browsers -->
|
||||
<link href='css/style.css?v=1' rel='stylesheet'>
|
||||
<!-- JavaScript at bottom except for Modernizr and Typekit -->
|
||||
<script src='js/libs/modernizr-1.7.min.js'></script>
|
||||
<!-- Typekit -->
|
||||
<script src='http://use.typekit.com/ewi2mjz.js' type='text/javascript'></script>
|
||||
<script>
|
||||
try{Typekit.load();}catch(e){}
|
||||
</script>
|
||||
<link href='favicon.png' rel='shortcut icon'>
|
||||
<!-- Microsoft. Delete if not required -->
|
||||
<meta content='on' http-equiv='cleartype'>
|
||||
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link href='/' rel='canonical'>
|
||||
</head>
|
||||
<body class='clearfix'>
|
||||
<div id='stripe'>
|
||||
<div class='container'>
|
||||
<canvas height='12' id='colours' width='890'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<header class='clearfix' role='banner'>
|
||||
<div class='container'>
|
||||
<h1 class='icon-logo' id='main_heading'>Dan Barber</h1>
|
||||
<h2>Web Designer & Developer</h2>
|
||||
</div>
|
||||
</header>
|
||||
<div class='content clearfix'>
|
||||
<div role='main'>
|
||||
<div class='container clearfix'>
|
||||
<section id='profile'>
|
||||
<h3>Profile</h3>
|
||||
|
||||
<p>I have 14 years of experience building web sites and web applications, from small simple websites and services to large enterprise level systems. I focus on simple, usable interfaces and prefer to work by prototyping ideas.</p>
|
||||
|
||||
<p>I am detail orientated and I love working alongside others on interesting projects and ideas. I love learning new techniques and technologies and I love simple, elegant, maintainable code.</p>
|
||||
</section>
|
||||
<section id='skills'>
|
||||
<h3>Skills</h3>
|
||||
|
||||
<h4>Web Technologies</h4>
|
||||
|
||||
<ul>
|
||||
<li>HTML5/CSS3</li>
|
||||
<li>Javascript/jQuery</li>
|
||||
<li>Ruby on Rails</li>
|
||||
<li>PHP</li>
|
||||
</ul>
|
||||
|
||||
<h4>Databases</h4>
|
||||
|
||||
<ul>
|
||||
<li>SQL</li>
|
||||
<li>PostgreSQL</li>
|
||||
<li>MySQL</li>
|
||||
<li>SQLite3</li>
|
||||
</ul>
|
||||
|
||||
<h4>Design</h4>
|
||||
|
||||
<ul>
|
||||
<li>Photoshop/GIMP</li>
|
||||
<li>Illustrator</li>
|
||||
<li>InDesign</li>
|
||||
<li>Typography</li>
|
||||
</ul>
|
||||
|
||||
<h4>Linux Servers</h4>
|
||||
|
||||
<ul>
|
||||
<li>Web (Apache)</li>
|
||||
<li>MySQL</li>
|
||||
<li>PostgreSQL</li>
|
||||
<li>DNS</li>
|
||||
<li>Samba</li>
|
||||
</ul>
|
||||
|
||||
<h4>Networking</h4>
|
||||
|
||||
<p>Good knowledge of cabling, routing and protocols.</p>
|
||||
</section>
|
||||
<section id='experience'>
|
||||
<h3>Experience</h3>
|
||||
|
||||
<h4><a href="http://new-bamboo.co.uk">New Bamboo</a></h4>
|
||||
|
||||
<p>Nov 2012 — Present</p>
|
||||
|
||||
<h4><a href="http://pixelhum.com">Pixelhum</a></h4>
|
||||
|
||||
<p>Aug 2010 — Present</p>
|
||||
|
||||
<p>Pixelhum is my own freelance/contract business. I design and build web applications for clients using Ruby on Rails.</p>
|
||||
|
||||
<h4><a href="http://www.webbased.co.uk/webbased">WebBased Ltd</a></h4>
|
||||
|
||||
<p>Dec 2011 — Nov 2012</p>
|
||||
|
||||
<p>Continued development of a CRM product built using Rails 2.3. I moved version control from SVN to git and brought the Rspec test suite up to date.</p>
|
||||
|
||||
<h4><a href="http://www.abiquo.com">Abiquo</a></h4>
|
||||
|
||||
<p>June 2010 — Oct 2011</p>
|
||||
|
||||
<p>Updated and maintained Abiquo’s websites, written in both PHP and Ruby on Rails. This includes the virtual image exchange site Thunderflash (thunderflash.com) which I rebuilt on Rails 3.</p>
|
||||
|
||||
<h4><a href="http://dbsmusic.co.uk">Deep Blue Sound</a></h4>
|
||||
|
||||
<p>Aug 2008 — June 2010</p>
|
||||
|
||||
<p>Administered and augmented the existing web systems including Moodle, SugarCRM and others. Deputised for the System Administrator.</p>
|
||||
|
||||
<h4><a href="http://footworksolutions.co.uk">Footwork Solutions</a></h4>
|
||||
|
||||
<p>Nov 2002 — Aug 2008</p>
|
||||
|
||||
<p>I was a lead developer and designer on the Halo care co-ordination system, including training and documentation and support. I was also the System Administrator for both the local network and remote server farm.</p>
|
||||
|
||||
<h4>Granite Internet</h4>
|
||||
|
||||
<p>2000 — 2002</p>
|
||||
|
||||
<p>Designed and developed and maintained several property company websites based on a single code base. Setup Windows, Linux and FreeBSD servers.</p>
|
||||
|
||||
<h4>North Devon Journal</h4>
|
||||
|
||||
<p>1998 — 2000</p>
|
||||
|
||||
<p>Set advertisements using QuarkXpress and was responsible for laying out the classified pages. Developed a love for typography.</p>
|
||||
</section>
|
||||
</div>
|
||||
<div class='container clearfix'>
|
||||
<section id='portfolio'>
|
||||
<h3>Portfolio</h3>
|
||||
|
||||
<h4><a href="http://www.soundunlimited.co.uk">Soundunlimited</a></h4>
|
||||
|
||||
<p>I built a complete online shop system for a local music shop using Ruby on Rails. Rspec was used for testing.</p>
|
||||
|
||||
<h4><a href="http://pixelhum.com/neompc">NeoMPC</a></h4>
|
||||
|
||||
<p>Web based MPD client. Design and execution. Built using PHP and jQuery and uses mpd.class.php to connect to the MPD server.</p>
|
||||
|
||||
<h4><a href="http://pixelhum.com/portfolio/footwork/">Footwork Solutions</a></h4>
|
||||
|
||||
<p>Company logo and site design. I built the HTML for the Drupal template.</p>
|
||||
|
||||
<h4><a href="http://www.footworksolutions.co.uk">Halo</a></h4>
|
||||
|
||||
<p>Hosted care co-ordination system for drug treatment agencies. Design, initial implementation and ongoing development of key modules.</p>
|
||||
|
||||
<h4><a href="http://danbarberphoto.com">Dan Barber Photo</a></h4>
|
||||
|
||||
<p>My own photography portfolio site. I designed and implemented the site using Ruby on Rails and jQuery, including backend admin pages.</p>
|
||||
|
||||
<h4>My CV</h4>
|
||||
|
||||
<p>My CV is a responsive design built using Stasis, HAML, SASS and Markdown that makes extensive use of HTML5, CSS3, typography and web fonts. The source code is available on <a href="https://github.com/danbee/cv">Github</a>.</p>
|
||||
</section>
|
||||
<section id='interests'>
|
||||
<h3>Interests</h3>
|
||||
|
||||
<ul>
|
||||
<li>Drumming</li>
|
||||
<li>Music</li>
|
||||
<li>Sound Engineering & Recording</li>
|
||||
<li>Photography</li>
|
||||
<li>Cycling</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class='vcard' id='contact'>
|
||||
<h3>Contact</h3>
|
||||
<p class='fn n'>
|
||||
<span class='given-name'>Dan</span>
|
||||
<span class='family-name'>Barber</span>
|
||||
</p>
|
||||
<p>
|
||||
<a class='email' href='mailto:hello@danbarber.me'>hello@danbarber.me</a>
|
||||
</p>
|
||||
<p class='tel'>+44 (0) 1752 546981</p>
|
||||
<p>
|
||||
<a class='url' href='http://pixelhum.com'>http://danbarber.me</a>
|
||||
</p>
|
||||
<p class='icon-github'>
|
||||
<a class='url' href='http://github.com/danbee'>github.com/danbee</a>
|
||||
</p>
|
||||
<p class='icon-twitter'>
|
||||
<a class='url' href='http://twitter.com/danbee'>@danbee</a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div role='complementary'></div>
|
||||
</div>
|
||||
<footer class='clearfix' role='contentinfo'></footer>
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js'></script>
|
||||
<script>
|
||||
window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>') / Scripts
|
||||
</script>
|
||||
<script src='js/plugins.js'></script>
|
||||
<script src='js/script.js'></script>
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-603600-3'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,61 +0,0 @@
|
||||
var imgSizer = {
|
||||
Config : {
|
||||
imgCache : []
|
||||
,spacer : "/path/to/your/spacer.gif"
|
||||
}
|
||||
|
||||
,collate : function(aScope) {
|
||||
var isOldIE = (document.all && !window.opera && !window.XDomainRequest) ? 1 : 0;
|
||||
if (isOldIE && document.getElementsByTagName) {
|
||||
var c = imgSizer;
|
||||
var imgCache = c.Config.imgCache;
|
||||
|
||||
var images = (aScope && aScope.length) ? aScope : document.getElementsByTagName("img");
|
||||
for (var i = 0; i < images.length; i++) {
|
||||
images[i].origWidth = images[i].offsetWidth;
|
||||
images[i].origHeight = images[i].offsetHeight;
|
||||
|
||||
imgCache.push(images[i]);
|
||||
c.ieAlpha(images[i]);
|
||||
images[i].style.width = "100%";
|
||||
}
|
||||
|
||||
if (imgCache.length) {
|
||||
c.resize(function() {
|
||||
for (var i = 0; i < imgCache.length; i++) {
|
||||
var ratio = (imgCache[i].offsetWidth / imgCache[i].origWidth);
|
||||
imgCache[i].style.height = (imgCache[i].origHeight * ratio) + "px";
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
,ieAlpha : function(img) {
|
||||
var c = imgSizer;
|
||||
if (img.oldSrc) {
|
||||
img.src = img.oldSrc;
|
||||
}
|
||||
var src = img.src;
|
||||
img.style.width = img.offsetWidth + "px";
|
||||
img.style.height = img.offsetHeight + "px";
|
||||
img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"
|
||||
img.oldSrc = src;
|
||||
img.src = c.Config.spacer;
|
||||
}
|
||||
|
||||
// Ghettomodified version of Simon Willison's addLoadEvent() -- http://simonwillison.net/2004/May/26/addLoadEvent/
|
||||
,resize : function(func) {
|
||||
var oldonresize = window.onresize;
|
||||
if (typeof window.onresize != 'function') {
|
||||
window.onresize = func;
|
||||
} else {
|
||||
window.onresize = function() {
|
||||
if (oldonresize) {
|
||||
oldonresize();
|
||||
}
|
||||
func();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
16
public/js/libs/jquery-1.5.1.min.js
vendored
2
public/js/libs/modernizr-1.7.min.js
vendored
7
public/js/libs/respond.min.js
vendored
@ -1,7 +0,0 @@
|
||||
/*
|
||||
* respond.js - A small and fast polyfill for min/max-width CSS3 Media Queries
|
||||
* Copyright 2011, Scott Jehl, scottjehl.com
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* Usage: Check out the readme file or github.com/scottjehl/respond
|
||||
*/
|
||||
(function(e,h){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=h;if(h){return}var u=e.document,r=u.documentElement,i=[],k=[],p=[],o={},g=30,f=u.getElementsByTagName("head")[0]||r,b=f.getElementsByTagName("link"),d=[],a=function(){var B=b,w=B.length;for(var z=0;z<w;z++){var y=B[z],x=y.href,A=y.media,v=y.rel&&y.rel.toLowerCase()==="stylesheet";if(!!x&&v&&!o[x]){if(!/^([a-zA-Z]+?:(\/\/)?(www\.)?)/.test(x)||x.replace(RegExp.$1,"").split("/")[0]===e.location.host){d.push({href:x,media:A})}else{o[x]=true}}}t()},t=function(){if(d.length){var v=d.shift();n(v.href,function(w){m(w,v.href,v.media);o[v.href]=true;t()})}},m=function(G,v,x){var E=G.match(/@media ([^\{]+)\{([\S\s]+?)(?=\}\/\*\/mediaquery\*\/)/gmi),H=E&&E.length||0,v=v.substring(0,v.lastIndexOf("/")),w=function(I){return I.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+v+"$2$3")},y=!H&&x;if(v.length){v+="/"}if(y){H=1}for(var B=0;B<H;B++){var C;if(y){C=x;k.push(w(G))}else{C=E[B].match(/@media ([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1;k.push(RegExp.$2&&w(RegExp.$2))}var z=C.split(","),F=z.length;for(var A=0;A<F;A++){var D=z[A];i.push({media:D.match(/(only\s+)?([a-zA-Z]+)(\sand)?/)&&RegExp.$2,rules:k.length-1,minw:D.match(/\(min\-width:\s?(\s?[0-9]+)px\s?\)/)&&parseFloat(RegExp.$1),maxw:D.match(/\(max\-width:\s?(\s?[0-9]+)px\s?\)/)&&parseFloat(RegExp.$1)})}}j()},l,q,j=function(E){var v="clientWidth",x=r[v],D=u.compatMode==="CSS1Compat"&&x||u.body[v]||x,z={},C=u.createDocumentFragment(),B=b[b.length-1],w=(new Date()).getTime();if(E&&l&&w-l<g){clearTimeout(q);q=setTimeout(j,g);return}else{l=w}for(var y in i){var F=i[y];if(!F.minw&&!F.maxw||(!F.minw||F.minw&&D>=F.minw)&&(!F.maxw||F.maxw&&D<=F.maxw)){if(!z[F.media]){z[F.media]=[]}z[F.media].push(k[F.rules])}}for(var y in p){if(p[y]&&p[y].parentNode===f){f.removeChild(p[y])}}for(var y in z){var G=u.createElement("style"),A=z[y].join("\n");G.type="text/css";G.media=y;if(G.styleSheet){G.styleSheet.cssText=A}else{G.appendChild(u.createTextNode(A))}C.appendChild(G);p.push(G)}f.insertBefore(C,B.nextSibling)},n=function(v,x){var w=c();if(!w){return}w.open("GET",v,true);w.onreadystatechange=function(){if(w.readyState!=4||w.status!=200&&w.status!=304){return}x(w.responseText)};if(w.readyState==4){return}w.send()},c=(function(){var v=false,w=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new XMLHttpRequest()}],y=w.length;while(y--){try{v=w[y]()}catch(x){continue}break}return function(){return v}})();a();respond.update=a;function s(){j(true)}if(e.addEventListener){e.addEventListener("resize",s,false)}else{if(e.attachEvent){e.attachEvent("onresize",s)}}})(this,(function(g){if(g.matchMedia){return true}var c,f=document,a=f.documentElement,b=a.firstElementChild||a.firstChild,e=f.createElement("body"),h=f.createElement("div"),d="only all";h.id="mq-test-1";h.style.cssText="position:absolute;top:-99em";e.appendChild(h);h.innerHTML='_<style media="'+d+'"> #mq-test-1 { width: 9px; }</style>';a.insertBefore(e,b);h.removeChild(h.firstChild);c=h.offsetWidth==9;a.removeChild(e);return c})(this));
|
||||
@ -1,278 +0,0 @@
|
||||
/*
|
||||
* respond.js - A small and fast polyfill for min/max-width CSS3 Media Queries
|
||||
* Copyright 2011, Scott Jehl, scottjehl.com
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* Usage: Check out the readme file or github.com/scottjehl/respond
|
||||
*/
|
||||
(function( win, mqSupported ){
|
||||
//exposed namespace
|
||||
win.respond = {};
|
||||
|
||||
//define update even in native-mq-supporting browsers, to avoid errors
|
||||
respond.update = function(){};
|
||||
|
||||
//expose media query support flag for external use
|
||||
respond.mediaQueriesSupported = mqSupported;
|
||||
|
||||
//if media queries are supported, exit here
|
||||
if( mqSupported ){ return; }
|
||||
|
||||
//define vars
|
||||
var doc = win.document,
|
||||
docElem = doc.documentElement,
|
||||
mediastyles = [],
|
||||
rules = [],
|
||||
appendedEls = [],
|
||||
parsedSheets = {},
|
||||
resizeThrottle = 30,
|
||||
head = doc.getElementsByTagName( "head" )[0] || docElem,
|
||||
links = head.getElementsByTagName( "link" ),
|
||||
requestQueue = [],
|
||||
|
||||
//loop stylesheets, send text content to translate
|
||||
ripCSS = function(){
|
||||
var sheets = links,
|
||||
sl = sheets.length;
|
||||
|
||||
for( var i = 0; i < sl; i++ ){
|
||||
var sheet = sheets[ i ],
|
||||
href = sheet.href,
|
||||
media = sheet.media,
|
||||
isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
|
||||
|
||||
//only links plz and prevent re-parsing
|
||||
if( !!href && isCSS && !parsedSheets[ href ] ){
|
||||
if( !/^([a-zA-Z]+?:(\/\/)?(www\.)?)/.test( href )
|
||||
|| href.replace( RegExp.$1, "" ).split( "/" )[0] === win.location.host ){
|
||||
requestQueue.push( {
|
||||
href: href,
|
||||
media: media
|
||||
} );
|
||||
}
|
||||
else{
|
||||
parsedSheets[ href ] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
makeRequests();
|
||||
|
||||
},
|
||||
|
||||
//recurse through request queue, get css text
|
||||
makeRequests = function(){
|
||||
if( requestQueue.length ){
|
||||
var thisRequest = requestQueue.shift();
|
||||
|
||||
ajax( thisRequest.href, function( styles ){
|
||||
translate( styles, thisRequest.href, thisRequest.media );
|
||||
parsedSheets[ thisRequest.href ] = true;
|
||||
makeRequests();
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
//find media blocks in css text, convert to style blocks
|
||||
translate = function( styles, href, media ){
|
||||
var qs = styles.match( /@media ([^\{]+)\{([\S\s]+?)(?=\}\/\*\/mediaquery\*\/)/gmi ),
|
||||
ql = qs && qs.length || 0,
|
||||
//try to get CSS path
|
||||
href = href.substring( 0, href.lastIndexOf( "/" )),
|
||||
repUrls = function( css ){
|
||||
return css.replace( /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3" );
|
||||
},
|
||||
useMedia = !ql && media;
|
||||
|
||||
//if path exists, tack on trailing slash
|
||||
if( href.length ){ href += "/"; }
|
||||
|
||||
//if no internal queries exist, but media attr does, use that
|
||||
//note: this currently lacks support for situations where a media attr is specified on a link AND
|
||||
//its associated stylesheet has internal CSS media queries.
|
||||
//In those cases, the media attribute will currently be ignored.
|
||||
if( useMedia ){
|
||||
ql = 1;
|
||||
}
|
||||
|
||||
|
||||
for( var i = 0; i < ql; i++ ){
|
||||
var fullq;
|
||||
|
||||
//media attr
|
||||
if( useMedia ){
|
||||
fullq = media;
|
||||
rules.push( repUrls( styles ) );
|
||||
}
|
||||
//parse for styles
|
||||
else{
|
||||
fullq = qs[ i ].match( /@media ([^\{]+)\{([\S\s]+?)$/ ) && RegExp.$1;
|
||||
rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
|
||||
}
|
||||
|
||||
var eachq = fullq.split( "," ),
|
||||
eql = eachq.length;
|
||||
|
||||
for( var j = 0; j < eql; j++ ){
|
||||
var thisq = eachq[ j ];
|
||||
mediastyles.push( {
|
||||
media : thisq.match( /(only\s+)?([a-zA-Z]+)(\sand)?/ ) && RegExp.$2,
|
||||
rules : rules.length - 1,
|
||||
minw : thisq.match( /\(min\-width:\s?(\s?[0-9]+)px\s?\)/ ) && parseFloat( RegExp.$1 ),
|
||||
maxw : thisq.match( /\(max\-width:\s?(\s?[0-9]+)px\s?\)/ ) && parseFloat( RegExp.$1 )
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
applyMedia();
|
||||
},
|
||||
|
||||
lastCall,
|
||||
|
||||
resizeDefer,
|
||||
|
||||
//enable/disable styles
|
||||
applyMedia = function( fromResize ){
|
||||
var name = "clientWidth",
|
||||
docElemProp = docElem[ name ],
|
||||
currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
|
||||
styleBlocks = {},
|
||||
dFrag = doc.createDocumentFragment(),
|
||||
lastLink = links[ links.length-1 ],
|
||||
now = (new Date()).getTime();
|
||||
|
||||
//throttle resize calls
|
||||
if( fromResize && lastCall && now - lastCall < resizeThrottle ){
|
||||
clearTimeout( resizeDefer );
|
||||
resizeDefer = setTimeout( applyMedia, resizeThrottle );
|
||||
return;
|
||||
}
|
||||
else {
|
||||
lastCall = now;
|
||||
}
|
||||
|
||||
for( var i in mediastyles ){
|
||||
var thisstyle = mediastyles[ i ];
|
||||
if( !thisstyle.minw && !thisstyle.maxw ||
|
||||
( !thisstyle.minw || thisstyle.minw && currWidth >= thisstyle.minw ) &&
|
||||
(!thisstyle.maxw || thisstyle.maxw && currWidth <= thisstyle.maxw ) ){
|
||||
if( !styleBlocks[ thisstyle.media ] ){
|
||||
styleBlocks[ thisstyle.media ] = [];
|
||||
}
|
||||
styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
|
||||
}
|
||||
}
|
||||
|
||||
//remove any existing respond style element(s)
|
||||
for( var i in appendedEls ){
|
||||
if( appendedEls[ i ] && appendedEls[ i ].parentNode === head ){
|
||||
head.removeChild( appendedEls[ i ] );
|
||||
}
|
||||
}
|
||||
|
||||
//inject active styles, grouped by media type
|
||||
for( var i in styleBlocks ){
|
||||
var ss = doc.createElement( "style" ),
|
||||
css = styleBlocks[ i ].join( "\n" );
|
||||
|
||||
ss.type = "text/css";
|
||||
ss.media = i;
|
||||
|
||||
if ( ss.styleSheet ){
|
||||
ss.styleSheet.cssText = css;
|
||||
}
|
||||
else {
|
||||
ss.appendChild( doc.createTextNode( css ) );
|
||||
}
|
||||
dFrag.appendChild( ss );
|
||||
appendedEls.push( ss );
|
||||
}
|
||||
|
||||
//append to DOM at once
|
||||
head.insertBefore( dFrag, lastLink.nextSibling );
|
||||
},
|
||||
//tweaked Ajax functions from Quirksmode
|
||||
ajax = function( url, callback ) {
|
||||
var req = xmlHttp();
|
||||
if (!req){
|
||||
return;
|
||||
}
|
||||
req.open( "GET", url, true );
|
||||
req.onreadystatechange = function () {
|
||||
if ( req.readyState != 4 || req.status != 200 && req.status != 304 ){
|
||||
return;
|
||||
}
|
||||
callback( req.responseText );
|
||||
}
|
||||
if ( req.readyState == 4 ){
|
||||
return;
|
||||
}
|
||||
req.send();
|
||||
},
|
||||
//define ajax obj
|
||||
xmlHttp = (function() {
|
||||
var xmlhttpmethod = false,
|
||||
attempts = [
|
||||
function(){ return new ActiveXObject("Microsoft.XMLHTTP") },
|
||||
function(){ return new ActiveXObject("Msxml3.XMLHTTP") },
|
||||
function(){ return new ActiveXObject("Msxml2.XMLHTTP") },
|
||||
function(){ return new XMLHttpRequest() }
|
||||
],
|
||||
al = attempts.length;
|
||||
|
||||
while( al-- ){
|
||||
try {
|
||||
xmlhttpmethod = attempts[ al ]();
|
||||
}
|
||||
catch(e) {
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return function(){
|
||||
return xmlhttpmethod;
|
||||
};
|
||||
})();
|
||||
|
||||
//translate CSS
|
||||
ripCSS();
|
||||
|
||||
//expose update for re-running respond later on
|
||||
respond.update = ripCSS;
|
||||
|
||||
//adjust on resize
|
||||
function callMedia(){
|
||||
applyMedia( true );
|
||||
}
|
||||
if( win.addEventListener ){
|
||||
win.addEventListener( "resize", callMedia, false );
|
||||
}
|
||||
else if( win.attachEvent ){
|
||||
win.attachEvent( "onresize", callMedia );
|
||||
}
|
||||
})(
|
||||
this,
|
||||
(function( win ){
|
||||
|
||||
//for speed, flag browsers with window.matchMedia support and IE 9 as supported
|
||||
if( win.matchMedia ){ return true; }
|
||||
|
||||
var bool,
|
||||
doc = document,
|
||||
docElem = doc.documentElement,
|
||||
refNode = docElem.firstElementChild || docElem.firstChild,
|
||||
// fakeBody required for <FF4 when executed in <head>
|
||||
fakeBody = doc.createElement( "body" ),
|
||||
div = doc.createElement( "div" ),
|
||||
q = "only all";
|
||||
|
||||
div.id = "mq-test-1";
|
||||
div.style.cssText = "position:absolute;top:-99em";
|
||||
fakeBody.appendChild( div );
|
||||
|
||||
div.innerHTML = '_<style media="'+q+'"> #mq-test-1 { width: 9px; }</style>';
|
||||
docElem.insertBefore( fakeBody, refNode );
|
||||
div.removeChild( div.firstChild );
|
||||
bool = div.offsetWidth == 9;
|
||||
docElem.removeChild( fakeBody );
|
||||
return bool;
|
||||
})( this )
|
||||
);
|
||||
@ -1,5 +0,0 @@
|
||||
/*!
|
||||
* selectivizr v1.0.1 - (c) Keith Clark, freely distributable under the terms of the MIT license.
|
||||
* selectivizr.com
|
||||
*/
|
||||
var k=true,p=false;(function(A){function N(a){return a.replace(O,q).replace(P,function(b,e,c){b=c.split(",");c=0;for(var g=b.length;c<g;c++){var h=Q(b[c].replace(R,q).replace(S,q))+w,f=[];b[c]=h.replace(T,function(d,l,m,j,i){if(l){if(f.length>0){d=f;var x;i=h.substring(0,i).replace(U,o);if(i==o||i.charAt(i.length-1)==w)i+="*";try{x=y(i)}catch(ha){}if(x){i=0;for(m=x.length;i<m;i++){j=x[i];for(var B=j.className,C=0,V=d.length;C<V;C++){var r=d[C];if(!RegExp("(^|\\s)"+r.className+"(\\s|$)").test(j.className))if(r.b&&(r.b===k||r.b(j)===k))B=E(B,r.className,k)}j.className=B}}f=[]}return l}else{if(l=m?W(m):!F||F.test(j)?{className:G(j),b:k}:null){f.push(l);return"."+l.className}return d}})}return e+b.join(",")})}function W(a){var b=k,e=G(a.slice(1)),c=a.substring(0,5)==":not(",g,h;if(c)a=a.slice(5,-1);var f=a.indexOf("(");if(f>-1)a=a.substring(0,f);if(a.charAt(0)==":")switch(a.slice(1)){case "root":b=function(d){return c?d!=H:d==H};break;case "target":if(s==8){b=function(d){function l(){var m=location.hash,j=m.slice(1);return c?m==""||d.id!=j:m!=""&&d.id==j}t(A,"hashchange",function(){u(d,e,l())});return l()};break}return p;case "checked":b=function(d){X.test(d.type)&&t(d,"propertychange",function(){event.propertyName=="checked"&&u(d,e,d.checked!==c)});return d.checked!==c};break;case "disabled":c=!c;case "enabled":b=function(d){if(Y.test(d.tagName)){t(d,"propertychange",function(){event.propertyName=="$disabled"&&u(d,e,d.a===c)});z.push(d);d.a=d.disabled;return d.disabled===c}return a==":enabled"?c:!c};break;case "focus":g="focus";h="blur";case "hover":if(!g){g="mouseenter";h="mouseleave"}b=function(d){t(d,c?h:g,function(){u(d,e,k)});t(d,c?g:h,function(){u(d,e,p)});return c};break;default:if(!Z.test(a))return p}return{className:e,b:b}}function G(a){return I+"-"+(s==6&&$?aa++:a.replace(ba,function(b){return b.charCodeAt(0)}))}function Q(a){return a.replace(J,q).replace(ca,w)}function u(a,b,e){var c=a.className;b=E(c,b,e);if(b!=c){a.className=b;a.parentNode.className+=o}}function E(a,b,e){var c=RegExp("(^|\\s)"+b+"(\\s|$)"),g=c.test(a);return e?g?a:a+w+b:g?a.replace(c,q).replace(J,q):a}function t(a,b,e){a.attachEvent("on"+b,e)}function D(a,b){if(/^https?:\/\//i.test(a))return b.substring(0,b.indexOf("/",8))==a.substring(0,a.indexOf("/",8))?a:null;if(a.charAt(0)=="/")return b.substring(0,b.indexOf("/",8))+a;var e=b.split("?")[0];if(a.charAt(0)!="?"&&e.charAt(e.length-1)!="/")e=e.substring(0,e.lastIndexOf("/")+1);return e+a}function K(a){if(a){v.open("GET",a,p);v.send();return(v.status==200?v.responseText:o).replace(da,o).replace(ea,function(b,e,c,g,h){return K(D(c||h,a))}).replace(fa,function(b,e,c){e=e||"";return" url("+e+D(c,a)+e+") "})}return o}function ga(){var a,b;a=n.getElementsByTagName("BASE");for(var e=a.length>0?a[0].href:n.location.href,c=0;c<n.styleSheets.length;c++){b=n.styleSheets[c];if(b.href!=o)if(a=D(b.href,e))b.cssText=N(K(a))}z.length>0&&setInterval(function(){for(var g=0,h=z.length;g<h;g++){var f=z[g];if(f.disabled!==f.a)if(f.disabled){f.disabled=p;f.a=k;f.disabled=k}else f.a=f.disabled}},250)}if(!/*@cc_on!@*/true){var n=document,H=n.documentElement,v=function(){if(A.XMLHttpRequest)return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(a){return null}}(),s=/MSIE ([\d])/.exec(navigator.userAgent)[1];if(!(n.compatMode!="CSS1Compat"||s<6||s>8||!v)){var L={NW:"*.Dom.select",DOMAssistant:"*.$",Prototype:"$$",YAHOO:"*.util.Selector.query",MooTools:"$$",Sizzle:"*",jQuery:"*",dojo:"*.query"},y,z=[],aa=0,$=k,I="slvzr",M=I+"DOMReady",da=/(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*/g,ea=/@import\s*(?:(?:(?:url\(\s*(['"]?)(.*)\1)\s*\))|(?:(['"])(.*)\3))[^;]*;/g,fa=/\burl\(\s*(["']?)([^"')]+)\1\s*\)/g,Z=/^:(empty|(first|last|only|nth(-last)?)-(child|of-type))$/,O=/:(:first-(?:line|letter))/g,P=/(^|})\s*([^\{]*?[\[:][^{]+)/g,T=/([ +~>])|(:[a-z-]+(?:\(.*?\)+)?)|(\[.*?\])/g,U=/(:not\()?:(hover|enabled|disabled|focus|checked|target|active|visited|first-line|first-letter)\)?/g,ba=/[^\w-]/g,Y=/^(INPUT|SELECT|TEXTAREA|BUTTON)$/,X=/^(checkbox|radio)$/,F=s>6?/[\$\^*]=(['"])\1/:null,R=/([(\[+~])\s+/g,S=/\s+([)\]+~])/g,ca=/\s+/g,J=/^\s*((?:[\S\s]*\S)?)\s*$/,o="",w=" ",q="$1";n.write("<script id="+M+" defer src='//:'><\/script>");n.getElementById(M).onreadystatechange=function(){if(this.readyState=="complete"){a:{var a,b;for(b in L)if(A[b]&&(a=eval(L[b].replace("*",b)))){y=a;break a}y=p}if(y){ga();this.parentNode.removeChild(this)}}}}}})(this);
|
||||
@ -1,121 +0,0 @@
|
||||
/*
|
||||
* MBP - Mobile boilerplate helper functions
|
||||
*/
|
||||
|
||||
|
||||
window.MBP = window.MBP || {};
|
||||
|
||||
// Hide URL Bar for iOS
|
||||
// http://remysharp.com/2010/08/05/doing-it-right-skipping-the-iphone-url-bar/
|
||||
|
||||
MBP.hideUrlBar = function () {
|
||||
/mobile/i.test(navigator.userAgent) && !pageYOffset && !location.hash && setTimeout(function () {
|
||||
window.scrollTo(0, 1);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
|
||||
// Fast Buttons
|
||||
// http://code.google.com/mobile/articles/fast_buttons.html
|
||||
|
||||
MBP.fastButton = function (element, handler) {
|
||||
this.element = element;
|
||||
this.handler = handler;
|
||||
element.addEventListener('touchstart', this, false);
|
||||
element.addEventListener('click', this, false);
|
||||
};
|
||||
|
||||
MBP.fastButton.prototype.handleEvent = function(event) {
|
||||
switch (event.type) {
|
||||
case 'touchstart': this.onTouchStart(event); break;
|
||||
case 'touchmove': this.onTouchMove(event); break;
|
||||
case 'touchend': this.onClick(event); break;
|
||||
case 'click': this.onClick(event); break;
|
||||
}
|
||||
};
|
||||
|
||||
MBP.fastButton.prototype.onTouchStart = function(event) {
|
||||
event.stopPropagation();
|
||||
this.element.addEventListener('touchend', this, false);
|
||||
document.body.addEventListener('touchmove', this, false);
|
||||
this.startX = event.touches[0].clientX;
|
||||
this.startY = event.touches[0].clientY;
|
||||
this.element.style.backgroundColor = "rgba(0,0,0,.7)";
|
||||
};
|
||||
|
||||
MBP.fastButton.prototype.onTouchMove = function(event) {
|
||||
if(Math.abs(event.touches[0].clientX - this.startX) > 10 || Math.abs(event.touches[0].clientY - this.startY) > 10) {
|
||||
this.reset();
|
||||
}
|
||||
};
|
||||
MBP.fastButton.prototype.onClick = function(event) {
|
||||
event.stopPropagation();
|
||||
this.reset();
|
||||
this.handler(event);
|
||||
if(event.type == 'touchend') {
|
||||
MBP.preventGhostClick(this.startX, this.startY);
|
||||
}
|
||||
this.element.style.backgroundColor = "";
|
||||
};
|
||||
MBP.fastButton.prototype.reset = function() {
|
||||
this.element.removeEventListener('touchend', this, false);
|
||||
document.body.removeEventListener('touchmove', this, false);
|
||||
this.element.style.backgroundColor = "";
|
||||
};
|
||||
MBP.preventGhostClick = function (x, y) {
|
||||
MBP.coords.push(x, y);
|
||||
window.setTimeout(function (){
|
||||
MBP.coords.splice(0, 2);
|
||||
}, 2500);
|
||||
};
|
||||
;
|
||||
MBP.ghostClickHandler = function (event) {
|
||||
for(var i = 0, len = MBP.coords.length; i < len; i += 2) {
|
||||
var x = MBP.coords[i];
|
||||
var y = MBP.coords[i + 1];
|
||||
if(Math.abs(event.clientX - x) < 25 && Math.abs(event.clientY - y) < 25) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
};
|
||||
document.addEventListener('click', MBP.ghostClickHandler, true);
|
||||
MBP.coords = [];
|
||||
|
||||
|
||||
// iOS Startup Image
|
||||
// https://github.com/shichuan/mobile-html5-boilerplate/issues#issue/2
|
||||
|
||||
MBP.splash = function () {
|
||||
var filename = navigator.platform === 'iPad' ? 'h/' : 'l/';
|
||||
document.write('<link rel="apple-touch-startup-image" href="/img/' + filename + 'splash.png" />' );
|
||||
}
|
||||
|
||||
|
||||
// Autogrow
|
||||
// http://googlecode.blogspot.com/2009/07/gmail-for-mobile-html5-series.html
|
||||
|
||||
MBP.autogrow = function (element, lh) {
|
||||
|
||||
function handler(e){
|
||||
var newHeight = this.scrollHeight,
|
||||
currentHeight = this.clientHeight;
|
||||
if (newHeight > currentHeight) {
|
||||
this.style.height = newHeight + 3 * textLineHeight + "px";
|
||||
}
|
||||
}
|
||||
|
||||
var setLineHeight = (lh) ? lh : 12,
|
||||
textLineHeight = element.currentStyle ? element.currentStyle.lineHeight :
|
||||
getComputedStyle(element, null).lineHeight;
|
||||
|
||||
textLineHeight = (textLineHeight.indexOf("px") == -1) ? setLineHeight :
|
||||
parseInt(textLineHeight, 10);
|
||||
|
||||
element.style.overflow = "hidden";
|
||||
element.addEventListener ? element.addEventListener('keyup', handler, false) :
|
||||
element.attachEvent('onkeyup', handler);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,151 +0,0 @@
|
||||
// Plugins
|
||||
|
||||
// usage: log('inside coolFunc', this, arguments);
|
||||
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
|
||||
window.log = function(){
|
||||
log.history = log.history || []; // store logs to an array for reference
|
||||
log.history.push(arguments);
|
||||
arguments.callee = arguments.callee.caller;
|
||||
if(this.console) console.log( Array.prototype.slice.call(arguments) );
|
||||
};
|
||||
|
||||
// make it safe to use console.log always
|
||||
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info, log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();)b[a]=b[a]||c})(window.console=window.console||{});
|
||||
|
||||
// jQuery/helper plugins
|
||||
|
||||
/*!
|
||||
* HTML5 Placeholder jQuery Plugin v1.8.2
|
||||
* @link http://github.com/mathiasbynens/Placeholder-jQuery-Plugin
|
||||
* @author Mathias Bynens <http://mathiasbynens.be/>
|
||||
*/
|
||||
|
||||
;(function($) {
|
||||
|
||||
var isInputSupported = 'placeholder' in document.createElement('input'),
|
||||
isTextareaSupported = 'placeholder' in document.createElement('textarea');
|
||||
if (isInputSupported && isTextareaSupported) {
|
||||
$.fn.placeholder = function() {
|
||||
return this;
|
||||
};
|
||||
$.fn.placeholder.input = $.fn.placeholder.textarea = true;
|
||||
} else {
|
||||
$.fn.placeholder = function() {
|
||||
return this.filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
|
||||
.bind('focus.placeholder', clearPlaceholder)
|
||||
.bind('blur.placeholder', setPlaceholder)
|
||||
.trigger('blur.placeholder').end();
|
||||
};
|
||||
$.fn.placeholder.input = isInputSupported;
|
||||
$.fn.placeholder.textarea = isTextareaSupported;
|
||||
}
|
||||
|
||||
function args(elem) {
|
||||
// Return an object of element attributes
|
||||
var newAttrs = {},
|
||||
rinlinejQuery = /^jQuery\d+$/;
|
||||
$.each(elem.attributes, function(i, attr) {
|
||||
if (attr.specified && !rinlinejQuery.test(attr.name)) {
|
||||
newAttrs[attr.name] = attr.value;
|
||||
}
|
||||
});
|
||||
return newAttrs;
|
||||
}
|
||||
|
||||
function clearPlaceholder() {
|
||||
var $input = $(this);
|
||||
if ($input.val() === $input.attr('placeholder') && $input.hasClass('placeholder')) {
|
||||
if ($input.data('placeholder-password')) {
|
||||
$input.hide().next().attr('id', $input.removeAttr('id').data('placeholder-id')).show().focus();
|
||||
} else {
|
||||
$input.val('').removeClass('placeholder');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setPlaceholder(elem) {
|
||||
var $replacement,
|
||||
$input = $(this),
|
||||
$origInput = $input,
|
||||
id = this.id;
|
||||
if ($input.val() === '') {
|
||||
if ($input.is(':password')) {
|
||||
if (!$input.data('placeholder-textinput')) {
|
||||
try {
|
||||
$replacement = $input.clone().attr({ type: 'text' });
|
||||
} catch(e) {
|
||||
$replacement = $('<input>').attr($.extend(args(this), { type: 'text' }));
|
||||
}
|
||||
$replacement
|
||||
.removeAttr('name')
|
||||
// We could just use the `.data(obj)` syntax here, but that wouldn’t work in pre-1.4.3 jQueries
|
||||
.data('placeholder-password', true)
|
||||
.data('placeholder-id', id)
|
||||
.bind('focus.placeholder', clearPlaceholder);
|
||||
$input
|
||||
.data('placeholder-textinput', $replacement)
|
||||
.data('placeholder-id', id)
|
||||
.before($replacement);
|
||||
}
|
||||
$input = $input.removeAttr('id').hide().prev().attr('id', id).show();
|
||||
}
|
||||
$input.addClass('placeholder').val($input.attr('placeholder'));
|
||||
} else {
|
||||
$input.removeClass('placeholder');
|
||||
}
|
||||
}
|
||||
|
||||
$(function() {
|
||||
// Look for forms
|
||||
$('form').bind('submit.placeholder', function() {
|
||||
// Clear the placeholder values so they don’t get submitted
|
||||
var $inputs = $('.placeholder', this).each(clearPlaceholder);
|
||||
setTimeout(function() {
|
||||
$inputs.each(setPlaceholder);
|
||||
}, 10);
|
||||
});
|
||||
});
|
||||
|
||||
// Clear placeholder values upon page reload
|
||||
$(window).bind('unload.placeholder', function() {
|
||||
$('.placeholder').val('');
|
||||
});
|
||||
|
||||
}(jQuery));
|
||||
|
||||
/*global jQuery */
|
||||
/*!
|
||||
* FitText.js 1.0
|
||||
*
|
||||
* Copyright 2011, Dave Rupert http://daverupert.com
|
||||
* Released under the WTFPL license
|
||||
* http://sam.zoy.org/wtfpl/
|
||||
*
|
||||
* Date: Thu May 05 14:23:00 2011 -0600
|
||||
*/
|
||||
|
||||
(function( $ ){
|
||||
|
||||
$.fn.fitText = function( kompressor ) {
|
||||
|
||||
return this.each(function(){
|
||||
var $this = $(this); // store the object
|
||||
var origFontSize = parseFloat($this.css('font-size')); // init the font sizes
|
||||
var compressor = kompressor || 1; // set the compressor
|
||||
|
||||
// Resizer() resizes items based on the object width divided by the compressor * 10
|
||||
var resizer = function () {
|
||||
$this.css('font-size', Math.min($this.width() / (compressor*10), origFontSize));
|
||||
};
|
||||
|
||||
// Call once to set.
|
||||
resizer();
|
||||
|
||||
// Call on resize. Opera debounces their resize by default.
|
||||
$(window).resize(resizer);
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
})( jQuery );
|
||||
@ -1,31 +0,0 @@
|
||||
(function() {
|
||||
var viewportmeta;
|
||||
|
||||
if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {
|
||||
viewportmeta = document.querySelectorAll("meta[name=\"viewport\"]")[0];
|
||||
if (viewportmeta) {
|
||||
viewportmeta.content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
|
||||
document.body.addEventListener("gesturestart", (function() {
|
||||
return viewportmeta.content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
|
||||
}), false);
|
||||
}
|
||||
}
|
||||
|
||||
$(function() {
|
||||
var canvas, colour, colours, context, offset, _i, _len, _results;
|
||||
|
||||
canvas = document.getElementById("colours");
|
||||
context = canvas.getContext("2d");
|
||||
colours = ['#FF6205', '#8ED600', '#00BAEB'];
|
||||
offset = 0;
|
||||
_results = [];
|
||||
for (_i = 0, _len = colours.length; _i < _len; _i++) {
|
||||
colour = colours[_i];
|
||||
context.fillStyle = colour;
|
||||
context.fillRect(offset, 0, 72, 12);
|
||||
_results.push(offset += 72);
|
||||
}
|
||||
return _results;
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
@ -1,89 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
-->
|
||||
<html class='no-js' lang='en' manifest='default.appcache?v=1'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Dan Barber - Web Developer & Designer</title>
|
||||
<meta content='' name='description'>
|
||||
<meta content='' name='author'>
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>
|
||||
<meta content='target-densitydpi=160dpi, initial-scale=1' name='viewport'>
|
||||
<!--
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
-->
|
||||
<!-- For all browsers -->
|
||||
<link href='css/style.css?v=1' rel='stylesheet'>
|
||||
<!-- JavaScript at bottom except for Modernizr and Typekit -->
|
||||
<script src='js/libs/modernizr-1.7.min.js'></script>
|
||||
<!-- Typekit -->
|
||||
<script src='http://use.typekit.com/ewi2mjz.js' type='text/javascript'></script>
|
||||
<script>
|
||||
try{Typekit.load();}catch(e){}
|
||||
</script>
|
||||
<link href='favicon.png' rel='shortcut icon'>
|
||||
<!-- Microsoft. Delete if not required -->
|
||||
<meta content='on' http-equiv='cleartype'>
|
||||
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link href='/' rel='canonical'>
|
||||
</head>
|
||||
<body class='clearfix'>
|
||||
<div id='stripe'>
|
||||
<div class='container'>
|
||||
<canvas height='12' id='colours' width='890'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<header class='clearfix' role='banner'>
|
||||
<div class='container'>
|
||||
<h1 class='icon-logo' id='main_heading'>Dan Barber</h1>
|
||||
<h2>Web Designer & Developer</h2>
|
||||
</div>
|
||||
</header>
|
||||
<h3>Contact</h3>
|
||||
<p class='fn n'>
|
||||
<span class='given-name'>Dan</span>
|
||||
<span class='family-name'>Barber</span>
|
||||
</p>
|
||||
<p>
|
||||
<a class='email' href='mailto:hello@danbarber.me'>hello@danbarber.me</a>
|
||||
</p>
|
||||
<p class='tel'>+44 (0) 1752 546981</p>
|
||||
<p>
|
||||
<a class='url' href='http://pixelhum.com'>http://danbarber.me</a>
|
||||
</p>
|
||||
<p class='icon-github'>
|
||||
<a class='url' href='http://github.com/danbee'>github.com/danbee</a>
|
||||
</p>
|
||||
<p class='icon-twitter'>
|
||||
<a class='url' href='http://twitter.com/danbee'>@danbee</a>
|
||||
</p>
|
||||
<footer class='clearfix' role='contentinfo'></footer>
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js'></script>
|
||||
<script>
|
||||
window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>') / Scripts
|
||||
</script>
|
||||
<script src='js/plugins.js'></script>
|
||||
<script src='js/script.js'></script>
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-603600-3'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,118 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
-->
|
||||
<html class='no-js' lang='en' manifest='default.appcache?v=1'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Dan Barber - Web Developer & Designer</title>
|
||||
<meta content='' name='description'>
|
||||
<meta content='' name='author'>
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>
|
||||
<meta content='target-densitydpi=160dpi, initial-scale=1' name='viewport'>
|
||||
<!--
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
-->
|
||||
<!-- For all browsers -->
|
||||
<link href='css/style.css?v=1' rel='stylesheet'>
|
||||
<!-- JavaScript at bottom except for Modernizr and Typekit -->
|
||||
<script src='js/libs/modernizr-1.7.min.js'></script>
|
||||
<!-- Typekit -->
|
||||
<script src='http://use.typekit.com/ewi2mjz.js' type='text/javascript'></script>
|
||||
<script>
|
||||
try{Typekit.load();}catch(e){}
|
||||
</script>
|
||||
<link href='favicon.png' rel='shortcut icon'>
|
||||
<!-- Microsoft. Delete if not required -->
|
||||
<meta content='on' http-equiv='cleartype'>
|
||||
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link href='/' rel='canonical'>
|
||||
</head>
|
||||
<body class='clearfix'>
|
||||
<div id='stripe'>
|
||||
<div class='container'>
|
||||
<canvas height='12' id='colours' width='890'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<header class='clearfix' role='banner'>
|
||||
<div class='container'>
|
||||
<h1 class='icon-logo' id='main_heading'>Dan Barber</h1>
|
||||
<h2>Web Designer & Developer</h2>
|
||||
</div>
|
||||
</header>
|
||||
<h3>Experience</h3>
|
||||
|
||||
<h4><a href="http://new-bamboo.co.uk">New Bamboo</a></h4>
|
||||
|
||||
<p>Nov 2012 — Present</p>
|
||||
|
||||
<h4><a href="http://pixelhum.com">Pixelhum</a></h4>
|
||||
|
||||
<p>Aug 2010 — Present</p>
|
||||
|
||||
<p>Pixelhum is my own freelance/contract business. I design and build web applications for clients using Ruby on Rails.</p>
|
||||
|
||||
<h4><a href="http://www.webbased.co.uk/webbased">WebBased Ltd</a></h4>
|
||||
|
||||
<p>Dec 2011 — Nov 2012</p>
|
||||
|
||||
<p>Continued development of a CRM product built using Rails 2.3. I moved version control from SVN to git and brought the Rspec test suite up to date.</p>
|
||||
|
||||
<h4><a href="http://www.abiquo.com">Abiquo</a></h4>
|
||||
|
||||
<p>June 2010 — Oct 2011</p>
|
||||
|
||||
<p>Updated and maintained Abiquo’s websites, written in both PHP and Ruby on Rails. This includes the virtual image exchange site Thunderflash (thunderflash.com) which I rebuilt on Rails 3.</p>
|
||||
|
||||
<h4><a href="http://dbsmusic.co.uk">Deep Blue Sound</a></h4>
|
||||
|
||||
<p>Aug 2008 — June 2010</p>
|
||||
|
||||
<p>Administered and augmented the existing web systems including Moodle, SugarCRM and others. Deputised for the System Administrator.</p>
|
||||
|
||||
<h4><a href="http://footworksolutions.co.uk">Footwork Solutions</a></h4>
|
||||
|
||||
<p>Nov 2002 — Aug 2008</p>
|
||||
|
||||
<p>I was a lead developer and designer on the Halo care co-ordination system, including training and documentation and support. I was also the System Administrator for both the local network and remote server farm.</p>
|
||||
|
||||
<h4>Granite Internet</h4>
|
||||
|
||||
<p>2000 — 2002</p>
|
||||
|
||||
<p>Designed and developed and maintained several property company websites based on a single code base. Setup Windows, Linux and FreeBSD servers.</p>
|
||||
|
||||
<h4>North Devon Journal</h4>
|
||||
|
||||
<p>1998 — 2000</p>
|
||||
|
||||
<p>Set advertisements using QuarkXpress and was responsible for laying out the classified pages. Developed a love for typography.</p>
|
||||
<footer class='clearfix' role='contentinfo'></footer>
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js'></script>
|
||||
<script>
|
||||
window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>') / Scripts
|
||||
</script>
|
||||
<script src='js/plugins.js'></script>
|
||||
<script src='js/script.js'></script>
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-603600-3'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,80 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
-->
|
||||
<html class='no-js' lang='en' manifest='default.appcache?v=1'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Dan Barber - Web Developer & Designer</title>
|
||||
<meta content='' name='description'>
|
||||
<meta content='' name='author'>
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>
|
||||
<meta content='target-densitydpi=160dpi, initial-scale=1' name='viewport'>
|
||||
<!--
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
-->
|
||||
<!-- For all browsers -->
|
||||
<link href='css/style.css?v=1' rel='stylesheet'>
|
||||
<!-- JavaScript at bottom except for Modernizr and Typekit -->
|
||||
<script src='js/libs/modernizr-1.7.min.js'></script>
|
||||
<!-- Typekit -->
|
||||
<script src='http://use.typekit.com/ewi2mjz.js' type='text/javascript'></script>
|
||||
<script>
|
||||
try{Typekit.load();}catch(e){}
|
||||
</script>
|
||||
<link href='favicon.png' rel='shortcut icon'>
|
||||
<!-- Microsoft. Delete if not required -->
|
||||
<meta content='on' http-equiv='cleartype'>
|
||||
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link href='/' rel='canonical'>
|
||||
</head>
|
||||
<body class='clearfix'>
|
||||
<div id='stripe'>
|
||||
<div class='container'>
|
||||
<canvas height='12' id='colours' width='890'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<header class='clearfix' role='banner'>
|
||||
<div class='container'>
|
||||
<h1 class='icon-logo' id='main_heading'>Dan Barber</h1>
|
||||
<h2>Web Designer & Developer</h2>
|
||||
</div>
|
||||
</header>
|
||||
<h3>Interests</h3>
|
||||
|
||||
<ul>
|
||||
<li>Drumming</li>
|
||||
<li>Music</li>
|
||||
<li>Sound Engineering & Recording</li>
|
||||
<li>Photography</li>
|
||||
<li>Cycling</li>
|
||||
</ul>
|
||||
<footer class='clearfix' role='contentinfo'></footer>
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js'></script>
|
||||
<script>
|
||||
window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>') / Scripts
|
||||
</script>
|
||||
<script src='js/plugins.js'></script>
|
||||
<script src='js/script.js'></script>
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-603600-3'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,96 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
-->
|
||||
<html class='no-js' lang='en' manifest='default.appcache?v=1'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Dan Barber - Web Developer & Designer</title>
|
||||
<meta content='' name='description'>
|
||||
<meta content='' name='author'>
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>
|
||||
<meta content='target-densitydpi=160dpi, initial-scale=1' name='viewport'>
|
||||
<!--
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
-->
|
||||
<!-- For all browsers -->
|
||||
<link href='css/style.css?v=1' rel='stylesheet'>
|
||||
<!-- JavaScript at bottom except for Modernizr and Typekit -->
|
||||
<script src='js/libs/modernizr-1.7.min.js'></script>
|
||||
<!-- Typekit -->
|
||||
<script src='http://use.typekit.com/ewi2mjz.js' type='text/javascript'></script>
|
||||
<script>
|
||||
try{Typekit.load();}catch(e){}
|
||||
</script>
|
||||
<link href='favicon.png' rel='shortcut icon'>
|
||||
<!-- Microsoft. Delete if not required -->
|
||||
<meta content='on' http-equiv='cleartype'>
|
||||
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link href='/' rel='canonical'>
|
||||
</head>
|
||||
<body class='clearfix'>
|
||||
<div id='stripe'>
|
||||
<div class='container'>
|
||||
<canvas height='12' id='colours' width='890'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<header class='clearfix' role='banner'>
|
||||
<div class='container'>
|
||||
<h1 class='icon-logo' id='main_heading'>Dan Barber</h1>
|
||||
<h2>Web Designer & Developer</h2>
|
||||
</div>
|
||||
</header>
|
||||
<h3>Portfolio</h3>
|
||||
|
||||
<h4><a href="http://www.soundunlimited.co.uk">Soundunlimited</a></h4>
|
||||
|
||||
<p>I built a complete online shop system for a local music shop using Ruby on Rails. Rspec was used for testing.</p>
|
||||
|
||||
<h4><a href="http://pixelhum.com/neompc">NeoMPC</a></h4>
|
||||
|
||||
<p>Web based MPD client. Design and execution. Built using PHP and jQuery and uses mpd.class.php to connect to the MPD server.</p>
|
||||
|
||||
<h4><a href="http://pixelhum.com/portfolio/footwork/">Footwork Solutions</a></h4>
|
||||
|
||||
<p>Company logo and site design. I built the HTML for the Drupal template.</p>
|
||||
|
||||
<h4><a href="http://www.footworksolutions.co.uk">Halo</a></h4>
|
||||
|
||||
<p>Hosted care co-ordination system for drug treatment agencies. Design, initial implementation and ongoing development of key modules.</p>
|
||||
|
||||
<h4><a href="http://danbarberphoto.com">Dan Barber Photo</a></h4>
|
||||
|
||||
<p>My own photography portfolio site. I designed and implemented the site using Ruby on Rails and jQuery, including backend admin pages.</p>
|
||||
|
||||
<h4>My CV</h4>
|
||||
|
||||
<p>My CV is a responsive design built using Stasis, HAML, SASS and Markdown that makes extensive use of HTML5, CSS3, typography and web fonts. The source code is available on <a href="https://github.com/danbee/cv">Github</a>.</p>
|
||||
<footer class='clearfix' role='contentinfo'></footer>
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js'></script>
|
||||
<script>
|
||||
window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>') / Scripts
|
||||
</script>
|
||||
<script src='js/plugins.js'></script>
|
||||
<script src='js/script.js'></script>
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-603600-3'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,76 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
-->
|
||||
<html class='no-js' lang='en' manifest='default.appcache?v=1'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Dan Barber - Web Developer & Designer</title>
|
||||
<meta content='' name='description'>
|
||||
<meta content='' name='author'>
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>
|
||||
<meta content='target-densitydpi=160dpi, initial-scale=1' name='viewport'>
|
||||
<!--
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
-->
|
||||
<!-- For all browsers -->
|
||||
<link href='css/style.css?v=1' rel='stylesheet'>
|
||||
<!-- JavaScript at bottom except for Modernizr and Typekit -->
|
||||
<script src='js/libs/modernizr-1.7.min.js'></script>
|
||||
<!-- Typekit -->
|
||||
<script src='http://use.typekit.com/ewi2mjz.js' type='text/javascript'></script>
|
||||
<script>
|
||||
try{Typekit.load();}catch(e){}
|
||||
</script>
|
||||
<link href='favicon.png' rel='shortcut icon'>
|
||||
<!-- Microsoft. Delete if not required -->
|
||||
<meta content='on' http-equiv='cleartype'>
|
||||
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link href='/' rel='canonical'>
|
||||
</head>
|
||||
<body class='clearfix'>
|
||||
<div id='stripe'>
|
||||
<div class='container'>
|
||||
<canvas height='12' id='colours' width='890'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<header class='clearfix' role='banner'>
|
||||
<div class='container'>
|
||||
<h1 class='icon-logo' id='main_heading'>Dan Barber</h1>
|
||||
<h2>Web Designer & Developer</h2>
|
||||
</div>
|
||||
</header>
|
||||
<h3>Profile</h3>
|
||||
|
||||
<p>I have 14 years of experience building web sites and web applications, from small simple websites and services to large enterprise level systems. I focus on simple, usable interfaces and prefer to work by prototyping ideas.</p>
|
||||
|
||||
<p>I am detail orientated and I love working alongside others on interesting projects and ideas. I love learning new techniques and technologies and I love simple, elegant, maintainable code.</p>
|
||||
<footer class='clearfix' role='contentinfo'></footer>
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js'></script>
|
||||
<script>
|
||||
window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>') / Scripts
|
||||
</script>
|
||||
<script src='js/plugins.js'></script>
|
||||
<script src='js/script.js'></script>
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-603600-3'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Dan Barber's CV
|
||||
Author: Dan Barber
|
||||
URL: http://pixelhum.com/cv
|
||||
-->
|
||||
<html class='no-js' lang='en' manifest='default.appcache?v=1'>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>Dan Barber - Web Developer & Designer</title>
|
||||
<meta content='' name='description'>
|
||||
<meta content='' name='author'>
|
||||
<!-- http://t.co/dKP3o1e -->
|
||||
<meta content='True' name='HandheldFriendly'>
|
||||
<meta content='320' name='MobileOptimized'>
|
||||
<meta content='target-densitydpi=160dpi, initial-scale=1' name='viewport'>
|
||||
<!--
|
||||
For less capable mobile browsers
|
||||
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=1">
|
||||
-->
|
||||
<!-- For all browsers -->
|
||||
<link href='css/style.css?v=1' rel='stylesheet'>
|
||||
<!-- JavaScript at bottom except for Modernizr and Typekit -->
|
||||
<script src='js/libs/modernizr-1.7.min.js'></script>
|
||||
<!-- Typekit -->
|
||||
<script src='http://use.typekit.com/ewi2mjz.js' type='text/javascript'></script>
|
||||
<script>
|
||||
try{Typekit.load();}catch(e){}
|
||||
</script>
|
||||
<link href='favicon.png' rel='shortcut icon'>
|
||||
<!-- Microsoft. Delete if not required -->
|
||||
<meta content='on' http-equiv='cleartype'>
|
||||
<meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
|
||||
<!-- http://t.co/y1jPVnT -->
|
||||
<link href='/' rel='canonical'>
|
||||
</head>
|
||||
<body class='clearfix'>
|
||||
<div id='stripe'>
|
||||
<div class='container'>
|
||||
<canvas height='12' id='colours' width='890'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<header class='clearfix' role='banner'>
|
||||
<div class='container'>
|
||||
<h1 class='icon-logo' id='main_heading'>Dan Barber</h1>
|
||||
<h2>Web Designer & Developer</h2>
|
||||
</div>
|
||||
</header>
|
||||
<h3>Skills</h3>
|
||||
|
||||
<h4>Web Technologies</h4>
|
||||
|
||||
<ul>
|
||||
<li>HTML5/CSS3</li>
|
||||
<li>Javascript/jQuery</li>
|
||||
<li>Ruby on Rails</li>
|
||||
<li>PHP</li>
|
||||
</ul>
|
||||
|
||||
<h4>Databases</h4>
|
||||
|
||||
<ul>
|
||||
<li>SQL</li>
|
||||
<li>PostgreSQL</li>
|
||||
<li>MySQL</li>
|
||||
<li>SQLite3</li>
|
||||
</ul>
|
||||
|
||||
<h4>Design</h4>
|
||||
|
||||
<ul>
|
||||
<li>Photoshop/GIMP</li>
|
||||
<li>Illustrator</li>
|
||||
<li>InDesign</li>
|
||||
<li>Typography</li>
|
||||
</ul>
|
||||
|
||||
<h4>Linux Servers</h4>
|
||||
|
||||
<ul>
|
||||
<li>Web (Apache)</li>
|
||||
<li>MySQL</li>
|
||||
<li>PostgreSQL</li>
|
||||
<li>DNS</li>
|
||||
<li>Samba</li>
|
||||
</ul>
|
||||
|
||||
<h4>Networking</h4>
|
||||
|
||||
<p>Good knowledge of cabling, routing and protocols.</p>
|
||||
<footer class='clearfix' role='contentinfo'></footer>
|
||||
<!-- mathiasbynens.be/notes/async-analytics-snippet Change UA-XXXXX-X to be your site's ID -->
|
||||
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js'></script>
|
||||
<script>
|
||||
window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>') / Scripts
|
||||
</script>
|
||||
<script src='js/plugins.js'></script>
|
||||
<script src='js/script.js'></script>
|
||||
<!--[if (lt IE 9) & (!IEMobile)]>
|
||||
<script src="js/libs/DOMAssistantCompressed-2.8.js"></script>
|
||||
<script src="js/libs/selectivizr-1.0.1.js"></script>
|
||||
<script src="js/libs/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- http://t.co/HZe9oJ4 -->
|
||||
<script>
|
||||
var _gaq=[['_setAccount','UA-603600-3'],['_trackPageview']]; // Change UA-XXXXX-X to be your site's ID
|
||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
|
||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||
</script>
|
||||
<noscript>Your browser does not support JavaScript!</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,31 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>QUnit Tests</title>
|
||||
<link rel="stylesheet" href="qunit/qunit.css" media="screen">
|
||||
|
||||
<!-- reference your own javascript files here -->
|
||||
|
||||
<script src="../js/libs/modernizr-1.7.min.js"></script>
|
||||
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
|
||||
<script src="../js/plugins.js"></script>
|
||||
<script src="../js/script.js"></script>
|
||||
|
||||
|
||||
<!-- test runner files -->
|
||||
<script src="qunit/qunit.js"></script>
|
||||
<script src="tests.js"></script>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body class="flora">
|
||||
<h1 id="qunit-header">QUnit Test Suite</h1>
|
||||
<h2 id="qunit-banner"></h2>
|
||||
<div id="qunit-testrunner-toolbar"></div>
|
||||
<h2 id="qunit-userAgent"></h2>
|
||||
<ol id="qunit-tests"></ol>
|
||||
<div id="qunit-fixture">test markup</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,148 +0,0 @@
|
||||
/** Font Family and Sizes */
|
||||
|
||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
|
||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
|
||||
#qunit-tests { font-size: smaller; }
|
||||
|
||||
|
||||
/** Resets */
|
||||
|
||||
#qunit-tests, #qunit-tests li ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/** Header */
|
||||
|
||||
#qunit-header {
|
||||
padding: 0.5em 0 0.5em 1em;
|
||||
|
||||
color: #fff;
|
||||
text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;
|
||||
background-color: #0d3349;
|
||||
|
||||
border-radius: 15px 15px 0 0;
|
||||
-moz-border-radius: 15px 15px 0 0;
|
||||
-webkit-border-top-right-radius: 15px;
|
||||
-webkit-border-top-left-radius: 15px;
|
||||
}
|
||||
|
||||
#qunit-banner {
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar {
|
||||
padding: 0em 0 0.5em 2em;
|
||||
}
|
||||
|
||||
#qunit-userAgent {
|
||||
padding: 0.5em 0 0.5em 2.5em;
|
||||
background-color: #2b81af;
|
||||
color: #fff;
|
||||
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
||||
}
|
||||
|
||||
|
||||
/** Tests: Pass/Fail */
|
||||
|
||||
#qunit-tests {
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests li {
|
||||
padding: 0.4em 0.5em 0.4em 2.5em;
|
||||
border-bottom: 1px solid #fff;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests li strong {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#qunit-tests li ol {
|
||||
margin-top: 0.5em;
|
||||
padding: 0.5em;
|
||||
|
||||
background-color: #fff;
|
||||
|
||||
border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
-webkit-border-radius: 15px;
|
||||
|
||||
box-shadow: inset 0px 2px 13px #999;
|
||||
-moz-box-shadow: inset 0px 2px 13px #999;
|
||||
-webkit-box-shadow: inset 0px 2px 13px #999;
|
||||
}
|
||||
|
||||
#qunit-tests li li {
|
||||
margin: 0.5em;
|
||||
padding: 0.4em 0.5em 0.4em 0.5em;
|
||||
background-color: #fff;
|
||||
border-bottom: none;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
/*** Passing Styles */
|
||||
|
||||
#qunit-tests li li.pass {
|
||||
color: #5E740B;
|
||||
background-color: #fff;
|
||||
border-left: 26px solid #C6E746;
|
||||
}
|
||||
|
||||
#qunit-tests li.pass { color: #528CE0; background-color: #D2E0E6; }
|
||||
#qunit-tests li.pass span.test-name { color: #366097; }
|
||||
|
||||
#qunit-tests li li.pass span.test-actual,
|
||||
#qunit-tests li li.pass span.test-expected { color: #999999; }
|
||||
|
||||
strong b.pass { color: #5E740B; }
|
||||
|
||||
#qunit-banner.qunit-pass { background-color: #C6E746; }
|
||||
|
||||
/*** Failing Styles */
|
||||
|
||||
#qunit-tests li li.fail {
|
||||
color: #710909;
|
||||
background-color: #fff;
|
||||
border-left: 26px solid #EE5757;
|
||||
}
|
||||
|
||||
#qunit-tests li.fail { color: #000000; background-color: #EE5757; }
|
||||
#qunit-tests li.fail span.test-name,
|
||||
#qunit-tests li.fail span.module-name { color: #000000; }
|
||||
|
||||
#qunit-tests li li.fail span.test-actual { color: #EE5757; }
|
||||
#qunit-tests li li.fail span.test-expected { color: green; }
|
||||
|
||||
strong b.fail { color: #710909; }
|
||||
|
||||
#qunit-banner.qunit-fail,
|
||||
#qunit-testrunner-toolbar { background-color: #EE5757; }
|
||||
|
||||
|
||||
/** Footer */
|
||||
|
||||
#qunit-testresult {
|
||||
padding: 0.5em 0.5em 0.5em 2.5em;
|
||||
|
||||
color: #2b81af;
|
||||
background-color: #D2E0E6;
|
||||
|
||||
border-radius: 0 0 15px 15px;
|
||||
-moz-border-radius: 0 0 15px 15px;
|
||||
-webkit-border-bottom-right-radius: 15px;
|
||||
-webkit-border-bottom-left-radius: 15px;
|
||||
}
|
||||
|
||||
/** Fixture */
|
||||
|
||||
#qunit-fixture {
|
||||
position: absolute;
|
||||
top: -10000px;
|
||||
left: -10000px;
|
||||
}
|
||||
@ -1,27 +0,0 @@
|
||||
|
||||
// documentation on writing tests here: http://docs.jquery.com/QUnit
|
||||
// example tests: https://github.com/jquery/qunit/blob/master/test/same.js
|
||||
|
||||
// below are some general tests but feel free to delete them.
|
||||
|
||||
module("example tests");
|
||||
test("HTML5 Boilerplate is sweet",function(){
|
||||
expect(1);
|
||||
equals("boilerplate".replace("boilerplate","sweet"),"sweet","Yes. HTML5 Boilerplate is, in fact, sweet");
|
||||
|
||||
})
|
||||
|
||||
// these test things from plugins.js
|
||||
test("Environment is good",function(){
|
||||
expect(3);
|
||||
ok( !!window.log, "log function present");
|
||||
|
||||
var history = log.history && log.history.length || 0;
|
||||
log("logging from the test suite.")
|
||||
equals( log.history.length - history, 1, "log history keeps track" )
|
||||
|
||||
ok( !!window.Modernizr, "Modernizr global is present")
|
||||
})
|
||||
|
||||
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
# www.robotstxt.org/
|
||||
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
|
||||
|
||||
User-agent: *
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
%h3 Contact
|
||||
%p.fn.n
|
||||
%span.given-name Dan
|
||||
%span.family-name Barber
|
||||
%p
|
||||
%a.email{:href => "mailto:hello@danbarber.me"} hello@danbarber.me
|
||||
%p.tel +44 (0) 1752 546981
|
||||
%p
|
||||
%a.url{:href => "http://danbarber.me"} http://danbarber.me
|
||||
%p.icon-github
|
||||
%a.url{:href => "http://github.com/danbee"} github.com/danbee
|
||||
%p.icon-twitter
|
||||
%a.url{:href => "http://twitter.com/danbee"} @danbee
|
||||
@ -31,6 +31,9 @@
|
||||
|
||||
@import "iconfont"
|
||||
|
||||
*, *:before, *:after
|
||||
box-sizing: border-box
|
||||
|
||||
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video
|
||||
margin: 0
|
||||
padding: 0
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
BIN
source/images/background.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
source/images/middleman.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 599 B After Width: | Height: | Size: 599 B |
|
Before Width: | Height: | Size: 599 B After Width: | Height: | Size: 599 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 614 B After Width: | Height: | Size: 614 B |
|
Before Width: | Height: | Size: 804 B After Width: | Height: | Size: 804 B |
27
source/index.html.erb
Normal file
@ -0,0 +1,27 @@
|
||||
<div class="content clearfix">
|
||||
<div role="main">
|
||||
<div class="container clearfix">
|
||||
<section id="profile">
|
||||
<%= partial "sections/_profile.markdown" %>
|
||||
</section>
|
||||
<section id="skills">
|
||||
<%= partial "sections/_skills.markdown" %>
|
||||
</section>
|
||||
<section id="experience">
|
||||
<%= partial "sections/_experience.markdown" %>
|
||||
</section>
|
||||
</div>
|
||||
<div class="container clearfix">
|
||||
<section id="portfolio">
|
||||
<%= partial "sections/_portfolio.markdown" %>
|
||||
</section>
|
||||
<section id="interests">
|
||||
<%= partial "sections/_interests.markdown" %>
|
||||
</section>
|
||||
<section class="vcard" id="contact">
|
||||
<%= partial "sections/_contact.html.erb" %>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div role="complementary"></div>
|
||||
</div>
|
||||
1
source/javascripts/all.js
Normal file
@ -0,0 +1 @@
|
||||
//= require_tree .
|
||||