diff --git a/config.json b/config.json index 5a742a08..9d18b295 100644 --- a/config.json +++ b/config.json @@ -7,9 +7,37 @@ }, "plugins": { + "content_handler": "punch-blog-content-handler", + "helpers": { + "formatted_date": "./helpers/formatted_date_helper.js", + "archive_helper": "./helpers/archive_helper.js", + + "feed_helper": "./helpers/feed_helper.js", + "current_helper": "punch-current-page-helper" + }, "generator_hooks": { "htaccess": "./bin/htaccess.js", - "redirects": "./bin/redirects.js" + "redirects": "./bin/redirects.js", + "sitemap_generator_hook": "punch-sitemap-generator" + } + }, + + "blog": { + "posts_dir": "posts", + "post_format": "md", + "post_url": "/updates/{year}/{month}/{date}/{title}", + "teaser_length": 2, + "homepage_posts": 10, + "archive_urls": { + "all": "/updates", + "year": "/updates/{year}", + "year_month": "/updates/{year}/{month}", + "year_month_date": "/updates/{year}/{month}/{date}", + "tag": "/updates/tag/{tag}" } + }, + + "sitemap_generator": { + "url_root": "https://hackerspace.sg" } } diff --git a/contents/_index/events.json b/contents/_index/events.json index 568b5341..d064a1d7 100644 --- a/contents/_index/events.json +++ b/contents/_index/events.json @@ -1,26 +1,12 @@ [ { - "Name": "Python Meetup September", - "When": 1409830200000, - "URL": "https://www.facebook.com/events/685781994823718/685781998157051/?comment_id=687726351295949" + "Name": "SG Futurist - Life Extension Now", + "When": "2017-11-18T06:30:00.000Z", + "URL": "https://www.meetup.com/Singapore-Futurists/events/244400372/
Host:" }, { - "Name": "SG WordPress Meetup (Sept 2014)", - "When": 1410348600000, - "URL": "https://www.facebook.com/events/492930457509067/492930467509066/" - }, - { - "Name": "Papers We Love SG #002", - "When": 1410778800000 - }, - { - "Name": "Postgres User Group (PUGs) Meetup", - "When": 1410949800000, - "URL": "http://www.meetup.com/PUGS-Postgres-Users-Group-Singapore/" - }, - { - "Name": "The Ukulele Assemble", - "When": 1411279200000, - "URL": "http://www.meetup.com/The-Ukulele-Assemble/events/204272602/" + "Name": "Super Sunday Photography Walk", + "When": "2017-11-26T00:30:00.000Z", + "URL": "https://www.google.com/url?q=https%3A%2F%2Fwww.facebook.com%2Fevents%2F1890104491256160%2F&sa=D&usd=2&usg=AFQjCNGv8CO48HJPrrh8Xf_6NA2g2hk24A" } ] \ No newline at end of file diff --git a/contents/feed.rss.json b/contents/feed.rss.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/contents/feed.rss.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/contents/shared.json b/contents/shared.json index 8c434aa9..dc965c35 100644 --- a/contents/shared.json +++ b/contents/shared.json @@ -1,5 +1,8 @@ { - "site-title": "HackerspaceSG: the Singapore tech scene's community centre", + "site-title": "HackerspaceSG", + "tagline": "the Singapore tech scene's community centre", + "host": "hackerspace.sg", + "creator": "HackerspaceSG", "footer-text": "Built with Punch", "navbar": [ { "label": "Home", "href": "/" }, @@ -7,7 +10,8 @@ { "label": "Connect", "href": "/connect" }, { "label": "Location", "href": "/location" }, { "label": "Membership", "href": "/membership" }, - { "label": "About", "href": "/about" }, - { "label": "FAQ", "href": "/faq" } + { "label": "About", "href": "/about" }, + { "label": "FAQ", "href": "/faq" }, + { "label": "Updates", "href": "/updates"} ] } diff --git a/helpers/archive_helper.js b/helpers/archive_helper.js new file mode 100644 index 00000000..78857dce --- /dev/null +++ b/helpers/archive_helper.js @@ -0,0 +1,62 @@ +var _ = require("underscore"); +var helper_utils = require("punch").Utils.Helper; +var path_utils = require("punch").Utils.Path; +var blog_content_handler = require("punch-blog-content-handler"); + +var all_posts = []; +var last_modified = null; + +var fetch_all_posts = function(callback) { + //reset posts list + blog_content_handler.allPosts = {}; + + blog_content_handler.getAllPosts(function(err, posts_obj, posts_last_modified) { + if (!err) { + all_posts = _.values(posts_obj); + last_modified = posts_last_modified; + } + + return callback(); + }); +} + +var tag_helpers = { + + years: function() { + return _.keys(blog_content_handler.postDates).reverse(); + }, + + top_tags: function() { + var tag_counts = blog_content_handler.tagCounts; + return _.sortBy(_.keys(tag_counts), function(tag) { + return tag_counts[tag]; + }).reverse(); + } + +}; + + +module.exports = { + + directAccess: function() { + return { "block_helpers": {}, "tag_helpers": {}, "options": {} }; + }, + + get: function(basepath, file_extension, options, callback) { + var self = this; + + var archive_url_regexs = _.map(blog_content_handler.archiveUrls, function(url) { + return new RegExp("^" + url.pattern + "\\/index$", "g"); + }); + + if (path_utils.matchPath(basepath, archive_url_regexs)) { + fetch_all_posts(function() { + return callback(null, { "tag": tag_helpers }, {}, last_modified); + }); + } else { + return callback(null, {}, {}, null); + } + } + +} + diff --git a/helpers/feed_helper.js b/helpers/feed_helper.js new file mode 100644 index 00000000..024801ce --- /dev/null +++ b/helpers/feed_helper.js @@ -0,0 +1,70 @@ +var _ = require("underscore"); +var path = require("path"); + +var helper_utils = require("punch").Utils.Helper; +var path_utils = require("punch").Utils.Path; +var blog_content_handler = require("punch-blog-content-handler"); + +var all_posts = []; +var last_modified; + +var fetch_content = function(callback) { + var all_post_permalinks = []; + + blog_content_handler.getAllPosts(function(err, posts_obj, posts_last_modified) { + if (!err) { + all_post_permalinks = _.map(posts_obj, function(post){ return post.permalink; }); + last_modified = posts_last_modified; + } + + // fetch the content for each post + var fetch_full_post = function() { + if (all_post_permalinks.length) { + blog_content_handler.getPost(path.join(all_post_permalinks.shift(), "index"), function(err, post_contents, modified_date) { + if (!err) { + all_posts.push(post_contents); + } + + return fetch_full_post(); + }); + } else { + return callback(); + } + }; + + return fetch_full_post(); + + }); +} + +var tag_helpers = { + + all_posts: function() { + return all_posts.reverse(); + }, + + last_modified: function() { + return last_modified; + } + +}; + +module.exports = { + + directAccess: function(){ + return { "block_helpers": {}, "tag_helpers": {}, "options": {} }; + }, + + get: function(basepath, file_extension, options, callback){ + var self = this; + + if (!path_utils.matchPath(basepath, "^/feed$")) { + return callback(null, {}, {}, null); + } + + fetch_content(function() { + return callback(null, { "tag": tag_helpers }, {}, last_modified); + }); + } + +} diff --git a/helpers/formatted_date_helper.js b/helpers/formatted_date_helper.js new file mode 100644 index 00000000..56750547 --- /dev/null +++ b/helpers/formatted_date_helper.js @@ -0,0 +1,56 @@ +var helper_utils = require("punch").Utils.Helper; + +var getDateValue = function(text){ + return String(text).match(/^\d+$/) ? parseInt(text, 10) : text; +}; + +var block_helpers = { + long_date: function() { + return helper_utils.checkArgs(arguments, function(text) { + if(!text) { + return ""; + } + + var published_date = new Date( getDateValue(text) ); + var month_names = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; + + var f_date = (published_date.getDate() < 10) ? ("0" + published_date.getDate()) : published_date.getDate(); + var f_month = month_names[published_date.getMonth()]; + var f_year = published_date.getFullYear(); + + return f_date + " " + f_month + " " + f_year; + }); + }, + + short_date: function() { + return helper_utils.checkArgs(arguments, function(text) { + if(!text) { + return ""; + } + + var published_date = new Date( getDateValue(text) ); + var month_names = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; + + var f_date = (published_date.getDate() < 10) ? ("0" + published_date.getDate()) : published_date.getDate(); + var f_month = month_names[published_date.getMonth()]; + var f_year = published_date.getFullYear(); + + return f_date + " " + f_month + " " + f_year; + }); + } + +}; + +module.exports = { + + directAccess: function(){ + return { "block_helpers": block_helpers, "options": {} }; + }, + + get: function(basepath, file_extension, options, callback){ + var self = this; + + return callback(null, { "block": block_helpers }, {}); + } + +}; diff --git a/helpers/index_helper.js b/helpers/index_helper.js new file mode 100644 index 00000000..3fe5de90 --- /dev/null +++ b/helpers/index_helper.js @@ -0,0 +1,95 @@ +var _ = require("underscore"); +var path = require("path"); + +var helper_utils = require("punch").Utils.Helper; +var path_utils = require("punch").Utils.Path; +var blog_content_handler = require("punch-blog-content-handler"); + +var homepage_posts = 10; +var teaser_length = 2; +var recent_posts = []; +var last_modified = null; + +var fetch_content = function(callback) { + recent_posts = []; + + //reset posts list + blog_content_handler.allPosts = {}; + + blog_content_handler.getPosts('', function(err, posts_obj, posts_last_modified) { + if (!err) { + var all_posts = posts_obj.posts; + + last_modified = posts_last_modified; + + var recent_posts_list = all_posts.length > homepage_posts ? all_posts.slice(all_posts.length - homepage_posts) : all_posts; + + var fetch_full_posts = function() { + if (recent_posts_list.length) { + blog_content_handler.getPost(path.join(recent_posts_list.shift().permalink, "index"), function(err, post_contents, modified_date) { + var post_paras = post_contents.content.replace(/\n/g, " ").match(/(]*>.*?<\/p>)/g); + + if (teaser_length < 1) { + paras_to_show = post_paras.length; + } else { + paras_to_show = teaser_length; + } + + post_contents.is_teaser = (paras_to_show < post_paras.length); + post_contents.content = post_paras.slice(0, paras_to_show).join(""); + + if (!err) { + recent_posts.push(post_contents); + } + + return fetch_full_posts() + + }); + } else { + return callback(); + } + } + + return fetch_full_posts(); + + } else { + console.log(err); + return callback(); + } + }); +} + +var tag_helpers = { + + recent_posts: function() { + return recent_posts; + } + +}; + +module.exports = { + + setup: function(config) { + if (config.blog) { + teaser_length = config.blog.teaser_length; + homepage_posts = config.blog.homepage_posts; + } + }, + + directAccess: function(){ + return { "block_helpers": {}, "tag_helpers": {}, "options": {} }; + }, + + get: function(basepath, file_extension, options, callback){ + var self = this; + + if (!path_utils.matchPath(basepath, "^/index$")) { + return callback(null, {}, {}, null); + } + + fetch_content(function() { + return callback(null, { "tag": tag_helpers }, {}, last_modified); + }); + } + +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..87b54f5b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1514 @@ +{ + "name": "hackerspacesg", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz", + "integrity": "sha1-W1AftPBwQwmWTM2wSBclQSCNqxo=", + "requires": { + "mime-types": "1.0.2", + "negotiator": "0.4.7" + } + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "requires": { + "underscore": "1.7.0", + "underscore.string": "2.4.0" + }, + "dependencies": { + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + } + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "optional": true + }, + "asn1": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=", + "optional": true + }, + "assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=", + "optional": true + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "optional": true + }, + "aws-sign2": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=", + "optional": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "optional": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-url": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz", + "integrity": "sha1-+LbFN/CaT8WMmcuG4LDpxhRhog8=" + }, + "basic-auth-connect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", + "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=" + }, + "batch": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz", + "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "body-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.4.3.tgz", + "integrity": "sha1-RyeVLP9K8Hc+76SyJsL0Ei9eI00=", + "requires": { + "bytes": "1.0.0", + "depd": "0.3.0", + "iconv-lite": "0.4.3", + "media-typer": "0.2.0", + "qs": "0.6.6", + "raw-body": "1.2.2", + "type-is": "1.3.1" + }, + "dependencies": { + "mime-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.0.tgz", + "integrity": "sha1-antKavLn2S+Xr+A/BHx4AejwAdI=" + }, + "qs": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=" + }, + "type-is": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.3.1.tgz", + "integrity": "sha1-pnibWlITgomt4e+PbZ8odP/XC2s=", + "requires": { + "media-typer": "0.2.0", + "mime-types": "1.0.0" + } + } + } + }, + "boom": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", + "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", + "requires": { + "hoek": "0.9.1" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.3.tgz", + "integrity": "sha1-u1RRnpXRB8vSQA520MqxRnM22SE=" + }, + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "optional": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "optional": true + }, + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" + }, + "combined-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", + "optional": true, + "requires": { + "delayed-stream": "0.0.5" + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "compressible": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz", + "integrity": "sha1-I7ceqQ6mxqZiiXAakYGCwk0HKe8=" + }, + "compression": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.0.11.tgz", + "integrity": "sha1-aXAM8e6JY0VDVqwZKm5ekeIyv/s=", + "requires": { + "accepts": "1.0.7", + "bytes": "1.0.0", + "compressible": "1.1.1", + "debug": "1.0.4", + "on-headers": "1.0.1", + "vary": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", + "requires": { + "ms": "0.6.2" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "connect": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/connect/-/connect-2.21.1.tgz", + "integrity": "sha1-qUjuZhZ0iB5WFcBtuYLV1HzQqhI=", + "requires": { + "basic-auth-connect": "1.0.0", + "body-parser": "1.4.3", + "bytes": "1.0.0", + "compression": "1.0.11", + "connect-timeout": "1.1.1", + "cookie": "0.1.2", + "cookie-parser": "1.3.2", + "cookie-signature": "1.0.4", + "csurf": "1.2.2", + "debug": "1.0.2", + "depd": "0.3.0", + "errorhandler": "1.1.1", + "express-session": "1.5.2", + "finalhandler": "0.0.2", + "fresh": "0.2.2", + "media-typer": "0.2.0", + "method-override": "2.0.2", + "morgan": "1.1.1", + "multiparty": "3.2.9", + "on-headers": "0.0.0", + "parseurl": "1.0.1", + "pause": "0.0.1", + "qs": "0.6.6", + "response-time": "2.0.0", + "serve-favicon": "2.0.1", + "serve-index": "1.1.6", + "serve-static": "1.2.3", + "type-is": "1.3.2", + "vhost": "2.0.0" + }, + "dependencies": { + "fresh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz", + "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=" + }, + "qs": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=" + } + } + }, + "connect-timeout": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.1.1.tgz", + "integrity": "sha1-bH4xyY8Kxo620TBfZ/IfWm6Q/QQ=", + "requires": { + "debug": "1.0.2", + "on-headers": "0.0.0" + } + }, + "cookie": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz", + "integrity": "sha1-cv7D0k5Io0Mgc9kMEmQgBQYQBLE=" + }, + "cookie-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.2.tgz", + "integrity": "sha1-UiEcyCyVXXn/DAiJVEB3JOGc9WI=", + "requires": { + "cookie": "0.1.2", + "cookie-signature": "1.0.4" + } + }, + "cookie-signature": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz", + "integrity": "sha1-Dt0iKG46ERuaKnDbNj6SXoZ/aso=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cryptiles": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", + "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", + "optional": true, + "requires": { + "boom": "0.4.2" + } + }, + "csrf-tokens": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-2.0.0.tgz", + "integrity": "sha1-yCEAP7i2rRe8l31v0ahL7cPtYZs=", + "requires": { + "base64-url": "1.3.3", + "rndm": "1.2.0", + "scmp": "0.0.3", + "uid-safe": "1.1.0" + } + }, + "cssmin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.4.3.tgz", + "integrity": "sha1-yRlAd+Dr2s1pHV9ZAVudgZ840BU=" + }, + "csurf": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.2.2.tgz", + "integrity": "sha1-Lqny0/LWex4iUykOZ2tiGV3Ld1Y=", + "requires": { + "csrf-tokens": "2.0.0" + } + }, + "ctype": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=", + "optional": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true + } + } + }, + "debug": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.2.tgz", + "integrity": "sha1-OElZHBDM5khHbDx8Li40FttZY8Q=", + "requires": { + "ms": "0.6.2" + } + }, + "delayed-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=", + "optional": true + }, + "depd": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-0.3.0.tgz", + "integrity": "sha1-Ecm8KOQlMl+9iziUC+/2n6UyaIM=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.3.tgz", + "integrity": "sha1-bJjECJq+y1p7hcGsRJqmA9Oz2r4=" + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "optional": true, + "requires": { + "prr": "0.0.0" + } + }, + "errorhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz", + "integrity": "sha1-GN79Q22Mou/gotiGxcTW7m121pE=", + "requires": { + "accepts": "1.0.7", + "escape-html": "1.0.1" + } + }, + "escape-html": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz", + "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A=" + }, + "express-session": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.5.2.tgz", + "integrity": "sha1-56Tr74ob/8EyMt0J/mq18DMeMw8=", + "requires": { + "buffer-crc32": "0.2.3", + "cookie": "0.1.2", + "cookie-signature": "1.0.4", + "debug": "1.0.2", + "depd": "0.3.0", + "on-headers": "0.0.0", + "uid-safe": "1.0.1", + "utils-merge": "1.0.0" + }, + "dependencies": { + "uid-safe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz", + "integrity": "sha1-W9FIRgouhPVPGT/SA1LIw9feasg=", + "requires": { + "base64-url": "1.3.3", + "mz": "1.3.0" + } + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "optional": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "finalhandler": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.0.2.tgz", + "integrity": "sha1-BgPYde6H1WeiZmkoFcyK1E/M7to=", + "requires": { + "debug": "1.0.2", + "escape-html": "1.0.1" + } + }, + "finished": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/finished/-/finished-1.2.2.tgz", + "integrity": "sha1-QWCOr639ZWg7RqEiC8Sx7D2u3Ng=", + "requires": { + "ee-first": "1.0.3" + } + }, + "forever-agent": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=" + }, + "form-data": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", + "optional": true, + "requires": { + "async": "0.9.2", + "combined-stream": "0.0.7", + "mime": "1.2.11" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "hawk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "integrity": "sha1-h81JH5tG5OKurKM1QWdmiF0tHtk=", + "optional": true, + "requires": { + "boom": "0.4.2", + "cryptiles": "0.2.2", + "hoek": "0.9.1", + "sntp": "0.2.4" + } + }, + "hoek": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", + "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=" + }, + "http-accept": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/http-accept/-/http-accept-0.1.6.tgz", + "integrity": "sha1-KjNppBlACocPz1Q8KboYUKLk6xc=" + }, + "http-signature": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", + "optional": true, + "requires": { + "asn1": "0.1.11", + "assert-plus": "0.1.5", + "ctype": "0.5.3" + } + }, + "ical": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ical/-/ical-0.3.1.tgz", + "integrity": "sha1-jd3ihT5eT8O48Pm0pCHZRIOBXjo=", + "requires": { + "request": "2.40.0", + "rrule": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.3.tgz", + "integrity": "sha1-nniHeTt2nMaV6yLSVGpP0tebeh4=" + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "optional": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "optional": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "optional": true + }, + "js-yaml": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-1.0.3.tgz", + "integrity": "sha1-7GGXYP/IrlAcPWJnPYdOK58HQio=", + "requires": { + "argparse": "0.1.16" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "optional": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true + } + } + }, + "knox": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz", + "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=", + "requires": { + "debug": "1.0.2", + "mime": "1.2.11", + "once": "1.4.0", + "stream-counter": "1.0.0", + "xml2js": "0.4.19" + }, + "dependencies": { + "stream-counter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", + "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=" + } + } + }, + "less": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", + "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", + "requires": { + "errno": "0.1.4", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.2.11", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.81.0", + "source-map": "0.5.7" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "optional": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "requires": { + "mime-db": "1.30.0" + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "optional": true, + "requires": { + "hoek": "2.16.3" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "optional": true + } + } + }, + "marked": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", + "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" + }, + "media-typer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz", + "integrity": "sha1-2KBlITrf6qLnYyGitt2jb/YzWYQ=" + }, + "method-override": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.0.2.tgz", + "integrity": "sha1-AFMSeMeXiWQL8n6X4mo6Wh98ynM=", + "requires": { + "methods": "1.0.1", + "parseurl": "1.0.1", + "vary": "0.1.0" + }, + "dependencies": { + "vary": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-0.1.0.tgz", + "integrity": "sha1-3wlFiZ6TwMxb0YzIMh2dIedPYXY=" + } + } + }, + "methods": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.0.1.tgz", + "integrity": "sha1-dbyRlD3/19oDfPPusO1zoAN80Us=" + }, + "mime": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", + "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "morgan": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.1.1.tgz", + "integrity": "sha1-zeRdLoB+vMQ5dFhG6oA5LmkJgUY=", + "requires": { + "bytes": "1.0.0" + } + }, + "ms": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=" + }, + "multiparty": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.2.9.tgz", + "integrity": "sha1-xzNz6pwBLnd2zlvEDJNiZLa6LB4=", + "requires": { + "readable-stream": "1.1.14", + "stream-counter": "0.2.0" + } + }, + "mustache": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-0.7.3.tgz", + "integrity": "sha1-JI1o0LEFA5eEj6Y0wkRsGPMEkOk=" + }, + "mz": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-1.3.0.tgz", + "integrity": "sha1-BvCT/dmVagbTfhsegTROJ0eMQvA=", + "requires": { + "native-or-bluebird": "1.1.2", + "thenify": "3.3.0", + "thenify-all": "1.6.0" + } + }, + "native-or-bluebird": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz", + "integrity": "sha1-OSHhECMtHreQ89rGG7NwUxx9NW4=" + }, + "negotiator": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz", + "integrity": "sha1-pBYPcXfsgGc4Yx0NMFIyXaQqvcg=" + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, + "oauth-sign": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", + "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=", + "optional": true + }, + "on-headers": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-0.0.0.tgz", + "integrity": "sha1-7igX+DRDJXhc2cLfKyQrvBfK9MQ=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "parseurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz", + "integrity": "sha1-Llfc5u/dN8NRhwEDCUTCK/OIt7Q=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "optional": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "optional": true, + "requires": { + "asap": "2.0.6" + } + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "optional": true + }, + "punch": { + "version": "0.5.46", + "resolved": "https://registry.npmjs.org/punch/-/punch-0.5.46.tgz", + "integrity": "sha1-E62rCOVSaqoNB9hM8jI2y3Qs6qs=", + "requires": { + "coffee-script": "1.12.7", + "connect": "2.21.1", + "cssmin": "0.4.3", + "fresh": "0.5.2", + "fstream": "1.0.11", + "http-accept": "0.1.6", + "knox": "0.9.2", + "less": "2.7.3", + "marked": "0.3.6", + "mime": "1.2.11", + "mustache": "0.7.3", + "uglify-js": "3.1.6", + "underscore": "1.8.3" + } + }, + "punch-blog-content-handler": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/punch-blog-content-handler/-/punch-blog-content-handler-0.0.9.tgz", + "integrity": "sha1-w9rQM+NGxxNHvIp+p/V9BcTYDJs=", + "requires": { + "js-yaml": "1.0.3", + "punch": "0.5.46", + "underscore": "1.8.3" + } + }, + "punch-current-page-helper": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/punch-current-page-helper/-/punch-current-page-helper-0.0.3.tgz", + "integrity": "sha1-WJOR/I28Cji+gczpLzausJS+1cU=", + "requires": { + "punch": "0.5.46" + } + }, + "punch-sitemap-generator": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/punch-sitemap-generator/-/punch-sitemap-generator-0.0.5.tgz", + "integrity": "sha1-1fqw73+IoUFVF2DoLZzuEBfFbjM=", + "requires": { + "punch": "0.5.46" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "optional": true + }, + "qs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-1.0.2.tgz", + "integrity": "sha1-UKk+K1r2aRwxvOpdrnjubqGQN2g=" + }, + "range-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=" + }, + "raw-body": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.2.2.tgz", + "integrity": "sha1-DGjh7ijP7X26SCIjSuxgeEYcvB8=", + "requires": { + "bytes": "1.0.0", + "iconv-lite": "0.4.3" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "request": { + "version": "2.40.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.40.0.tgz", + "integrity": "sha1-TdZw9pbx5uhC5mtLXoOTAaub62c=", + "requires": { + "aws-sign2": "0.5.0", + "forever-agent": "0.5.2", + "form-data": "0.1.4", + "hawk": "1.1.1", + "http-signature": "0.10.1", + "json-stringify-safe": "5.0.1", + "mime-types": "1.0.2", + "node-uuid": "1.4.8", + "oauth-sign": "0.3.0", + "qs": "1.0.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3" + } + }, + "response-time": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.0.0.tgz", + "integrity": "sha1-Zcs5/VDeL0/9vdKF8YVZZr1vyzY=", + "requires": { + "on-headers": "0.0.0" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + } + }, + "rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" + }, + "rrule": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/rrule/-/rrule-2.0.0.tgz", + "integrity": "sha1-xUp1/8iGcd1y/kWVVqa89s8s8m4=", + "requires": { + "underscore": "1.8.3" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scmp": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz", + "integrity": "sha1-NkjfLXKUZB5/eGc//CloHZutkHM=" + }, + "send": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/send/-/send-0.4.3.tgz", + "integrity": "sha1-lieyO3cH+/Y3ODHKxXkzMLWUtkA=", + "requires": { + "debug": "1.0.2", + "escape-html": "1.0.1", + "finished": "1.2.2", + "fresh": "0.2.2", + "mime": "1.2.11", + "range-parser": "1.0.3" + }, + "dependencies": { + "fresh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz", + "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=" + } + } + }, + "serve-favicon": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.0.1.tgz", + "integrity": "sha1-SCaXXZ8XPKOkFY6WmBYfdd7Hr+w=", + "requires": { + "fresh": "0.2.2" + }, + "dependencies": { + "fresh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz", + "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=" + } + } + }, + "serve-index": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz", + "integrity": "sha1-t1gxj+eBYoOD9mrIDdRHcS6neB8=", + "requires": { + "accepts": "1.0.7", + "batch": "0.5.1", + "parseurl": "1.3.2" + }, + "dependencies": { + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + } + } + }, + "serve-static": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.2.3.tgz", + "integrity": "sha1-k87Lw0Dweey4WJKB0dwxwmwM0Vg=", + "requires": { + "escape-html": "1.0.1", + "parseurl": "1.0.1", + "send": "0.4.3" + } + }, + "sntp": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", + "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", + "optional": true, + "requires": { + "hoek": "0.9.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "optional": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "optional": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true + } + } + }, + "stream-counter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "requires": { + "readable-stream": "1.1.14" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "optional": true + }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "requires": { + "any-promise": "1.3.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "requires": { + "thenify": "3.3.0" + } + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-is": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.3.2.tgz", + "integrity": "sha1-TypdxYd1yhYwJQr8cYb4s2MJ0bs=", + "requires": { + "media-typer": "0.2.0", + "mime-types": "1.0.2" + } + }, + "uglify-js": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.6.tgz", + "integrity": "sha512-/rseyxEKEVMBo8279lqpoJgD6C/i/CIi+9TJDvWmb+Xo6mqMKwjA8Io3IMHlcXQzj99feR6zrN8m3wqqvm/nYA==", + "requires": { + "commander": "2.11.0", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "uid-safe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz", + "integrity": "sha1-WNbF2r+N+9jVKDSDmAbAP9YUMjI=", + "requires": { + "base64-url": "1.2.1", + "native-or-bluebird": "1.1.2" + }, + "dependencies": { + "base64-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", + "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=" + } + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=" + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + }, + "vary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", + "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true + } + } + }, + "vhost": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vhost/-/vhost-2.0.0.tgz", + "integrity": "sha1-HiZ3C9D86GxAlFWR5vKExokXkeI=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": "1.2.4", + "xmlbuilder": "9.0.4" + } + }, + "xmlbuilder": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz", + "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=" + } + } +} diff --git a/package.json b/package.json index 436c9a97..a230041b 100644 --- a/package.json +++ b/package.json @@ -5,21 +5,25 @@ "author": "HackerspaceSG", "description": "hackerspace website", "contributors": [ - "Chinmay Pendharkar " + "Chinmay Pendharkar ", + "Robert Sim " ], "keywords": [ - "website", - "hackerspace", - "singapore" + "website", + "hackerspace", + "singapore" ], "main": ".", "repository": { "type": "git", "url": "https://github.com/hackerspacesg/hackerspace.sg" }, - "dependencies" : { + "dependencies": { + "ical": "~0.3.1", "punch": "~0.5.40", - "ical": "~0.3.1" + "punch-blog-content-handler": "0.0.9", + "punch-current-page-helper": "0.0.3", + "punch-sitemap-generator": "0.0.5" }, "license": "MIT", "scripts": { @@ -27,6 +31,6 @@ "start": "punch server" }, "engines": { - "node": ">=0.10" + "node": ">=6.11.5" } } diff --git a/contents/plenum/2014-02-12/_index/main.md b/posts/2014-02-12-housekeeping-finances-marketing-hardware-membership.md similarity index 95% rename from contents/plenum/2014-02-12/_index/main.md rename to posts/2014-02-12-housekeeping-finances-marketing-hardware-membership.md index b530d6c1..f9d70363 100644 --- a/contents/plenum/2014-02-12/_index/main.md +++ b/posts/2014-02-12-housekeeping-finances-marketing-hardware-membership.md @@ -1,3 +1,16 @@ +--- +title: Plenum 2014-02-13 +published: true +tags: +- plenum +- technical +- housekeeping +- finances +- marketing +- hardware +- membership +--- + ## Plenum 12-Feb-2014 ### Open: 8:40 diff --git a/contents/plenum/2014-04-03/_index/main.md b/posts/2014-04-03-accounts-utilisation-design-hackdo-hardware.md similarity index 95% rename from contents/plenum/2014-04-03/_index/main.md rename to posts/2014-04-03-accounts-utilisation-design-hackdo-hardware.md index ae74918f..19f3dd73 100644 --- a/contents/plenum/2014-04-03/_index/main.md +++ b/posts/2014-04-03-accounts-utilisation-design-hackdo-hardware.md @@ -1,3 +1,13 @@ +--- +title: Plenum 2014-04-03 +published: true +tags: +- plenum +- finances +- membership +- hackdo +--- + ## Plenum 3-Apr-2014 ### Open: TODO diff --git a/contents/plenum/2014-06-21/_index/main.md b/posts/2014-06-21-finances-website-survey-walkaboutsg-layout-technical.md similarity index 95% rename from contents/plenum/2014-06-21/_index/main.md rename to posts/2014-06-21-finances-website-survey-walkaboutsg-layout-technical.md index 28af7299..2e97e790 100644 --- a/contents/plenum/2014-06-21/_index/main.md +++ b/posts/2014-06-21-finances-website-survey-walkaboutsg-layout-technical.md @@ -1,3 +1,16 @@ +--- +title: Plenum 2014-06-12 +published: true +tags: +- plenum +- finances +- website +- marketing +- housekeeping +- technical +--- + + ## Plenum 2014-06-12 Agenda/Minutes - Present: Gibson, Nicholas, Will Myers, Luther, LJ, Valentine, Eric Teubert, Claudio, Nigel, Soares, Aizat, Aaron, CJ, Hazwan, Roland diff --git a/contents/plenum/2015-01-15/_index/main.md b/posts/2015-01-15-on-getting-new-accountant.md similarity index 90% rename from contents/plenum/2015-01-15/_index/main.md rename to posts/2015-01-15-on-getting-new-accountant.md index da7a22ff..c72f34b4 100644 --- a/contents/plenum/2015-01-15/_index/main.md +++ b/posts/2015-01-15-on-getting-new-accountant.md @@ -1,3 +1,12 @@ +--- +title: On Getting New Accountant +published: true +tags: +- plenum +- accounting +--- + + ## Plenum 2015-01-15 Agenda/Minutes - Present: Roland, Wyemun, Luther, Robert Sim, Gibson, Claudio, Who is Bob (LJ), Valentine, Michael Cheng, Aaron, Soares diff --git a/contents/plenum/2017-10-31/_index/main.md b/posts/2017-10-31-opening-meeting-on-hackerspacesgs-future.md similarity index 93% rename from contents/plenum/2017-10-31/_index/main.md rename to posts/2017-10-31-opening-meeting-on-hackerspacesgs-future.md index 7e20d863..a96f1417 100644 --- a/contents/plenum/2017-10-31/_index/main.md +++ b/posts/2017-10-31-opening-meeting-on-hackerspacesgs-future.md @@ -1,3 +1,11 @@ +--- +title: Opening Meeting On Organsisation Matters +published: true +tags: +- plenum +- reorganisation +--- + ## Plenum 2017-10-31 Agenda/Minutes ### 20:05 Open diff --git a/contents/plenum/2017-11-14/_index/main.md b/posts/2017-11-14-2nd-meeting-on-hackerspacesgs-future.md similarity index 68% rename from contents/plenum/2017-11-14/_index/main.md rename to posts/2017-11-14-2nd-meeting-on-hackerspacesgs-future.md index 43b4c90b..ffb6339b 100644 --- a/contents/plenum/2017-11-14/_index/main.md +++ b/posts/2017-11-14-2nd-meeting-on-hackerspacesgs-future.md @@ -1,3 +1,11 @@ +--- +title: 2nd Meeting On Hackerspace's Future +published: true +tags: +- plenum +- reorganisation +--- + ## Plenum 2017-11-14 Agenda/Minutes ### ??:?? Open diff --git a/redirects b/redirects index f5fce5f7..08442803 100644 --- a/redirects +++ b/redirects @@ -15,5 +15,5 @@ http://hackerspace.sg/* https://hackerspace.sg/:splat 301! /about-us/ https://hackerspace.sg/about 301 /social/location/ https://hackerspace.sg/location 301 /chat https://webchat.freenode.net/?channels=hackerspacesg 302 -/feed /404.html 404 -/rss.xml /404.html 404 +/feed /feed.rss 301 +/rss.xml /feed.rss 301 \ No newline at end of file diff --git a/templates/404.html b/templates/404.html index 82ff8c58..cbc6732e 100755 --- a/templates/404.html +++ b/templates/404.html @@ -15,6 +15,7 @@ p { margin: 1em 0; } ul { padding: 0 0 0 40px; margin: 1em 0; } .container { max-width: 380px; _width: 380px; margin: 0 auto; } + .banner { width: 100%; } /* google search */ #goog-fixurl ul { list-style: none; padding: 0; margin: 0; } #goog-fixurl form { margin: 0; } @@ -25,9 +26,21 @@ #goog-wm-qt:focus, #goog-wm-sb:focus { border-color: #105cb6; outline: 0; color: #222; } input::-moz-focus-inner { padding: 0; border: 0; } + + + + + +
+

Not found :(

Sorry, but the page you were trying to view does not exist.

It looks like this was the result of either:

diff --git a/templates/_archive.mustache b/templates/_archive.mustache new file mode 100644 index 00000000..455e746d --- /dev/null +++ b/templates/_archive.mustache @@ -0,0 +1,30 @@ +
+

Archive

+ +

By Year

+ +
    + {{#years}} +
  • {{.}}
  • + {{/years}} +
+ +

By Tag

+
    + {{#top_tags}} +
  • {{.}}
  • + {{/top_tags}} +
+ +
+
    + {{#posts}} +
  • + {{{ title }}} + +
  • + {{/posts}} +
+
+ +
\ No newline at end of file diff --git a/templates/_header.mustache b/templates/_header.mustache index e892a6dd..990398b6 100644 --- a/templates/_header.mustache +++ b/templates/_header.mustache @@ -2,10 +2,11 @@ - {{{site-title}}} + {{{site-title}}}: {{tagline}} +