diff --git a/.gitignore b/.gitignore index 25e35ae..74a000a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,7 @@ -.DS_Store _blog -assets/*.min.js -assets/*.min.css +public/js/*.js +public/css/*.css discussd/discuss.dirty -blog -!templates/blog -proj -!templates/proj +public/blog +public/proj node_modules diff --git a/.publish b/.publish deleted file mode 100644 index 546a9f9..0000000 --- a/.publish +++ /dev/null @@ -1,2 +0,0 @@ -publish_host=samhuri.net -publish_dir=samhuri.net/public/ diff --git a/Makefile b/Makefile index 9de9aa3..2d667ac 100644 --- a/Makefile +++ b/Makefile @@ -1,51 +1,51 @@ -JAVASCRIPTS=assets/blog.js assets/gitter.js assets/jquery-serializeObject.js assets/proj.js \ - assets/request.js assets/showdown.js assets/storage-polyfill.js assets/store.js \ - assets/strftime.js assets/tmpl.js - -MIN_JAVASCRIPTS=assets/blog.min.js assets/gitter.min.js assets/jquery-serializeObject.min.js assets/proj.min.js \ - assets/request.min.js assets/showdown.min.js assets/storage-polyfill.min.js assets/store.min.js \ - assets/strftime.min.js assets/tmpl.min.js - -STYLESHEETS=assets/style.css assets/blog.css assets/proj.css - -MIN_STYLESHEETS=assets/style.min.css assets/blog.min.css assets/proj.min.css - -POSTS=$(shell echo _blog/published/*.html) +JAVASCRIPTS=$(shell echo assets/js/*.js) +STYLESHEETS=$(shell echo assets/css/*.css) +POSTS=$(shell echo _blog/published/*.html) $(shell echo _blog/published/*.md) all: proj blog combine -proj: projects.json templates/proj/index.html templates/proj/proj/index.html - ./build.js +proj: projects.json templates/proj/index.html templates/proj/project.html + @echo + ./bin/projects.js projects.json public/proj blog: _blog/blog.json templates/blog/index.html templates/blog/post.html $(POSTS) @echo - ./blog.rb _blog blog + ./bin/blog.rb _blog public/blog minify: $(JAVASCRIPTS) $(STYLESHEETS) @echo - ./minify.sh + ./bin/minify.sh -combine: minify $(MIN_JAVASCRIPTS) $(MIN_STYLESHEETS) +combine: minify $(JAVASCRIPTS) $(STYLESHEETS) @echo - ./combine.sh + ./bin/combine.sh -publish_blog: blog combine - publish assets - publish blog - scp blog/posts.json bohodev.net:discussd/posts.json +publish_assets: combine + @echo + ./bin/publish.sh --delete public/css public/images public/js -publish_proj: proj combine - publish assets - publish proj +publish_blog: blog publish_assets + @echo + ./bin/publish.sh --delete public/blog + scp public/blog/posts.json bohodev.net:discussd/posts.json -publish: publish_blog publish_proj index.html - publish index.html - publish .htaccess +publish_proj: proj publish_assets + @echo + ./bin/publish.sh --delete proj + +publish_index: public/index.html + @echo + ./bin/publish.sh public/index.html + +publish: publish_index publish_blog publish_proj + @echo + ./bin/publish.sh public/.htaccess + ./bin/publish.sh public/favicon.ico clean: - rm -rf proj/* - rm -rf blog/* - rm assets/*.min.js - rm assets/*.min.css + rm -rf public/proj/* + rm -rf public/blog/* + rm public/css/*.css + rm public/js/*.js .PHONY: proj blog diff --git a/assets/blog.css b/assets/css/blog.css similarity index 96% rename from assets/blog.css rename to assets/css/blog.css index ba30de2..d6834ee 100644 --- a/assets/blog.css +++ b/assets/css/blog.css @@ -1,5 +1,7 @@ body { margin: 0 - ; padding: 0 + ; padding: 0 0 4em + ; position: relative + ; min-height: 100% } h1 { margin: 0 @@ -168,6 +170,8 @@ footer { margin: 0 ; border-top: solid 1px #bbb ; clear: both ; width: 100% + ; position: absolute + ; bottom: 0 } footer p { margin: 0.5em } diff --git a/assets/css/ie6.css b/assets/css/ie6.css new file mode 100644 index 0000000..dc74a5d --- /dev/null +++ b/assets/css/ie6.css @@ -0,0 +1,7 @@ +ul { behavior: none + ; padding-bottom: 25px + } + +img { behavior: url(../js/iepngfix.htc) + ; behavior: url(../../js/iepngfix.htc) + } diff --git a/assets/ie7.css b/assets/css/ie7.css similarity index 100% rename from assets/ie7.css rename to assets/css/ie7.css diff --git a/assets/mobile.css b/assets/css/mobile.css similarity index 100% rename from assets/mobile.css rename to assets/css/mobile.css diff --git a/assets/proj-common.css b/assets/css/proj-common.css similarity index 100% rename from assets/proj-common.css rename to assets/css/proj-common.css diff --git a/assets/proj-index.css b/assets/css/proj-index.css similarity index 100% rename from assets/proj-index.css rename to assets/css/proj-index.css diff --git a/assets/proj.css b/assets/css/proj.css similarity index 89% rename from assets/proj.css rename to assets/css/proj.css index 3af80a7..3ea6b8e 100644 --- a/assets/proj.css +++ b/assets/css/proj.css @@ -8,8 +8,8 @@ ; -moz-border-radius: 20px ; -webkit-border-radius: 20px ; border-radius: 20px - ; behavior: url(../assets/border-radius.htc) - ; behavior: url(../../assets/border-radius.htc) + ; behavior: url(../js/border-radius.htc) + ; behavior: url(../../js/border-radius.htc) } h4 { margin: 0.5em 0 0.7em } diff --git a/assets/style.css b/assets/css/style.css similarity index 94% rename from assets/style.css rename to assets/css/style.css index c244c63..7812453 100644 --- a/assets/style.css +++ b/assets/css/style.css @@ -47,8 +47,8 @@ ul.nav { text-align: center ; -moz-border-radius: 20px ; -webkit-border-radius: 20px ; border-radius: 20px - ; behavior: url(assets/border-radius.htc) - ; behavior: url(../assets/border-radius.htc) + ; behavior: url(js/border-radius.htc) + ; behavior: url(../js/border-radius.htc) } ul.nav li { display: block diff --git a/assets/ie6.css b/assets/ie6.css deleted file mode 100644 index f36b4cf..0000000 --- a/assets/ie6.css +++ /dev/null @@ -1,7 +0,0 @@ -ul { behavior: none - ; padding-bottom: 25px - } - -img { behavior: url(../assets/iepngfix.htc) - ; behavior: url(../../assets/iepngfix.htc) - } diff --git a/assets/img/dir.gif b/assets/img/dir.gif deleted file mode 100644 index 22544a4..0000000 Binary files a/assets/img/dir.gif and /dev/null differ diff --git a/assets/img/dir.png b/assets/img/dir.png deleted file mode 100644 index bd94124..0000000 Binary files a/assets/img/dir.png and /dev/null differ diff --git a/assets/img/folder_explore.png b/assets/img/folder_explore.png deleted file mode 100644 index 0ba9391..0000000 Binary files a/assets/img/folder_explore.png and /dev/null differ diff --git a/assets/img/la.gif b/assets/img/la.gif deleted file mode 100644 index 558a91d..0000000 Binary files a/assets/img/la.gif and /dev/null differ diff --git a/assets/img/la.png b/assets/img/la.png deleted file mode 100644 index bed6288..0000000 Binary files a/assets/img/la.png and /dev/null differ diff --git a/assets/img/la_h.gif b/assets/img/la_h.gif deleted file mode 100644 index 2a7993d..0000000 Binary files a/assets/img/la_h.gif and /dev/null differ diff --git a/assets/img/la_h.png b/assets/img/la_h.png deleted file mode 100644 index 626cb8c..0000000 Binary files a/assets/img/la_h.png and /dev/null differ diff --git a/assets/img/txt.gif b/assets/img/txt.gif deleted file mode 100644 index f3e5c7a..0000000 Binary files a/assets/img/txt.gif and /dev/null differ diff --git a/assets/img/txt.png b/assets/img/txt.png deleted file mode 100644 index f3638cb..0000000 Binary files a/assets/img/txt.png and /dev/null differ diff --git a/assets/blog.js b/assets/js/blog.js similarity index 100% rename from assets/blog.js rename to assets/js/blog.js diff --git a/assets/gitter.js b/assets/js/gitter.js similarity index 100% rename from assets/gitter.js rename to assets/js/gitter.js diff --git a/assets/jquery-serializeObject.js b/assets/js/jquery-serializeObject.js similarity index 100% rename from assets/jquery-serializeObject.js rename to assets/js/jquery-serializeObject.js diff --git a/assets/proj.js b/assets/js/proj.js similarity index 100% rename from assets/proj.js rename to assets/js/proj.js diff --git a/assets/request.js b/assets/js/request.js similarity index 100% rename from assets/request.js rename to assets/js/request.js diff --git a/assets/showdown.js b/assets/js/showdown.js similarity index 100% rename from assets/showdown.js rename to assets/js/showdown.js diff --git a/assets/storage-polyfill.js b/assets/js/storage-polyfill.js similarity index 100% rename from assets/storage-polyfill.js rename to assets/js/storage-polyfill.js diff --git a/assets/store.js b/assets/js/store.js similarity index 100% rename from assets/store.js rename to assets/js/store.js diff --git a/assets/strftime.js b/assets/js/strftime.js similarity index 100% rename from assets/strftime.js rename to assets/js/strftime.js diff --git a/assets/tmpl.js b/assets/js/tmpl.js similarity index 100% rename from assets/tmpl.js rename to assets/js/tmpl.js diff --git a/blog.rb b/bin/blog.rb similarity index 99% rename from blog.rb rename to bin/blog.rb index f44d046..e6e3789 100755 --- a/blog.rb +++ b/bin/blog.rb @@ -174,7 +174,7 @@ class Blag xml = Builder::XmlMarkup.new xml.instruct! :xml, :version => '1.0' - xml.instruct! 'xml-stylesheet', :href => 'http://samhuri.net/assets/blog-all.min.css', :type => 'text/css' + xml.instruct! 'xml-stylesheet', :href => 'http://samhuri.net/css/blog-all.min.css', :type => 'text/css' xml.rss :version => '2.0' do xml.channel do xml.title title diff --git a/bin/combine.sh b/bin/combine.sh new file mode 100755 index 0000000..d78f152 --- /dev/null +++ b/bin/combine.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env zsh + +### javascript ### + +# blog +echo "request,showdown,strftime,tmpl,jquery-serializeObject,blog -> blog-all.min.js" +cat public/js/{request,showdown,strftime,tmpl,jquery-serializeObject,blog}.min.js >|public/js/blog-all.min.js + +# project index +echo "gitter,store -> proj-index-all.min.js" +cat public/js/{gitter,store}.min.js >|public/js/proj-index-all.min.js + +# projects +echo "gitter,store,proj -> proj-all.min.js" +cat public/js/{gitter,store,proj}.min.js >|public/js/proj-all.min.js + + +### css ### + +# blog +echo "style,blog -> blog-all.min.css" +cat public/css/{style,blog}.min.css >|public/css/blog-all.min.css + +# project index +echo "style,proj-common,proj-index -> proj-index-all.min.css" +cat public/css/{style,proj-common,proj-index}.min.css >|public/css/proj-index-all.min.css + +# projects +echo "style,proj-common,proj -> proj-all.min.css" +cat public/css/{style,proj-common,proj}.min.css >|public/css/proj-all.min.css diff --git a/minify.sh b/bin/minify.sh similarity index 65% rename from minify.sh rename to bin/minify.sh index ad025b6..c4db825 100755 --- a/minify.sh +++ b/bin/minify.sh @@ -2,18 +2,18 @@ setopt extendedglob -for js (assets/*.js~*.min.js) { - target=${js%.js}.min.js +for js (assets/js/*.js) { + target=public/js/${${js:t}%.js}.min.js if [ ! -f $target ] || [ $js -nt $target ]; then echo "$js -> $target" closure < $js >| $target fi } -for css (assets/*.css~*.min.css) { - target=${css%.css}.min.css +for css (assets/css/*.css) { + target=public/css/${${css:t}%.css}.min.css if [ ! -f $target ] || [ $css -nt $target ]; then echo "$css -> $target" yui-compressor $css $target fi -} \ No newline at end of file +} diff --git a/build.js b/bin/projects.js similarity index 73% rename from build.js rename to bin/projects.js index 0bd3292..31b9272 100755 --- a/build.js +++ b/bin/projects.js @@ -4,21 +4,26 @@ var fs = require('fs') , path = require('path') , mustache = require('mustache') + , rootDir = path.join(__dirname, '..') + , projectFile = path.join(rootDir, process.argv[2]) + , templateDir = path.join(rootDir, 'templates', 'proj') + , targetDir = path.join(rootDir, process.argv[3]) + function main() { var ctx = {} - fs.readFile(path.join(__dirname, 'templates', 'proj', 'proj', 'index.html'), function(err, html) { + fs.readFile(path.join(templateDir, 'project.html'), function(err, html) { if (err) throw err ctx.template = html.toString() - fs.readFile(path.join(__dirname, 'projects.json'), function(err, json) { + fs.readFile(projectFile, function(err, json) { if (err) throw err var projects = JSON.parse(json) , names = Object.keys(projects) - , index = path.join(__dirname, 'proj', 'index.html') + , index = path.join(targetDir, 'index.html') // write project index - fs.readFile(path.join(__dirname, 'templates', 'proj', 'index.html'), function(err, tpl) { + fs.readFile(path.join(templateDir, 'index.html'), function(err, tpl) { if (err) throw err - fs.mkdir(path.join(__dirname, 'proj'), 0775, function(err) { + fs.mkdir(targetDir, 0775, function(err) { if (err && err.code !== 'EEXIST') throw err fs.unlink(index, function(err) { if (err && err.code !== 'ENOENT') throw err @@ -43,7 +48,7 @@ function main() { } function buildProject(name, project, ctx) { - var dir = path.join(__dirname, 'proj', name) + var dir = path.join(targetDir, name) , index = path.join(dir, 'index.html') try { diff --git a/bin/publish.sh b/bin/publish.sh new file mode 100755 index 0000000..1a57a8f --- /dev/null +++ b/bin/publish.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +bail() { + echo fail: $* + exit 1 +} + +# exit on errors +set -e + +publish_host=samhuri.net +publish_dir=samhuri.net/public/ + +# test +if [[ "$1" = "-t" ]]; then + prefix=echo + shift +fi + +# --delete, passed to rsync +if [[ "$1" = "--delete" ]]; then + delete="--delete" + shift +fi + +if [[ $# -eq 0 ]]; then + if [[ "$delete" != "" ]]; then + bail "no paths given, cowardly refusing to publish everything with --delete" + fi + $prefix rsync -aKv $delete public/* "$publish_host":"${publish_dir}${subdir}" +else + $prefix rsync -aKv $delete "$@" "$publish_host":"${publish_dir}${subdir}" +fi diff --git a/combine.sh b/combine.sh deleted file mode 100755 index 3ebbf36..0000000 --- a/combine.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env zsh - - -### javascript ### - -# blog -echo "request,showdown,strftime,tmpl,jquery-serializeObject,blog -> assets/blog-all.min.js" -cat assets/{request,showdown,strftime,tmpl,jquery-serializeObject,blog}.min.js >|assets/blog-all.min.js - -# project index -echo "gitter,store -> assets/proj-index-all.min.js" -cat assets/{gitter,store}.min.js >|assets/proj-index-all.min.js - -# projects -echo "gitter,store,proj -> assets/proj-all.min.js" -cat assets/{gitter,store,proj}.min.js >|assets/proj-all.min.js - - -### css ### - -# blog -echo "style,blog -> assets/blog-all.min.css" -cat assets/{style,blog}.min.css >|assets/blog-all.min.css - -# project index -echo "style,proj-common,proj-index -> assets/proj-index-all.min.css" -cat assets/{style,proj-common,proj-index}.min.css >|assets/proj-index-all.min.css - -# projects -echo "style,proj-common,proj -> assets/proj-all.min.css" -cat assets/{style,proj-common,proj}.min.css >|assets/proj-all.min.css diff --git a/.htaccess b/public/.htaccess similarity index 100% rename from .htaccess rename to public/.htaccess diff --git a/favicon.ico b/public/favicon.ico similarity index 100% rename from favicon.ico rename to public/favicon.ico diff --git a/assets/blank.gif b/public/images/blank.gif old mode 100755 new mode 100644 similarity index 100% rename from assets/blank.gif rename to public/images/blank.gif diff --git a/assets/forkme.png b/public/images/forkme.png similarity index 100% rename from assets/forkme.png rename to public/images/forkme.png diff --git a/assets/gh.png b/public/images/gh.png similarity index 100% rename from assets/gh.png rename to public/images/gh.png diff --git a/assets/promotejsh.gif b/public/images/promotejsh.gif similarity index 100% rename from assets/promotejsh.gif rename to public/images/promotejsh.gif diff --git a/assets/promotejshs.png b/public/images/promotejshs.png similarity index 100% rename from assets/promotejshs.png rename to public/images/promotejshs.png diff --git a/assets/s.gif b/public/images/s.gif similarity index 100% rename from assets/s.gif rename to public/images/s.gif diff --git a/assets/spinner.gif b/public/images/spinner.gif similarity index 100% rename from assets/spinner.gif rename to public/images/spinner.gif diff --git a/index.html b/public/index.html similarity index 78% rename from index.html rename to public/index.html index 7690347..f59b8dc 100644 --- a/index.html +++ b/public/index.html @@ -4,21 +4,24 @@
+
+
+
+
+
+
-
-
+
{{/comments}}