improving the design
parent
807961c155
commit
addc1b5631
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
13
build.js
13
build.js
|
@ -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())
|
||||
|
|
|
@ -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>
|
|
@ -0,0 +1 @@
|
|||
tests
|
|
@ -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.
|
|
@ -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
|
||||
```
|
|
@ -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"
|
||||
]
|
||||
}
|
|
@ -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);
|
|
@ -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);
|
|
@ -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"
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
node_modules: package.json
|
||||
@npm install
|
||||
|
||||
test: node_modules
|
||||
@./node_modules/.bin/mocha --reporter spec
|
||||
|
||||
.PHONY: test
|
|
@ -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
|
|
@ -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();
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
language: node_js
|
||||
node_js:
|
||||
- "0.10"
|
|
@ -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
|
@ -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
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
|
@ -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"
|
||||
}
|
|
@ -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 <tj@vision-media.ca>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
'Software'), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,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){}
|
|
@ -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 || '');
|
|
@ -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"
|
||||
}
|
|
@ -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"
|
||||
}
|
|
@ -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 |
|
@ -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 |
29
node_modules/metalsmith-assets/test/fixture/expected/assets/logo.svg
generated
vendored
Normal file
29
node_modules/metalsmith-assets/test/fixture/expected/assets/logo.svg
generated
vendored
Normal 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 |
|
@ -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();
|
||||
});
|
||||
});
|
||||
});
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue