From 5f730b3e8122532dffb52e5c813b64c2c7274e26 Mon Sep 17 00:00:00 2001 From: jysperm Date: Wed, 17 Dec 2014 21:52:44 +0800 Subject: [PATCH] refactor v0.1.1 --- .gitignore | 1 + README.md | 1 - app.coffee | 8 +- bower.json | 6 + package.json | 54 ++--- static/github-btn.html | 2 + static/index.jade | 15 +- static/styles/index.less | 2 +- static/styles/mobile.less | 2 +- static/styles/normalize.css | 425 ------------------------------------ 10 files changed, 52 insertions(+), 464 deletions(-) create mode 100644 bower.json create mode 100644 static/github-btn.html delete mode 100644 static/styles/normalize.css diff --git a/.gitignore b/.gitignore index 6684c76..580bf9e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /.idea /node_modules +/bower_components diff --git a/README.md b/README.md index 5680ec8..4a5d6f0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # github-commit-ical - View your commit history in Calendar ![screenshot](https://cloud.githubusercontent.com/assets/1191561/3712987/1287c420-1545-11e4-9868-bbf4ff73a6c3.png) diff --git a/app.coffee b/app.coffee index 3009f64..c44a8a1 100644 --- a/app.coffee +++ b/app.coffee @@ -22,7 +22,8 @@ sendRequest = (path, callback) -> app = express() -app.use harp.mount(path.join(__dirname, 'static')) +app.use '/bower_components', express.static 'bower_components' +app.use harp.mount 'static' app.get '/:username', (req, res) -> username = req.param 'username' @@ -75,10 +76,9 @@ app.get '/:username', (req, res) -> if commit.summary cal.addEvent commit - console.log "[Request by] #{username}" - console.log "[X-RateLimit-Remaining] #{_res.headers['x-ratelimit-remaining']}" + console.log "Request by: #{username}, X-RateLimit-Remaining: #{_res.headers['x-ratelimit-remaining']}" res.header 'Content-Type', 'text/calendar; charset=utf-8' res.status(200).end(cal.toString()) -app.listen 3000 +app.listen 19864 diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..65761eb --- /dev/null +++ b/bower.json @@ -0,0 +1,6 @@ +{ + "name": "github-commit-ical", + "dependencies": { + "normalize.css": "~3.0.2" + } +} diff --git a/package.json b/package.json index 7c66c0e..e958074 100644 --- a/package.json +++ b/package.json @@ -1,27 +1,31 @@ { - "name": "github-commit-ical", - "version": "0.1.0", - "description": "View your commit history in Calendar", - "homepage": "http://commitcal.newsbee.io", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/hackplan/github-commit-ical.git" - }, - "contributors": [ - { - "name": "jysperm", - "email": "jysperm@gmail.com", - "url": "http://jysperm.me" - } - ], - "dependencies": { - "express": "*", - "request": "*", - "ical-generator": "*", - "harp": "*", - "async": "*", - "underscore": "*", - "redis": "*" + "name": "github-commit-ical", + "version": "0.1.1", + "description": "View your commit history in Calendar", + "homepage": "https://commitcal.newsbee.io", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/hackplan/github-commit-ical.git" + }, + "contributors": [ + { + "name": "jysperm", + "email": "jysperm@gmail.com", + "url": "https://jysperm.me" } -} \ No newline at end of file + ], + "scripts": { + "start": "./node_modules/.bin/coffee app.coffee" + }, + "dependencies": { + "coffee-script": "^1.7.1", + "express": "^4.10.0", + "request": "^2.47.0", + "ical-generator": "^0.1.9", + "harp": "^0.14.0", + "async": "^0.9.0", + "underscore": "^1.7.0", + "redis": "^0.12.1" + } +} diff --git a/static/github-btn.html b/static/github-btn.html new file mode 100644 index 0000000..1a3af8a --- /dev/null +++ b/static/github-btn.html @@ -0,0 +1,2 @@ + + diff --git a/static/index.jade b/static/index.jade index 54c0c5b..f7bea52 100644 --- a/static/index.jade +++ b/static/index.jade @@ -12,10 +12,10 @@ html h1.title.highlight CommitCal h3 View your commit history in calendar p.star - iframe(src="http://ghbtns.com/github-btn.html?user=HackPlan&repo=github-commit-ical&type=watch&size=large", allowtransparency="true", frameborder="0", scrolling="0", width="72", height="30") + iframe(src="/github-btn.html?user=HackPlan&repo=github-commit-ical&type=watch&size=large", allowtransparency="true", frameborder="0", scrolling="0", width="72", height="30") .body .container.clearfix - form.clearfix(onsubmit="return subscribe()") + form.clearfix(onsubmit="subscribe()") input#username(type="text", placeholder="Enter your GitHub username") button(type="submit") Subscribe to Calendar #subscription.clearfix(style="display:none") @@ -30,22 +30,23 @@ html | Project script. function subscribe() { - username = document.getElementById('username').value; + var username = document.getElementById('username').value; + if (!username) { return false; } - url = "commitcal.newsbee.io/" + username; + var url = "commitcal.newsbee.io/" + username; if (window.navigator.platform.toUpperCase().indexOf('MAC') >= 0) { window.open("webcal://" + url); } - link = document.getElementById('subscription_url') + var link = document.getElementById('subscription_url') link.innerHTML = "http://" + url; - subscription = document.getElementById('subscription') + var subscription = document.getElementById('subscription') subscription.style.display = "block"; return false; - } \ No newline at end of file + } diff --git a/static/styles/index.less b/static/styles/index.less index 24a551b..1dcd4d5 100644 --- a/static/styles/index.less +++ b/static/styles/index.less @@ -11,7 +11,7 @@ } } -@import "normalize.css"; +@import "/bower_components/normalize.css/normalize.css"; html{ font: 400 14px LucidaGrande, "Lucida Sans Unicode", sans-serif; diff --git a/static/styles/mobile.less b/static/styles/mobile.less index 1bed9b6..7a7cbec 100644 --- a/static/styles/mobile.less +++ b/static/styles/mobile.less @@ -16,4 +16,4 @@ margin-bottom: .5em; } } -} \ No newline at end of file +} diff --git a/static/styles/normalize.css b/static/styles/normalize.css deleted file mode 100644 index 08f8950..0000000 --- a/static/styles/normalize.css +++ /dev/null @@ -1,425 +0,0 @@ -/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background: transparent; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -}