improving the design

pull/1/head
Oliver Kennedy 2015-12-03 15:24:36 -05:00
parent 807961c155
commit addc1b5631
33 changed files with 4085 additions and 41 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
assets/ub_logo_1line_white.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -9,6 +9,7 @@ var rename = require('metalsmith-rename');
var metadata = require('metalsmith-metadata');
var fingerprint = require('metalsmith-fingerprint');
var branch = require('metalsmith-branch');
var assets = require('metalsmith-assets');
/**
* Build.
@ -18,14 +19,20 @@ var metalsmith = Metalsmith(__dirname)
.source('./src')
.destination('./site')
.use(drafts())
.use(fingerprint({ pattern: 'css/*.css' }))
.use(fingerprint({
pattern: 'css/*.css'
}))
// .use(inplace({ "engine" : "handlebars" }))
.use(markdown())
.use(assets({
source: './assets',
destination: './assets'
}))
.use( branch()
.pattern('*.html')
.use(layouts({
"engine" : "handlebars",
"default" : "default.hbs"
engine: "handlebars",
default: "default.hbs"
}))
)
// .use(uglify())

View File

@ -1,37 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>The ODIn Lab: {{ title }}</title>
{{! Files will be fingerprinted for cache busting }}
{{! Access their filenames with the fingerprint variable }}
<link rel="stylesheet" href="{{ fingerprint.[css/index.css] }}">
</head>
<body>
<div class="header_logo">
boo
</div>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>The ODIn Lab: {{ title }}</title>
{{! Files will be fingerprinted for cache busting }}
{{! Access their filenames with the fingerprint variable }}
<link rel="stylesheet" href="{{ fingerprint.[css/index.css] }}">
<!--link rel="stylesheet" href="../src/css/index.css"-->
<div class="header_menu">
<a>People</a>
<a>Projects</a>
<a>Teaching</a>
<a>Publications</a>
<a>Funding</a>
<a>Wiki</a>
</div>
<div class="left_menu">
<h2>Lab Services</h2>
<a>DubStep (CSE4/562)</a>
<a>GitLab (Research)</a>
<a>GitHub (Software)</a>
<a>Slack (Comm)</a>
<a>Piazza (Coursework)</a>
</head>
<body>
<div class="header_logo">
<img src="assets/ub_logo_1line_white.png"
height="20"
style="float: left; margin-top:8px"
/>
<img src="assets/lab_logo_1line_white.png"
height="35"
style="float: right"/>
</div>
<h2>Recent News</h2>
<div class="header_menu">
<a>People</a>
<a>Projects</a>
<a>Teaching</a>
<a>Publications</a>
<a>Funding</a>
<a>Wiki</a>
</div>
<div class="left_menu">
<h2>Lab Services</h2>
<a>DubStep (CSE4/562)</a>
<a>GitLab (Research)</a>
<a>GitHub (Software)</a>
<a>Slack (Comm)</a>
<a>Piazza (Coursework)</a>
<h2>Recent Rants</h2>
</div>
{{{ contents }}}
</body>
</html>
<h2>Recent News</h2>
<h2>Recent Rants</h2>
</div>
{{{ contents }}}
</body>
</html>

1
node_modules/merge/.npmignore generated vendored Normal file
View File

@ -0,0 +1 @@
tests

21
node_modules/merge/LICENSE generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 yeikos - http://www.yeikos.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

58
node_modules/merge/README.md generated vendored Normal file
View File

@ -0,0 +1,58 @@
# Merge
Merge multiple objects into one, optionally creating a new cloned object.
Similar to the jQuery.extend but more flexible. Works in Node.js and the
browser.
## Node.js Usage
```sh
npm install merge --save
```
```js
var merge = require('merge'), original, cloned;
console.log(merge({one:'hello'}, {two: 'world'}));
// -> {"one": "hello", "two": "world"}
original = { x: { y: 1 } };
cloned = merge(true, original);
cloned.x.y++;
console.log(original.x.y, cloned.x.y);
// -> 1, 2
console.log(merge.recursive(true, original, { x: { z: 2 } }));
// -> {"x": { "y": 1, "z": 2 } }
```
## Browser Usage
```html
<script src="http://files.yeikos.com/merge.js"></script>
<script>
var original, cloned;
console.log(merge({one:'hello'}, {two: 'world'}));
// -> {"one": "hello", "two": "world"}
original = { x: { y: 1 } };
cloned = merge(true, original);
cloned.x.y++;
console.log(original.x.y, cloned.x.y);
// -> 1, 2
console.log(merge.recursive(true, original, { x: { z: 2 } }));
// -> {"x": { "y": 1, "z": 2 } }
</script>
```
## Tests
```sh
npm test
```

22
node_modules/merge/bower.json generated vendored Normal file
View File

@ -0,0 +1,22 @@
{
"name": "merge",
"version": "1.2.0",
"homepage": "https://github.com/yeikos/js.merge",
"authors": [
"yeikos <yeikos@gmail.com>"
],
"description": "Merge multiple objects into one, optionally creating a new cloned object. Similar to the jQuery.extend but more flexible. Works in Node.js and the browser.",
"main": "merge.js",
"keywords": [
"merge",
"recursive",
"extend",
"clone",
"object",
"browser"
],
"license": "MIT",
"ignore": [
"tests"
]
}

175
node_modules/merge/merge.js generated vendored Normal file
View File

@ -0,0 +1,175 @@
/*!
* @name JavaScript/NodeJS Merge v1.2.0
* @author yeikos
* @repository https://github.com/yeikos/js.merge
* Copyright 2014 yeikos - MIT license
* https://raw.github.com/yeikos/js.merge/master/LICENSE
*/
;(function(isNode) {
/**
* Merge one or more objects
* @param bool? clone
* @param mixed,... arguments
* @return object
*/
var Public = function(clone) {
return merge(clone === true, false, arguments);
}, publicName = 'merge';
/**
* Merge two or more objects recursively
* @param bool? clone
* @param mixed,... arguments
* @return object
*/
Public.recursive = function(clone) {
return merge(clone === true, true, arguments);
};
/**
* Clone the input removing any reference
* @param mixed input
* @return mixed
*/
Public.clone = function(input) {
var output = input,
type = typeOf(input),
index, size;
if (type === 'array') {
output = [];
size = input.length;
for (index=0;index<size;++index)
output[index] = Public.clone(input[index]);
} else if (type === 'object') {
output = {};
for (index in input)
output[index] = Public.clone(input[index]);
}
return output;
};
/**
* Merge two objects recursively
* @param mixed input
* @param mixed extend
* @return mixed
*/
function merge_recursive(base, extend) {
if (typeOf(base) !== 'object')
return extend;
for (var key in extend) {
if (typeOf(base[key]) === 'object' && typeOf(extend[key]) === 'object') {
base[key] = merge_recursive(base[key], extend[key]);
} else {
base[key] = extend[key];
}
}
return base;
}
/**
* Merge two or more objects
* @param bool clone
* @param bool recursive
* @param array argv
* @return object
*/
function merge(clone, recursive, argv) {
var result = argv[0],
size = argv.length;
if (clone || typeOf(result) !== 'object')
result = {};
for (var index=0;index<size;++index) {
var item = argv[index],
type = typeOf(item);
if (type !== 'object') continue;
for (var key in item) {
var sitem = clone ? Public.clone(item[key]) : item[key];
if (recursive) {
result[key] = merge_recursive(result[key], sitem);
} else {
result[key] = sitem;
}
}
}
return result;
}
/**
* Get type of variable
* @param mixed input
* @return string
*
* @see http://jsperf.com/typeofvar
*/
function typeOf(input) {
return ({}).toString.call(input).slice(8, -1).toLowerCase();
}
if (isNode) {
module.exports = Public;
} else {
window[publicName] = Public;
}
})(typeof module === 'object' && module && typeof module.exports === 'object' && module.exports);

3
node_modules/merge/merge.min.js generated vendored Normal file
View File

@ -0,0 +1,3 @@
/*! JavaScript/NodeJS Merge v1.2.0 | Copyright 2014 yeikos - MIT license | https://github.com/yeikos/js.merge */
;(function(e){function r(e,t){if(s(e)!=="object")return t;for(var n in t){if(s(e[n])==="object"&&s(t[n])==="object"){e[n]=r(e[n],t[n])}else{e[n]=t[n]}}return e}function i(e,n,i){var o=i[0],u=i.length;if(e||s(o)!=="object")o={};for(var a=0;a<u;++a){var f=i[a],l=s(f);if(l!=="object")continue;for(var c in f){var h=e?t.clone(f[c]):f[c];if(n){o[c]=r(o[c],h)}else{o[c]=h}}}return o}function s(e){return{}.toString.call(e).slice(8,-1).toLowerCase()}var t=function(e){return i(e===true,false,arguments)},n="merge";t.recursive=function(e){return i(e===true,true,arguments)};t.clone=function(e){var n=e,r=s(e),i,o;if(r==="array"){n=[];o=e.length;for(i=0;i<o;++i)n[i]=t.clone(e[i])}else if(r==="object"){n={};for(i in e)n[i]=t.clone(e[i])}return n};if(e){module.exports=t}else{window[n]=t}})(typeof module==="object"&&module&&typeof module.exports==="object"&&module.exports);

78
node_modules/merge/package.json generated vendored Normal file
View File

@ -0,0 +1,78 @@
{
"_args": [
[
"merge@^1.1.3",
"/Users/okennedy/Desktop/Website/node_modules/metalsmith-assets"
]
],
"_from": "merge@>=1.1.3 <2.0.0",
"_id": "merge@1.2.0",
"_inCache": true,
"_installable": true,
"_location": "/merge",
"_npmUser": {
"email": "yeikos@gmail.com",
"name": "yeikos"
},
"_npmVersion": "1.4.21",
"_phantomChildren": {},
"_requested": {
"name": "merge",
"raw": "merge@^1.1.3",
"rawSpec": "^1.1.3",
"scope": null,
"spec": ">=1.1.3 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/metalsmith-assets"
],
"_resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
"_shasum": "7531e39d4949c281a66b8c5a6e0265e8b05894da",
"_shrinkwrap": null,
"_spec": "merge@^1.1.3",
"_where": "/Users/okennedy/Desktop/Website/node_modules/metalsmith-assets",
"author": {
"name": "yeikos",
"url": "http://www.yeikos.com"
},
"bugs": {
"url": "https://github.com/yeikos/js.merge/issues"
},
"dependencies": {},
"description": "Merge multiple objects into one, optionally creating a new cloned object. Similar to the jQuery.extend but more flexible. Works in Node.js and the browser.",
"devDependencies": {},
"directories": {},
"dist": {
"shasum": "7531e39d4949c281a66b8c5a6e0265e8b05894da",
"tarball": "http://registry.npmjs.org/merge/-/merge-1.2.0.tgz"
},
"gitHead": "6fc27c23e1ebf54a4f6ba8a7224dd48dfd9faf7c",
"homepage": "https://github.com/yeikos/js.merge",
"keywords": [
"browser",
"clone",
"extend",
"merge",
"object",
"recursive"
],
"license": "MIT",
"main": "merge.js",
"maintainers": [
{
"name": "yeikos",
"email": "yeikos@gmail.com"
}
],
"name": "merge",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "https://github.com/yeikos/js.merge.git"
},
"scripts": {
"test": "cd tests; node index.js"
},
"version": "1.2.0"
}

52
node_modules/metalsmith-assets/.npmignore generated vendored Normal file
View File

@ -0,0 +1,52 @@
# Created by http://www.gitignore.io
### Node ###
# Logs
logs
*.log
# Runtime data
pids
*.pid
*.seed
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directory
# Deployed apps should consider commenting this line out:
# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
node_modules
### OSX ###
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

8
node_modules/metalsmith-assets/Makefile generated vendored Normal file
View File

@ -0,0 +1,8 @@
node_modules: package.json
@npm install
test: node_modules
@./node_modules/.bin/mocha --reporter spec
.PHONY: test

40
node_modules/metalsmith-assets/README.md generated vendored Normal file
View File

@ -0,0 +1,40 @@
# metalsmith-assets
Include static assets in your Metalsmith build
## Installation
$ npm install metalsmith-assets
## CLI Usage
Install via npm and then add the `metalsmith-assets` key to your `metalsmith.json` plugins with a source and destination directory, like so:
```json
{
"plugins": {
"metalsmith-assets": {
"source": "./assets",
"destination": "./assets"
}
}
}
```
## Javascript Usage
Pass `options` to the assets plugin and pass it to Metalsmith with the `use` method:
```js
var assets = require('metalsmith-assets');
metalsmith.use(assets({
source: './assets', // relative to the working directory
destination: './assets' // relative to the build directory
}));
```
## License
MIT

71
node_modules/metalsmith-assets/index.js generated vendored Normal file
View File

@ -0,0 +1,71 @@
var debug = require('debug')('metalsmith-assets');
var fs = require('fs');
var path = require('path');
var readdir = require('recursive-readdir');
var Mode = require('stat-mode');
var merge = require('merge');
var each = require('async').each;
/**
* Expose `assets`.
*/
module.exports = assets;
/**
* Default plugin options
*/
var defaults = {
source: './public',
destination: '.'
};
/**
* Metalsmith plugin to include static assets.
*
* @param {Object} options (optional)
* @property {String} source Path to copy static assets from (relative to working directory). Defaults to './public'
* @property {String} destination Path to copy static assets to (relative to destination directory). Defaults to '.'
* @return {Function}
*/
function assets(options) {
options = merge({}, defaults, options);
return function (files, metalsmith, done) {
var src = metalsmith.path(options.source);
var dest = options.destination;
debug('pulling files from '+src);
debug('and putting in '+dest);
// copied almost line for line from https://github.com/segmentio/metalsmith/blob/master/lib/index.js
readdir(src, function (err, arr) {
if (err) return done(err);
debug(arr.length+' files found.');
each(arr, read, function (err) {
debug(arr.length+' files copied.');
done(err, files);
});
});
function read(file, done) {
var name = path.join(dest, path.relative(src, file));
fs.stat(file, function (err, stats) {
if (err) return done(err);
fs.readFile(file, function (err, buffer) {
if (err) return done(err);
var file = {};
file.contents = buffer;
file.mode = Mode(stats).toOctal();
files[name] = file;
done();
});
});
}
};
}

View File

@ -0,0 +1,3 @@
language: node_js
node_js:
- "0.10"

View File

@ -0,0 +1,19 @@
Copyright (c) 2010-2014 Caolan McMahon
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
{
"name": "async",
"repo": "caolan/async",
"description": "Higher-order functions and common patterns for asynchronous code",
"version": "0.1.23",
"keywords": [],
"dependencies": {},
"development": {},
"main": "lib/async.js",
"scripts": [ "lib/async.js" ]
}

1043
node_modules/metalsmith-assets/node_modules/async/lib/async.js generated vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
{
"_args": [
[
"async@^0.7.0",
"/Users/okennedy/Desktop/Website/node_modules/metalsmith-assets"
]
],
"_from": "async@>=0.7.0 <0.8.0",
"_id": "async@0.7.0",
"_inCache": true,
"_installable": true,
"_location": "/metalsmith-assets/async",
"_npmUser": {
"email": "caolan.mcmahon@gmail.com",
"name": "caolan"
},
"_npmVersion": "1.4.3",
"_phantomChildren": {},
"_requested": {
"name": "async",
"raw": "async@^0.7.0",
"rawSpec": "^0.7.0",
"scope": null,
"spec": ">=0.7.0 <0.8.0",
"type": "range"
},
"_requiredBy": [
"/metalsmith-assets"
],
"_resolved": "https://registry.npmjs.org/async/-/async-0.7.0.tgz",
"_shasum": "4429e0e62f5de0a54f37458c49f0b897eb52ada5",
"_shrinkwrap": null,
"_spec": "async@^0.7.0",
"_where": "/Users/okennedy/Desktop/Website/node_modules/metalsmith-assets",
"author": {
"name": "Caolan McMahon"
},
"bugs": {
"url": "https://github.com/caolan/async/issues"
},
"dependencies": {},
"description": "Higher-order functions and common patterns for asynchronous code",
"devDependencies": {
"nodelint": ">0.0.0",
"nodeunit": ">0.0.0",
"uglify-js": "1.2.x"
},
"directories": {},
"dist": {
"shasum": "4429e0e62f5de0a54f37458c49f0b897eb52ada5",
"tarball": "http://registry.npmjs.org/async/-/async-0.7.0.tgz"
},
"homepage": "https://github.com/caolan/async",
"jam": {
"include": [
"LICENSE",
"README.md",
"lib/async.js"
],
"main": "lib/async.js"
},
"licenses": [
{
"type": "MIT",
"url": "https://github.com/caolan/async/raw/master/LICENSE"
}
],
"main": "./lib/async",
"maintainers": [
{
"name": "caolan",
"email": "caolan@caolanmcmahon.com"
}
],
"name": "async",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "https://github.com/caolan/async.git"
},
"scripts": {
"test": "nodeunit test/test-async.js"
},
"version": "0.7.0"
}

View File

@ -0,0 +1,114 @@
# debug
tiny node.js debugging utility modelled after node core's debugging technique.
## Installation
```
$ npm install debug
```
## Usage
With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility.
Example _app.js_:
```js
var debug = require('debug')('http')
, http = require('http')
, name = 'My App';
// fake app
debug('booting %s', name);
http.createServer(function(req, res){
debug(req.method + ' ' + req.url);
res.end('hello\n');
}).listen(3000, function(){
debug('listening');
});
// fake worker of some kind
require('./worker');
```
Example _worker.js_:
```js
var debug = require('debug')('worker');
setInterval(function(){
debug('doing some work');
}, 1000);
```
The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
## Millisecond diff
When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
## Conventions
If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
## Wildcards
The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect.compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=* -connect:*` would include all debuggers except those starting with "connect:".
## Browser support
Debug works in the browser as well, currently persisted by `localStorage`. For example if you have `worker:a` and `worker:b` as shown below, and wish to debug both type `debug.enable('worker:*')` in the console and refresh the page, this will remain until you disable with `debug.disable()`.
```js
a = debug('worker:a');
b = debug('worker:b');
setInterval(function(){
a('doing some work');
}, 1000);
setInterval(function(){
a('doing some work');
}, 1200);
```
## License
(The MIT License)
Copyright (c) 2011 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,137 @@
/**
* Expose `debug()` as the module.
*/
module.exports = debug;
/**
* Create a debugger with the given `name`.
*
* @param {String} name
* @return {Type}
* @api public
*/
function debug(name) {
if (!debug.enabled(name)) return function(){};
return function(fmt){
fmt = coerce(fmt);
var curr = new Date;
var ms = curr - (debug[name] || curr);
debug[name] = curr;
fmt = name
+ ' '
+ fmt
+ ' +' + debug.humanize(ms);
// This hackery is required for IE8
// where `console.log` doesn't have 'apply'
window.console
&& console.log
&& Function.prototype.apply.call(console.log, console, arguments);
}
}
/**
* The currently active debug mode names.
*/
debug.names = [];
debug.skips = [];
/**
* Enables a debug mode by name. This can include modes
* separated by a colon and wildcards.
*
* @param {String} name
* @api public
*/
debug.enable = function(name) {
try {
localStorage.debug = name;
} catch(e){}
var split = (name || '').split(/[\s,]+/)
, len = split.length;
for (var i = 0; i < len; i++) {
name = split[i].replace('*', '.*?');
if (name[0] === '-') {
debug.skips.push(new RegExp('^' + name.substr(1) + '$'));
}
else {
debug.names.push(new RegExp('^' + name + '$'));
}
}
};
/**
* Disable debug output.
*
* @api public
*/
debug.disable = function(){
debug.enable('');
};
/**
* Humanize the given `ms`.
*
* @param {Number} m
* @return {String}
* @api private
*/
debug.humanize = function(ms) {
var sec = 1000
, min = 60 * 1000
, hour = 60 * min;
if (ms >= hour) return (ms / hour).toFixed(1) + 'h';
if (ms >= min) return (ms / min).toFixed(1) + 'm';
if (ms >= sec) return (ms / sec | 0) + 's';
return ms + 'ms';
};
/**
* Returns true if the given mode name is enabled, false otherwise.
*
* @param {String} name
* @return {Boolean}
* @api public
*/
debug.enabled = function(name) {
for (var i = 0, len = debug.skips.length; i < len; i++) {
if (debug.skips[i].test(name)) {
return false;
}
}
for (var i = 0, len = debug.names.length; i < len; i++) {
if (debug.names[i].test(name)) {
return true;
}
}
return false;
};
/**
* Coerce `val`.
*/
function coerce(val) {
if (val instanceof Error) return val.stack || val.message;
return val;
}
// persist
try {
if (window.localStorage) debug.enable(localStorage.debug);
} catch(e){}

View File

@ -0,0 +1,158 @@
/**
* Module dependencies.
*/
var tty = require('tty');
/**
* Expose `debug()` as the module.
*/
module.exports = debug;
/**
* Enabled debuggers.
*/
var names = []
, skips = [];
/**
* Colors.
*/
var colors = [6, 2, 3, 4, 5, 1];
/**
* Previous debug() call.
*/
var prev = {};
/**
* Previously assigned color.
*/
var prevColor = 0;
/**
* Is stdout a TTY? Colored output is disabled when `true`.
*/
var isatty = tty.isatty(1);
/**
* Select a color.
*
* @return {Number}
* @api private
*/
function color() {
return colors[prevColor++ % colors.length];
}
/**
* Humanize the given `ms`.
*
* @param {Number} m
* @return {String}
* @api private
*/
function humanize(ms) {
var sec = 1000
, min = 60 * 1000
, hour = 60 * min;
if (ms >= hour) return (ms / hour).toFixed(1) + 'h';
if (ms >= min) return (ms / min).toFixed(1) + 'm';
if (ms >= sec) return (ms / sec | 0) + 's';
return ms + 'ms';
}
/**
* Create a debugger with the given `name`.
*
* @param {String} name
* @return {Type}
* @api public
*/
function debug(name) {
function disabled(){}
disabled.enabled = false;
var match = skips.some(function(re){
return re.test(name);
});
if (match) return disabled;
match = names.some(function(re){
return re.test(name);
});
if (!match) return disabled;
var c = color();
function colored(fmt) {
fmt = coerce(fmt);
var curr = new Date;
var ms = curr - (prev[name] || curr);
prev[name] = curr;
fmt = ' \u001b[9' + c + 'm' + name + ' '
+ '\u001b[3' + c + 'm\u001b[90m'
+ fmt + '\u001b[3' + c + 'm'
+ ' +' + humanize(ms) + '\u001b[0m';
console.log.apply(this, arguments);
}
function plain(fmt) {
fmt = coerce(fmt);
fmt = new Date().toUTCString()
+ ' ' + name + ' ' + fmt;
console.log.apply(this, arguments);
}
colored.enabled = plain.enabled = true;
return isatty || process.env.DEBUG_COLORS
? colored
: plain;
}
/**
* Coerce `val`.
*/
function coerce(val) {
if (val instanceof Error) return val.stack || val.message;
return val;
}
/**
* Enable specified `namespaces` for debugging.
*/
debug.enable = function(namespaces) {
namespaces.split(/[\s,]+/)
.forEach(function(name){
name = name.replace('*', '.*?');
if (name[0] == '-') {
skips.push(new RegExp('^' + name.substr(1) + '$'));
} else {
names.push(new RegExp('^' + name + '$'));
}
});
};
/**
* Enable namespaces listed in `process.env.DEBUG` initially.
*/
debug.enable(process.env.DEBUG || '');

View File

@ -0,0 +1,85 @@
{
"_args": [
[
"debug@^0.8.1",
"/Users/okennedy/Desktop/Website/node_modules/metalsmith-assets"
]
],
"_from": "debug@>=0.8.1 <0.9.0",
"_id": "debug@0.8.1",
"_inCache": true,
"_installable": true,
"_location": "/metalsmith-assets/debug",
"_npmUser": {
"email": "tj@vision-media.ca",
"name": "tjholowaychuk"
},
"_npmVersion": "1.3.21",
"_phantomChildren": {},
"_requested": {
"name": "debug",
"raw": "debug@^0.8.1",
"rawSpec": "^0.8.1",
"scope": null,
"spec": ">=0.8.1 <0.9.0",
"type": "range"
},
"_requiredBy": [
"/metalsmith-assets"
],
"_resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz",
"_shasum": "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130",
"_shrinkwrap": null,
"_spec": "debug@^0.8.1",
"_where": "/Users/okennedy/Desktop/Website/node_modules/metalsmith-assets",
"author": {
"email": "tj@vision-media.ca",
"name": "TJ Holowaychuk"
},
"browser": "./debug.js",
"bugs": {
"url": "https://github.com/visionmedia/debug/issues"
},
"component": {
"scripts": {
"debug/index.js": "debug.js"
}
},
"dependencies": {},
"description": "small debugging utility",
"devDependencies": {
"mocha": "*"
},
"directories": {},
"dist": {
"shasum": "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130",
"tarball": "http://registry.npmjs.org/debug/-/debug-0.8.1.tgz"
},
"engines": {
"node": "*"
},
"files": [
"debug.js",
"lib/debug.js"
],
"homepage": "https://github.com/visionmedia/debug",
"keywords": [
"debug",
"debugger",
"log"
],
"main": "lib/debug.js",
"maintainers": [
{
"name": "tjholowaychuk",
"email": "tj@vision-media.ca"
}
],
"name": "debug",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/visionmedia/debug.git"
},
"version": "0.8.1"
}

85
node_modules/metalsmith-assets/package.json generated vendored Normal file
View File

@ -0,0 +1,85 @@
{
"_args": [
[
"metalsmith-assets",
"/Users/okennedy/Desktop/Website"
]
],
"_from": "metalsmith-assets@*",
"_id": "metalsmith-assets@0.1.0",
"_inCache": true,
"_installable": true,
"_location": "/metalsmith-assets",
"_npmUser": {
"email": "trey.griffith@gmail.com",
"name": "treygriffith"
},
"_npmVersion": "1.4.21",
"_phantomChildren": {},
"_requested": {
"name": "metalsmith-assets",
"raw": "metalsmith-assets",
"rawSpec": "",
"scope": null,
"spec": "*",
"type": "range"
},
"_requiredBy": [
"#USER"
],
"_resolved": "https://registry.npmjs.org/metalsmith-assets/-/metalsmith-assets-0.1.0.tgz",
"_shasum": "c838d483f09723ede8387449c6bfda9b3da3cc40",
"_shrinkwrap": null,
"_spec": "metalsmith-assets",
"_where": "/Users/okennedy/Desktop/Website",
"author": {
"email": "trey@tgriff3.com",
"name": "Trey Griffith"
},
"bugs": {
"url": "https://github.com/treygriffith/metalsmith-assets/issues"
},
"dependencies": {
"async": "^0.7.0",
"debug": "^0.8.1",
"merge": "^1.1.3",
"recursive-readdir": "^1.0.0",
"stat-mode": "^0.2.0"
},
"description": "Include static assets in your Metalsmith build",
"devDependencies": {
"assert-dir-equal": "0.x",
"metalsmith": "1.x",
"mocha": "1.x"
},
"directories": {},
"dist": {
"shasum": "c838d483f09723ede8387449c6bfda9b3da3cc40",
"tarball": "http://registry.npmjs.org/metalsmith-assets/-/metalsmith-assets-0.1.0.tgz"
},
"gitHead": "e925b241cacac336330f6434769a6548a2ae6207",
"homepage": "https://github.com/treygriffith/metalsmith-assets",
"keywords": [
"assets",
"metalsmith",
"static"
],
"license": "MIT",
"main": "index.js",
"maintainers": [
{
"name": "treygriffith",
"email": "trey.griffith@gmail.com"
}
],
"name": "metalsmith-assets",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "https://github.com/treygriffith/metalsmith-assets"
},
"scripts": {
"test": "make test"
},
"version": "0.1.0"
}

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="745.199px" height="161.769px" viewBox="0 0 745.199 161.769" enable-background="new 0 0 745.199 161.769"
xml:space="preserve">
<g>
<path fill="#262727" d="M48.849,126.552L69.07,1.363h28.173v159.042H79.521V28.855L57.709,160.406h-18.63L17.268,28.855v131.551H0
V1.363h28.627L48.849,126.552z"/>
<path fill="#262727" d="M164.491,1.363v16.813h-31.809v52.711h30.672v16.586h-30.672v56.119h32.263v16.813h-50.439V1.363H164.491z"
/>
<path fill="#262727" d="M196.298,160.406V18.176h-23.856V1.363h65.889v16.813h-23.856v142.229H196.298z"/>
<path fill="#262727" d="M307.627,160.406h-17.949l-3.862-26.583h-29.31l-3.635,26.583h-17.495L259.914,0.909h23.175
L307.627,160.406z M258.778,117.464h24.765l-12.269-87.928L258.778,117.464z"/>
<path fill="#262727" d="M338.294,1.363v142.229h29.991v16.813h-48.167V1.363H338.294z"/>
<path fill="#262727" d="M442.352,109.058v23.175c0,19.767-9.77,29.537-29.536,29.537h-4.999c-19.54,0-29.082-9.77-29.082-29.082
V99.288h17.722v34.081c0,8.179,3.863,12.042,12.042,12.042h3.635c8.179,0,12.042-3.862,12.042-12.042v-23.856
c0-7.952-2.726-11.36-7.952-15.223l-22.266-16.131c-11.814-8.407-15.223-16.586-15.223-29.537V29.537
C378.735,9.77,388.505,0,408.272,0h4.544c19.54,0,29.082,9.77,29.082,29.082V57.71h-17.722V28.4
c0-8.179-3.862-12.042-12.042-12.042h-3.181c-8.179,0-12.042,3.862-12.042,12.042v19.994c0,7.952,2.954,11.36,8.179,15.223
l22.039,15.904C438.717,87.928,442.352,95.426,442.352,109.058z"/>
<path fill="#262727" d="M507.328,126.552L527.549,1.363h28.173v159.042H538V28.855l-21.812,131.551h-18.63L475.747,28.855v131.551
h-17.268V1.363h28.627L507.328,126.552z"/>
<path fill="#262727" d="M591.389,160.406h-18.176V1.363h18.176V160.406z"/>
<path fill="#262727" d="M626.375,160.406V18.176h-23.856V1.363h65.889v16.813h-23.856v142.229H626.375z"/>
<path fill="#262727" d="M727.022,70.661V1.363h18.177v159.042h-18.177V87.701h-29.536v72.705H679.31V1.363h18.177v69.297H727.022z"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="745.199px" height="161.769px" viewBox="0 0 745.199 161.769" enable-background="new 0 0 745.199 161.769"
xml:space="preserve">
<g>
<path fill="#262727" d="M48.849,126.552L69.07,1.363h28.173v159.042H79.521V28.855L57.709,160.406h-18.63L17.268,28.855v131.551H0
V1.363h28.627L48.849,126.552z"/>
<path fill="#262727" d="M164.491,1.363v16.813h-31.809v52.711h30.672v16.586h-30.672v56.119h32.263v16.813h-50.439V1.363H164.491z"
/>
<path fill="#262727" d="M196.298,160.406V18.176h-23.856V1.363h65.889v16.813h-23.856v142.229H196.298z"/>
<path fill="#262727" d="M307.627,160.406h-17.949l-3.862-26.583h-29.31l-3.635,26.583h-17.495L259.914,0.909h23.175
L307.627,160.406z M258.778,117.464h24.765l-12.269-87.928L258.778,117.464z"/>
<path fill="#262727" d="M338.294,1.363v142.229h29.991v16.813h-48.167V1.363H338.294z"/>
<path fill="#262727" d="M442.352,109.058v23.175c0,19.767-9.77,29.537-29.536,29.537h-4.999c-19.54,0-29.082-9.77-29.082-29.082
V99.288h17.722v34.081c0,8.179,3.863,12.042,12.042,12.042h3.635c8.179,0,12.042-3.862,12.042-12.042v-23.856
c0-7.952-2.726-11.36-7.952-15.223l-22.266-16.131c-11.814-8.407-15.223-16.586-15.223-29.537V29.537
C378.735,9.77,388.505,0,408.272,0h4.544c19.54,0,29.082,9.77,29.082,29.082V57.71h-17.722V28.4
c0-8.179-3.862-12.042-12.042-12.042h-3.181c-8.179,0-12.042,3.862-12.042,12.042v19.994c0,7.952,2.954,11.36,8.179,15.223
l22.039,15.904C438.717,87.928,442.352,95.426,442.352,109.058z"/>
<path fill="#262727" d="M507.328,126.552L527.549,1.363h28.173v159.042H538V28.855l-21.812,131.551h-18.63L475.747,28.855v131.551
h-17.268V1.363h28.627L507.328,126.552z"/>
<path fill="#262727" d="M591.389,160.406h-18.176V1.363h18.176V160.406z"/>
<path fill="#262727" d="M626.375,160.406V18.176h-23.856V1.363h65.889v16.813h-23.856v142.229H626.375z"/>
<path fill="#262727" d="M727.022,70.661V1.363h18.177v159.042h-18.177V87.701h-29.536v72.705H679.31V1.363h18.177v69.297H727.022z"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="745.199px" height="161.769px" viewBox="0 0 745.199 161.769" enable-background="new 0 0 745.199 161.769"
xml:space="preserve">
<g>
<path fill="#262727" d="M48.849,126.552L69.07,1.363h28.173v159.042H79.521V28.855L57.709,160.406h-18.63L17.268,28.855v131.551H0
V1.363h28.627L48.849,126.552z"/>
<path fill="#262727" d="M164.491,1.363v16.813h-31.809v52.711h30.672v16.586h-30.672v56.119h32.263v16.813h-50.439V1.363H164.491z"
/>
<path fill="#262727" d="M196.298,160.406V18.176h-23.856V1.363h65.889v16.813h-23.856v142.229H196.298z"/>
<path fill="#262727" d="M307.627,160.406h-17.949l-3.862-26.583h-29.31l-3.635,26.583h-17.495L259.914,0.909h23.175
L307.627,160.406z M258.778,117.464h24.765l-12.269-87.928L258.778,117.464z"/>
<path fill="#262727" d="M338.294,1.363v142.229h29.991v16.813h-48.167V1.363H338.294z"/>
<path fill="#262727" d="M442.352,109.058v23.175c0,19.767-9.77,29.537-29.536,29.537h-4.999c-19.54,0-29.082-9.77-29.082-29.082
V99.288h17.722v34.081c0,8.179,3.863,12.042,12.042,12.042h3.635c8.179,0,12.042-3.862,12.042-12.042v-23.856
c0-7.952-2.726-11.36-7.952-15.223l-22.266-16.131c-11.814-8.407-15.223-16.586-15.223-29.537V29.537
C378.735,9.77,388.505,0,408.272,0h4.544c19.54,0,29.082,9.77,29.082,29.082V57.71h-17.722V28.4
c0-8.179-3.862-12.042-12.042-12.042h-3.181c-8.179,0-12.042,3.862-12.042,12.042v19.994c0,7.952,2.954,11.36,8.179,15.223
l22.039,15.904C438.717,87.928,442.352,95.426,442.352,109.058z"/>
<path fill="#262727" d="M507.328,126.552L527.549,1.363h28.173v159.042H538V28.855l-21.812,131.551h-18.63L475.747,28.855v131.551
h-17.268V1.363h28.627L507.328,126.552z"/>
<path fill="#262727" d="M591.389,160.406h-18.176V1.363h18.176V160.406z"/>
<path fill="#262727" d="M626.375,160.406V18.176h-23.856V1.363h65.889v16.813h-23.856v142.229H626.375z"/>
<path fill="#262727" d="M727.022,70.661V1.363h18.177v159.042h-18.177V87.701h-29.536v72.705H679.31V1.363h18.177v69.297H727.022z"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

20
node_modules/metalsmith-assets/test/index.js generated vendored Normal file
View File

@ -0,0 +1,20 @@
var assert = require('assert');
var equal = require('assert-dir-equal');
var Metalsmith = require('metalsmith');
var assets = require('..');
describe('metalsmith-assets', function(){
it('should copy assets', function(done){
Metalsmith('test/fixture')
.use(assets({
source: './assets',
destination: './assets'
}))
.build(function(err){
if (err) return done(err);
equal('test/fixture/expected', 'test/fixture/build');
done();
});
});
});

View File

@ -1,21 +1,39 @@
body {
padding: 0px;
margin: 0px;
background-image: linear-gradient(rgb(172, 172, 172) 50%, rgb(229, 229, 229) 100%);;
background-color: rgb(229, 229, 229);
background-image: linear-gradient(rgb(172, 172, 172) 50%, rgb(229, 229, 229) 100%);
background-repeat: no-repeat;
min-height: 100%;
}
.body_segment {
width: 900px;
margin-left: auto;
margin-right: auto;
}
.header_logo {
background-color: #041a9b;
width: 100%;
height: 40px;
height: 42px;
margin: 0px;
color: #ffffff;
padding: 8px;
border-bottom-style: solid;
border-bottom-color: black;
border-bottom-width: 1px;
}
.header_logo img {
padding-left: 8px;
padding-right: 8px;
padding-top: 6px;
}
.header_menu {
text-align: center;
height: 28px;
background-image:linear-gradient(#333344 50%, #666666 100%);
}
.header_menu a {