organize things a little bit, add more projects

This commit is contained in:
Sami Samhuri 2010-11-29 23:09:29 -08:00
parent 6d376b14d5
commit 675b0b0c79
31 changed files with 695 additions and 185 deletions

2
Makefile Normal file
View file

@ -0,0 +1,2 @@
build:
./build.js

18
TODO
View file

@ -1,6 +1,24 @@
TODO
====
* last commit date
* svg commit graph
* favicon
* offline cache
* semantic markup (section, nav, header, footer, etc)
* css3 transitions
* promote JS links on project pages (the only ones that mention javascript so far!)
* link to github finder on project pages
* cache github data in ie6 and ie7 (cookies?)
* fix display issues in ie6
* more gradients? any other cool visualizations?

View file

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -14,7 +14,6 @@
, ie
if (isBrowser) {
// fuck ie
ie = (function() {
var undef
, v = 3
@ -48,7 +47,7 @@
ctor.prototype.__proto__ = superCtor.prototype
ctor.prototype.constructor = ctor
}
} else { // fuck ie
} else {
var __hasProp = Object.prototype.hasOwnProperty
inherits = function(child, parent) {
for (var key in parent) {
@ -209,7 +208,7 @@
var dataProp = '_' + prop
, fn = 'get' + titleCaseFirst(prop)
, processData = function(d) {
if (ie < 9) { // fuck ie
if (ie < 9) {
this[dataProp] = camelize(unpack(d))
} else {
getter(this, dataProp, function() { return camelize(unpack(d))})
@ -426,7 +425,7 @@
var has = Object.prototype.hasOwnProperty;
// ES5 15.2.3.6
if (!Object.defineProperty || ie === 8) { // fuck ie
if (!Object.defineProperty || ie === 8) {
Object.defineProperty = function(object, property, descriptor) {
if (typeof descriptor == "object" && object.__defineGetter__) {
if (has.call(descriptor, "value")) {
@ -450,7 +449,7 @@
// ES5 15.2.3.14
// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
if (!Object.keys) { // fuck ie
if (!Object.keys) {
(function() {
var hasDontEnumBug = true,
dontEnums = [
@ -509,7 +508,7 @@
}
// ES5 15.4.4.18
if (!Array.prototype.forEach) { // fuck ie
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(block, thisObject) {
var len = this.length >>> 0;
for (var i = 0; i < len; i++) {
@ -522,7 +521,7 @@
// ES5 15.4.4.19
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map
if (!Array.prototype.map) { // fuck ie
if (!Array.prototype.map) {
Array.prototype.map = function(fun /*, thisp*/) {
var len = this.length >>> 0;
if (typeof fun != "function")
@ -540,7 +539,7 @@
}
// ES5 15.4.4.20
if (!Array.prototype.filter) { // fuck ie
if (!Array.prototype.filter) {
Array.prototype.filter = function (block /*, thisp */) {
var values = [];
var thisp = arguments[1];
@ -553,7 +552,7 @@
// ES5 15.4.4.21
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce
if (!Array.prototype.reduce) { // fuck ie
if (!Array.prototype.reduce) {
Array.prototype.reduce = function(fun /*, initial*/) {
var len = this.length >>> 0;
if (typeof fun != "function")

View file

@ -8,7 +8,8 @@
; -moz-border-radius: 20px
; -webkit-border-radius: 20px
; border-radius: 20px
; behavior: url(../../border-radius.htc) /* fuck ie */
; behavior: url(../assets/border-radius.htc)
; behavior: url(../../assets/border-radius.htc)
}
h4 { margin: 0.5em 0 0.7em }
@ -18,7 +19,7 @@ h4 { margin: 0.5em 0 0.7em }
; width: 31%
; max-width: 400px
; float: left
; display: inline /* fuck ie */
; display: inline
; padding: 0.5em 0.2em
; border-left: dashed 1px #aaa
}

View file

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -30,7 +30,7 @@
}
}
global.ObjectStore = global.createObjectStore('default')
} else { // fuck ie
} else {
// Create an in-memory store, should probably fall back to cookies
global.createObjectStore = function() {
var store = {}

View file

@ -49,14 +49,8 @@ ul { text-align: center
; -moz-border-radius: 20px
; -webkit-border-radius: 20px
; border-radius: 20px
/* ie searches for this path relative to the referencing file,
* not this file as any sane implementation would do.
*
* fuck ie
*/
; behavior: url(border-radius.htc)
; behavior: url(../border-radius.htc)
; behavior: url(assets/border-radius.htc)
; behavior: url(../assets/border-radius.htc)
}
li { display: inline
@ -68,11 +62,10 @@ li { display: inline
li:after { content: ' •' }
li:last-child:after { content: '' }
li.ie-bullet { display: none } /* fuck ie */
li.last:after { content: '' } /* fuck ie */
li a { padding: 5px
; text-shadow: #999 5px 5px 5px
; -webkit-transition: all 0.5s ease-out
}
li a:visited { color: #227 }
@ -82,6 +75,20 @@ li a:active { color: #000
; border-bottom: dashed 1px #000
}
ul#projects { width: 40%
; max-width: 400px
}
ul#projects li { display: block
; line-height: 1.8em
}
li.ie-bullet,
ul#projects li.ie-bullet { display: none }
li.last:after,
ul#projects li:after { content: '' }
#sjs { text-align: center
; font-size: 1.2em
}
@ -124,10 +131,11 @@ td:nth-child(2) { padding: 0 10px }
}
li { display: block
; margin: 0.7em 0.7em 1em
; font-size: 1.5em
; line-height: 1.6em
}
li:after { content: '' }
li:after { content: '' }
}
/* iPhone */

76
build.js Executable file
View file

@ -0,0 +1,76 @@
#!/usr/bin/env node
var constants
, fs = require('fs')
, path = require('path')
, mustache = require('mustache')
, EEXIST
, ENOENT
, _template
, _n = 0
try {
constants = require('constants')
} catch (e) {
constants = process
}
EEXIST = constants.EEXIST
ENOENT = constants.ENOENT
function main() {
fs.readFile(path.join(__dirname, 'templates', 'proj', 'proj', 'index.html'), function(err, html) {
if (err) throw err
_template = html.toString()
fs.readFile(path.join(__dirname, 'projects.json'), function(err, json) {
if (err) throw err
var projects = JSON.parse(json)
, names = Object.keys(projects)
, index = path.join(__dirname, 'proj', 'index.html')
// write project index
fs.readFile(path.join(__dirname, 'templates', 'proj', 'index.html'), function(err, tpl) {
if (err) throw err
fs.mkdir(path.join(__dirname, 'proj'), 0775, function(err) {
if (err && err.errno !== EEXIST) throw err
fs.unlink(index, function(err) {
if (err && err.errno !== ENOENT) throw err
var vals = { names: names.slice(0, -1)
, lastName: names[names.length-1]
}
, html = mustache.to_html(tpl.toString(), vals)
fs.writeFile(index, html, function(err) {
if (err) throw err
console.log('* (project index)')
})
})
})
})
// write project pages
names.forEach(function(name) {
_n += 1
buildProject(name, projects[name])
})
})
})
}
function buildProject(name, project) {
var dir = path.join(__dirname, 'proj', name)
, index = path.join(dir, 'index.html')
fs.mkdir(dir, 0775, function(err) {
if (err && err.errno !== EEXIST) throw err
fs.unlink(index, function(err) {
if (err && err.errno !== ENOENT) throw err
project.name = name
fs.writeFile(index, mustache.to_html(_template, project), function(err) {
if (err) console.error('error: ', err.message)
_n -= 1
console.log('* ' + name + (err ? ' (failed)' : ''))
if (_n === 0) console.log('done')
})
})
})
}
if (module == require.main) main()

View file

@ -3,10 +3,9 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>samhuri.net</title>
<link rel=stylesheet href=style.css>
<!-- fuck ie -->
<link rel=stylesheet href=assets/style.css>
<!--[if lt IE 8]>
<link rel=stylesheet href=ie7.css>
<link rel=stylesheet href=assets/ie7.css>
<![endif]-->
<script>
var _gaq = _gaq || [];

View file

@ -3,8 +3,8 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>batteries :: samhuri.net</title>
<link rel=stylesheet href=../../style.css>
<link rel=stylesheet href=../proj.css>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
@ -16,38 +16,37 @@
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- fuck ie -->
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../gitter.js></script>
<script src=../store.js></script>
<script src=../proj.js></script>
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('batteries') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/batteries><img id=forkme src=../forkme.png alt="Fork me on GitHub"></a>
<a href=https://github.com/samsonjs/batteries><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>batteries</h1>
<h2>a general purpose node library</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../spinner.gif></span> watcher<span id=wplural>s</span></td>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../spinner.gif></span> fork<span id=fplural>s</span></td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../spinner.gif></span>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../spinner.gif></span>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../spinner.gif></span>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>

55
proj/bin/index.html Normal file
View file

@ -0,0 +1,55 @@
<!doctype html>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>bin :: samhuri.net</title>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('bin') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/bin><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>bin</h1>
<h2>~/bin</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>
<p id=sjs>
<a href=https://twitter.com/_sjs>@_sjs</a>
</p>

View file

@ -1,52 +0,0 @@
#!/usr/bin/env node
var constants
, fs = require('fs')
, path = require('path')
, mustache = require('mustache')
, EEXIST
, ENOENT
, _template
, _n = 0
try {
constants = require('constants')
} catch (e) {
constants = process
}
EEXIST = constants.EEXIST
ENOENT = constants.ENOENT
function main() {
fs.readFile(path.join(__dirname, 'template', 'index.html'), function(err, html) {
if (err) throw err
_template = html.toString()
fs.readFile(path.join(__dirname, 'projects.json'), function(err, json) {
if (err) throw err
var projects = JSON.parse(json)
Object.keys(projects).forEach(function(name) {
_n += 1
buildProject(name, projects[name])
})
})
})
}
function buildProject(name, project) {
var dir = path.join(__dirname, name)
, index = path.join(dir, 'index.html')
fs.mkdir(dir, 0775, function(err) {
if (err && err.errno !== EEXIST) throw err
fs.unlink(index, function(err) {
if (err && err.errno !== ENOENT) throw err
project.name = name
fs.writeFile(index, mustache.to_html(_template, project), function(err) {
_n -= 1
console.log('* ' + name)
if (_n === 0) console.log('done')
})
})
})
}
if (module == require.main) main()

55
proj/cheat.el/index.html Normal file
View file

@ -0,0 +1,55 @@
<!doctype html>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>cheat.el :: samhuri.net</title>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('cheat.el') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/cheat.el><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>cheat.el</h1>
<h2>cheat from emacs</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>
<p id=sjs>
<a href=https://twitter.com/_sjs>@_sjs</a>
</p>

55
proj/compiler/index.html Normal file
View file

@ -0,0 +1,55 @@
<!doctype html>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>compiler :: samhuri.net</title>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('compiler') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/compiler><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>compiler</h1>
<h2>an x86 compiler written in ruby</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>
<p id=sjs>
<a href=https://twitter.com/_sjs>@_sjs</a>
</p>

55
proj/config/index.html Normal file
View file

@ -0,0 +1,55 @@
<!doctype html>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>config :: samhuri.net</title>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('config') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/config><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>config</h1>
<h2>important dot files (zsh, emacs, vim, screen)</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>
<p id=sjs>
<a href=https://twitter.com/_sjs>@_sjs</a>
</p>

View file

@ -3,8 +3,8 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>format :: samhuri.net</title>
<link rel=stylesheet href=../../style.css>
<link rel=stylesheet href=../proj.css>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
@ -16,38 +16,37 @@
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- fuck ie -->
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../gitter.js></script>
<script src=../store.js></script>
<script src=../proj.js></script>
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('format') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/format><img id=forkme src=../forkme.png alt="Fork me on GitHub"></a>
<a href=https://github.com/samsonjs/format><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>format</h1>
<h2>printf for JavaScript</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../spinner.gif></span> watcher<span id=wplural>s</span></td>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../spinner.gif></span> fork<span id=fplural>s</span></td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../spinner.gif></span>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../spinner.gif></span>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../spinner.gif></span>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>

View file

@ -3,8 +3,8 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>gitter :: samhuri.net</title>
<link rel=stylesheet href=../../style.css>
<link rel=stylesheet href=../proj.css>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
@ -16,38 +16,37 @@
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- fuck ie -->
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../gitter.js></script>
<script src=../store.js></script>
<script src=../proj.js></script>
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('gitter') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/gitter><img id=forkme src=../forkme.png alt="Fork me on GitHub"></a>
<a href=https://github.com/samsonjs/gitter><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>gitter</h1>
<h2>a GitHub client for Node (v2 API)</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../spinner.gif></span> watcher<span id=wplural>s</span></td>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../spinner.gif></span> fork<span id=fplural>s</span></td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../spinner.gif></span>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../spinner.gif></span>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../spinner.gif></span>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>

View file

@ -3,10 +3,10 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>projects :: samhuri.net</title>
<link rel=stylesheet href=../style.css>
<!-- fuck ie -->
<link rel=stylesheet href=../assets/style.css>
<!--[if lt IE 8]>
<link rel=stylesheet href=../ie7.css>
<link rel=stylesheet href=../assets/ie7.css>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<style>
#gh { text-align: center }
@ -18,37 +18,29 @@
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- fuck ie -->
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=gitter.js></script>
<script src=store.js></script>
<script src=../assets/gitter.js></script>
<script src=../assets/store.js></script>
<script>
if (typeof console === 'undefined') {
console = {log:function(){}}
}
(function() {
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', ready, false)
} else if (window.attachEvent) { // fuck ie
} else if (window.attachEvent) {
window.attachEvent('onload', ready)
}
function ready() {
function addClass(el, name) {
var c = el.className || name
if (!c.match(new RegExp('\b' + name + '\b', 'i'))) c += ' ' + name
}
var body = document.getElementsByTagName('body')[0]
, text
if ('innerText' in body) {
@ -60,7 +52,6 @@
document.getElementById(id).textContent = text
}
}
function highlight(id) {
document.getElementById(id).style.className = ' highlight'
}
@ -71,7 +62,6 @@
function updateN(name, things) {
textHighlight('n' + name, things.length)
}
var data = createObjectStore('proj')
, t = data.get('t-proj')
, names = ['followers', 'following', 'repos', 'watched']
@ -99,32 +89,44 @@
</script>
</head>
<div id=breadcrumbs><a href=../>samhuri.net</a></div>
<a href=https://github.com/samsonjs><img id=forkme src=forkme.png alt="Fork me on GitHub"></a>
<a href=https://github.com/samsonjs><img id=forkme src=../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>projects</h1>
<ul>
<li><a href=batteries>batteries</a></li>
<ul id=projects>
<li><a href=batteries>batteries</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=format>format</a></li>
<li><a href=bin>bin</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=gitter>gitter</a></li>
<li><a href=cheat.el>cheat.el</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=repl-edit>repl-edit</a></li>
<li><a href=compiler>compiler</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=config>config</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=format>format</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=gitter>gitter</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=mojo.el>mojo.el</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=repl-edit>repl-edit</a></li>
<li class=ie-bullet>&bull;</li>
<li><a href=samhuri.net>samhuri.net</a></li>
<li class=ie-bullet>&bull;</li>
<li class=last><a href=strftime>strftime</a></li>
</ul>
<p id=gh>
<a class=img href=https://github.com/samsonjs><img src=gh.png alt=GitHub></a>
<a class=img href=https://github.com/samsonjs><img src=../assets/gh.png alt=GitHub></a>
</p>
<table align=center>
<tr>
<td align=right><span id=nrepos><img src=spinner.gif></span> projects</td>
<td align=right><span id=nrepos><img src=../assets/spinner.gif></span> projects</td>
<td>&mdash;</td>
<td align=left><span id=nfollowers><img src=spinner.gif></span> followers</td>
<td align=left><span id=nfollowers><img src=../assets/spinner.gif></span> followers</td>
</tr>
<tr>
<td align=right>watching <span id=nwatched><img src=spinner.gif></span> projects
<td align=right>watching <span id=nwatched><img src=../assets/spinner.gif></span> projects
<td>&mdash;</td>
<td align=left>following <span id=nfollowing><img src=spinner.gif></span> people</td>
<td align=left>following <span id=nfollowing><img src=../assets/spinner.gif></span> people</td>
</tr>
</table>
<p id=sjs>
@ -132,4 +134,4 @@
</p>
<p id=promote-js>
<a class=img href=https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function title='JS Function arity'><img src=http://static.jsconf.us/promotejsh.gif height=150 width=180 alt='JS Function arity'/></a>
</p>
</p>

55
proj/mojo.el/index.html Normal file
View file

@ -0,0 +1,55 @@
<!doctype html>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>mojo.el :: samhuri.net</title>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('mojo.el') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/mojo.el><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>mojo.el</h1>
<h2>turn emacs into a sweet mojo editor</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>
<p id=sjs>
<a href=https://twitter.com/_sjs>@_sjs</a>
</p>

View file

@ -1,6 +0,0 @@
{ "batteries" : { "description" : "a general purpose node library" }
, "format" : { "description" : "printf for JavaScript" }
, "gitter" : { "description" : "a GitHub client for Node (v2 API)" }
, "repl-edit" : { "description" : "edit Node repl commands with your text editor" }
, "strftime" : { "description" : "strftime for JavaScript" }
}

View file

@ -3,8 +3,8 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>repl-edit :: samhuri.net</title>
<link rel=stylesheet href=../../style.css>
<link rel=stylesheet href=../proj.css>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
@ -16,38 +16,37 @@
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- fuck ie -->
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../gitter.js></script>
<script src=../store.js></script>
<script src=../proj.js></script>
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('repl-edit') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/repl-edit><img id=forkme src=../forkme.png alt="Fork me on GitHub"></a>
<a href=https://github.com/samsonjs/repl-edit><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>repl-edit</h1>
<h2>edit Node repl commands with your text editor</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../spinner.gif></span> watcher<span id=wplural>s</span></td>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../spinner.gif></span> fork<span id=fplural>s</span></td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../spinner.gif></span>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../spinner.gif></span>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../spinner.gif></span>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>

View file

@ -0,0 +1,55 @@
<!doctype html>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>samhuri.net :: samhuri.net</title>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('samhuri.net') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/samhuri.net><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>samhuri.net</h1>
<h2>this site</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>
<p id=sjs>
<a href=https://twitter.com/_sjs>@_sjs</a>
</p>

View file

@ -3,8 +3,8 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>strftime :: samhuri.net</title>
<link rel=stylesheet href=../../style.css>
<link rel=stylesheet href=../proj.css>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
@ -16,38 +16,37 @@
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- fuck ie -->
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../gitter.js></script>
<script src=../store.js></script>
<script src=../proj.js></script>
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('strftime') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/strftime><img id=forkme src=../forkme.png alt="Fork me on GitHub"></a>
<a href=https://github.com/samsonjs/strftime><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>strftime</h1>
<h2>strftime for JavaScript</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../spinner.gif></span> watcher<span id=wplural>s</span></td>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../spinner.gif></span> fork<span id=fplural>s</span></td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../spinner.gif></span>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../spinner.gif></span>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../spinner.gif></span>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>

12
projects.json Normal file
View file

@ -0,0 +1,12 @@
{ "batteries" : { "description" : "a general purpose node library" }
, "bin" : { "description" : "~/bin" }
, "cheat.el" : { "description" : "cheat from emacs" }
, "compiler" : { "description" : "an x86 compiler written in ruby" }
, "config" : { "description" : "important dot files (zsh, emacs, vim, screen)" }
, "format" : { "description" : "printf for JavaScript" }
, "gitter" : { "description" : "a GitHub client for Node (v2 API)" }
, "mojo.el" : { "description" : "turn emacs into a sweet mojo editor" }
, "repl-edit" : { "description" : "edit Node repl commands with your text editor" }
, "samhuri.net" : { "description" : "this site" }
, "strftime" : { "description" : "strftime for JavaScript" }
}

127
templates/proj/index.html Normal file
View file

@ -0,0 +1,127 @@
<!doctype html>
<head>
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>projects :: samhuri.net</title>
<link rel=stylesheet href=../assets/style.css>
<!--[if lt IE 8]>
<link rel=stylesheet href=../assets/ie7.css>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<style>
#gh { text-align: center }
#gh img { border: none }
span { padding: 5px }
</style>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
, ['_trackPageview']
);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script src=../assets/gitter.js></script>
<script src=../assets/store.js></script>
<script>
if (typeof console === 'undefined') {
console = {log:function(){}}
}
(function() {
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', ready, false)
} else if (window.attachEvent) {
window.attachEvent('onload', ready)
}
function ready() {
function addClass(el, name) {
var c = el.className || name
if (!c.match(new RegExp('\b' + name + '\b', 'i'))) c += ' ' + name
}
var body = document.getElementsByTagName('body')[0]
, text
if ('innerText' in body) {
text = function(id, text) {
document.getElementById(id).innerText = text
}
} else {
text = function(id, text) {
document.getElementById(id).textContent = text
}
}
function highlight(id) {
document.getElementById(id).style.className = ' highlight'
}
function textHighlight(id, t) {
text(id, t)
document.getElementById(id).className = ' highlight'
}
function updateN(name, things) {
textHighlight('n' + name, things.length)
}
var data = createObjectStore('proj')
, t = data.get('t-proj')
, names = ['followers', 'following', 'repos', 'watched']
if (!t || +new Date() - t > 86400000) {
console.log('stale ' + String(t))
data.set('t-proj', +new Date())
names.forEach(function(name) {
GITR[name]('samsonjs', function(err, things) {
if (err) {
text('n' + name, '?')
} else {
data.set(name, things)
updateN(name, things)
}
})
})
} else {
console.log('hit ' + t + ' (' + (+new Date() - t) + ')')
names.forEach(function(name) {
updateN(name, data.get(name))
})
}
}
}())
</script>
</head>
<div id=breadcrumbs><a href=../>samhuri.net</a></div>
<a href=https://github.com/samsonjs><img id=forkme src=../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>projects</h1>
<ul id=projects>
{{#names}}
<li><a href={{.}}>{{.}}</a></li>
<li class=ie-bullet>&bull;</li>
{{/names}}
<li class=last><a href={{lastName}}>{{lastName}}</a></li>
</ul>
<p id=gh>
<a class=img href=https://github.com/samsonjs><img src=../assets/gh.png alt=GitHub></a>
</p>
<table align=center>
<tr>
<td align=right><span id=nrepos><img src=../assets/spinner.gif></span> projects</td>
<td>&mdash;</td>
<td align=left><span id=nfollowers><img src=../assets/spinner.gif></span> followers</td>
</tr>
<tr>
<td align=right>watching <span id=nwatched><img src=../assets/spinner.gif></span> projects
<td>&mdash;</td>
<td align=left>following <span id=nfollowing><img src=../assets/spinner.gif></span> people</td>
</tr>
</table>
<p id=sjs>
<a href=https://twitter.com/_sjs>@_sjs</a>
</p>
<p id=promote-js>
<a class=img href=https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function title='JS Function arity'><img src=http://static.jsconf.us/promotejsh.gif height=150 width=180 alt='JS Function arity'/></a>
</p>

View file

@ -3,8 +3,8 @@
<meta charset=utf-8>
<meta name=viewport content=width=device-width>
<title>{{name}} :: samhuri.net</title>
<link rel=stylesheet href=../../style.css>
<link rel=stylesheet href=../proj.css>
<link rel=stylesheet href=../../assets/style.css>
<link rel=stylesheet href=../../assets/proj.css>
<script>
var _gaq = _gaq || [];
_gaq.push( ['_setAccount', 'UA-214054-5']
@ -17,38 +17,37 @@
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- fuck ie -->
<!--[if lt IE 8]>
<script src=http://d1eqzjbvoh1rux.cloudfront.net/json2.min.js></script>
<![endif]-->
<script src=../gitter.js></script>
<script src=../store.js></script>
<script src=../proj.js></script>
<script src=../../assets/gitter.js></script>
<script src=../../assets/store.js></script>
<script src=../../assets/proj.js></script>
<script> SJS.proj('{{name}}') </script>
</head>
<div id=breadcrumbs><a href=../../>samhuri.net</a> &rarr; <a href=../>projects</a></div>
<a href=https://github.com/samsonjs/{{name}}><img id=forkme src=../forkme.png alt="Fork me on GitHub"></a>
<a href=https://github.com/samsonjs/{{name}}><img id=forkme src=../../assets/forkme.png alt="Fork me on GitHub"></a>
<h1>{{name}}</h1>
<h2>{{description}}</h2>
<table align=center>
<tr>
<td align=right><span id=nwatchers><img src=../spinner.gif></span> watcher<span id=wplural>s</span></td>
<td align=right><span id=nwatchers><img src=../../assets/spinner.gif></span> watcher<span id=wplural>s</span></td>
<td>&mdash;</td>
<td align=left><span id=nforks><img src=../spinner.gif></span> fork<span id=fplural>s</span></td>
<td align=left><span id=nforks><img src=../..//assets/spinner.gif></span> fork<span id=fplural>s</span></td>
</tr>
</table>
<div id=info>
<div>
<h4>branches</h4>
<span id=branches><img src=../spinner.gif></span>
<span id=branches><img src=../../assets/spinner.gif></span>
</div>
<div>
<h4>languages</h4>
<span id=langs><img src=../spinner.gif></span>
<span id=langs><img src=../..//assets/spinner.gif></span>
</div>
<div>
<h4>contributors</h4>
<span id=contributors><img src=../spinner.gif></span>
<span id=contributors><img src=../..//assets/spinner.gif></span>
</div>
<br class=clear>
</div>