Skip to content

Instantly share code, notes, and snippets.

@japboy
Created July 10, 2012 03:27
Show Gist options
  • Save japboy/3080792 to your computer and use it in GitHub Desktop.
Save japboy/3080792 to your computer and use it in GitHub Desktop.
[submodule "lib/normalize.css"]
path = lib/normalize.css
url = git://github.com/necolas/normalize.css.git

My skelton for CoffeeScript

Dependencies

Installation

pip install Pygments
npm install coffee-script docco jade stylus -g
#! coffeescript
# My Cakefile for CoffeeScript, Stylus, & Jade:
# created by [Yu Inao](http://twitter.com/japboy) in 2012
# TODO: cleancss による minify
fs = require('fs')
{print} = require('util')
{spawn} = require('child_process')
coffee = (watch=false, callback) ->
if watch
coffee = spawn('coffee', ['--watch', '--compile', '--output', './js', './js'])
else
coffee = spawn('coffee', ['--compile', '--output', './js', './js'])
coffee.stderr.on 'data', (data) ->
process.stderr.write(data.toString())
coffee.stdout.on 'data', (data) ->
print(data.toString())
coffee.on 'exit', (code) ->
callback?() if code is 0
stylus = (watch=false, callback) ->
if watch
stylus = spawn('stylus', ['--watch', './css', './css'])
else
stylus = spawn('stylus', ['--out', './css', './css'])
stylus.stderr.on 'data', (data) ->
process.stderr.write(data.toString())
stylus.stdout.on 'data', (data) ->
print(data.toString())
stylus.on 'exit', (code) ->
callback?() if code is 0
jade = (callback) ->
jade = spawn('jade', ['--pretty', '--out', './', './'])
jade.stderr.on 'data', (data) ->
process.stderr.write(data.toString())
jade.stdout.on 'data', (data) ->
print(data.toString())
jade.on 'exit', (code) ->
callback?() if code is 0
optipng = (callback) ->
optipng = spawn('optipng', ['-clobber', '-preserve', '-dir', './img', './img.orig/*.png'])
optipng.stderr.on 'data', (data) ->
process.stderr.write(data.toString())
optipng.stdout.on 'data', (data) ->
print(data.toString())
optipng.on 'exit', (code) ->
callback?() if code is 0
task 'build', 'Build meta language files', ->
coffee()
stylus()
jade()
optipng()
task 'watch', 'Watch file changes and build them automatically', ->
coffee(true)
stylus(true)
task 'open', 'Open index page with default UA', ->
spawn('open', ['./index.html'])
invoke('watch')
/*--------------------- Layout and Typography ----------------------------*/
body {
font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
font-size: 15px;
line-height: 22px;
color: #252519;
margin: 0; padding: 0;
}
a {
color: #261a3b;
}
a:visited {
color: #261a3b;
}
p {
margin: 0 0 15px 0;
}
h1, h2, h3, h4, h5, h6 {
margin: 0px 0 15px 0;
}
h1 {
margin-top: 40px;
}
#container {
position: relative;
}
#background {
position: fixed;
top: 0; left: 525px; right: 0; bottom: 0;
background: #f5f5ff;
border-left: 1px solid #e5e5ee;
z-index: -1;
}
#jump_to, #jump_page {
background: white;
-webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777;
-webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px;
font: 10px Arial;
text-transform: uppercase;
cursor: pointer;
text-align: right;
}
#jump_to, #jump_wrapper {
position: fixed;
right: 0; top: 0;
padding: 5px 10px;
}
#jump_wrapper {
padding: 0;
display: none;
}
#jump_to:hover #jump_wrapper {
display: block;
}
#jump_page {
padding: 5px 0 3px;
margin: 0 0 25px 25px;
}
#jump_page .source {
display: block;
padding: 5px 10px;
text-decoration: none;
border-top: 1px solid #eee;
}
#jump_page .source:hover {
background: #f5f5ff;
}
#jump_page .source:first-child {
}
table td {
border: 0;
outline: 0;
}
td.docs, th.docs {
max-width: 450px;
min-width: 450px;
min-height: 5px;
padding: 10px 25px 1px 50px;
overflow-x: hidden;
vertical-align: top;
text-align: left;
}
.docs pre {
margin: 15px 0 15px;
padding-left: 15px;
}
.docs p tt, .docs p code {
background: #f8f8ff;
border: 1px solid #dedede;
font-size: 12px;
padding: 0 0.2em;
}
.pilwrap {
position: relative;
}
.pilcrow {
font: 12px Arial;
text-decoration: none;
color: #454545;
position: absolute;
top: 3px; left: -20px;
padding: 1px 2px;
opacity: 0;
-webkit-transition: opacity 0.2s linear;
}
td.docs:hover .pilcrow {
opacity: 1;
}
td.code, th.code {
padding: 14px 15px 16px 25px;
width: 100%;
vertical-align: top;
background: #f5f5ff;
border-left: 1px solid #e5e5ee;
}
pre, tt, code {
font-size: 12px; line-height: 18px;
font-family: Monaco, Consolas, "Lucida Console", monospace;
margin: 0; padding: 0;
}
/*---------------------- Syntax Highlighting -----------------------------*/
td.linenos { background-color: #f0f0f0; padding-right: 10px; }
span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }
body .hll { background-color: #ffffcc }
body .c { color: #408080; font-style: italic } /* Comment */
body .err { border: 1px solid #FF0000 } /* Error */
body .k { color: #954121 } /* Keyword */
body .o { color: #666666 } /* Operator */
body .cm { color: #408080; font-style: italic } /* Comment.Multiline */
body .cp { color: #BC7A00 } /* Comment.Preproc */
body .c1 { color: #408080; font-style: italic } /* Comment.Single */
body .cs { color: #408080; font-style: italic } /* Comment.Special */
body .gd { color: #A00000 } /* Generic.Deleted */
body .ge { font-style: italic } /* Generic.Emph */
body .gr { color: #FF0000 } /* Generic.Error */
body .gh { color: #000080; font-weight: bold } /* Generic.Heading */
body .gi { color: #00A000 } /* Generic.Inserted */
body .go { color: #808080 } /* Generic.Output */
body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
body .gs { font-weight: bold } /* Generic.Strong */
body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
body .gt { color: #0040D0 } /* Generic.Traceback */
body .kc { color: #954121 } /* Keyword.Constant */
body .kd { color: #954121; font-weight: bold } /* Keyword.Declaration */
body .kn { color: #954121; font-weight: bold } /* Keyword.Namespace */
body .kp { color: #954121 } /* Keyword.Pseudo */
body .kr { color: #954121; font-weight: bold } /* Keyword.Reserved */
body .kt { color: #B00040 } /* Keyword.Type */
body .m { color: #666666 } /* Literal.Number */
body .s { color: #219161 } /* Literal.String */
body .na { color: #7D9029 } /* Name.Attribute */
body .nb { color: #954121 } /* Name.Builtin */
body .nc { color: #0000FF; font-weight: bold } /* Name.Class */
body .no { color: #880000 } /* Name.Constant */
body .nd { color: #AA22FF } /* Name.Decorator */
body .ni { color: #999999; font-weight: bold } /* Name.Entity */
body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
body .nf { color: #0000FF } /* Name.Function */
body .nl { color: #A0A000 } /* Name.Label */
body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
body .nt { color: #954121; font-weight: bold } /* Name.Tag */
body .nv { color: #19469D } /* Name.Variable */
body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
body .w { color: #bbbbbb } /* Text.Whitespace */
body .mf { color: #666666 } /* Literal.Number.Float */
body .mh { color: #666666 } /* Literal.Number.Hex */
body .mi { color: #666666 } /* Literal.Number.Integer */
body .mo { color: #666666 } /* Literal.Number.Oct */
body .sb { color: #219161 } /* Literal.String.Backtick */
body .sc { color: #219161 } /* Literal.String.Char */
body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */
body .s2 { color: #219161 } /* Literal.String.Double */
body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
body .sh { color: #219161 } /* Literal.String.Heredoc */
body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
body .sx { color: #954121 } /* Literal.String.Other */
body .sr { color: #BB6688 } /* Literal.String.Regex */
body .s1 { color: #219161 } /* Literal.String.Single */
body .ss { color: #19469D } /* Literal.String.Symbol */
body .bp { color: #954121 } /* Name.Builtin.Pseudo */
body .vc { color: #19469D } /* Name.Variable.Class */
body .vg { color: #19469D } /* Name.Variable.Global */
body .vi { color: #19469D } /* Name.Variable.Instance */
body .il { color: #666666 } /* Literal.Number.Integer.Long */
<!DOCTYPE html> <html> <head> <title>hello.coffee</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> hello.coffee </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">&#182;</a> </div> <p>! coffeescript</p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">&#182;</a> </div> <p>My skelton app <br />
created by <a href="http://twitter.com/japboy">Yu Inao</a> in 2012</p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-3"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3">&#182;</a> </div> <p><strong>Hello function</strong> <br />
This will attach an event for <code>#hello</code> element and the event will be
triggered when <code>#hello</code> is clicked.</p> </td> <td class="code"> <div class="highlight"><pre><span class="nv">hello = </span><span class="o">-&gt;</span>
<span class="nv">el = </span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s">&#39;hello&#39;</span><span class="p">)</span>
<span class="nx">el</span><span class="p">.</span><span class="nx">addEventListener</span> <span class="s">&#39;click&#39;</span><span class="p">,</span> <span class="nf">(event) -&gt;</span>
<span class="vi">@innerText = </span><span class="s">&#39;こんにちは、ぼくのアプリ!&#39;</span></pre></div> </td> </tr> <tr id="section-4"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-4">&#182;</a> </div> <p>Run the function.</p> </td> <td class="code"> <div class="highlight"><pre><span class="nx">hello</span><span class="p">()</span>
</pre></div> </td> </tr> </tbody> </table> </div> </body> </html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>skel</title>
<meta name="author" content="Yu Inao">
<meta name="rights-standard" content="pd">
<link rel="shortcut icon" type="image/x-icon" href="./img/favicon.ico">
<link rel="stylesheet" href="./css/normalize.min.css">
<link rel="stylesheet" href="./css/style.min.css"><!--[if IE]>
<link rel="stylesheet" href="./css/ie-hotfixies.css"><![endif]--><!--[if lt IE 9]>
<script src="./js/html5shiv.js" charset="UTF-8"></script><![endif]-->
</head>
<body>
<h1>skel</h1>
<p id="hello">Hello, my app!</p>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" charset="UTF-8"></script>
<script src="./js/script.min.js"></script>
</body>
</html>
!!! 5
html
head
meta(charset='UTF-8')
title skel
meta(name='author', content='Yu Inao')
meta(name='rights-standard', content='pd')
link(rel='shortcut icon', type='image/x-icon', href='./img/favicon.ico')
link(rel='stylesheet', href='./css/normalize.min.css')
link(rel='stylesheet', href='./css/style.min.css')
//
[if IE]>
link(rel='stylesheet', href='./css/ie-hotfixies.css')
<![endif]
//
[if lt IE 9]>
script(src='./js/html5shiv.js', charset='UTF-8')
<![endif]
body
h1 skel
p#hello Hello, my app!
script(src='//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', charset='UTF-8')
script(src='./js/script.min.js')
{
"name": "skel",
"version": "0.0.1",
"description": "My skelton app working with CoffeeScript & NPM.",
"main": "js/hello.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git@gist.github.com:3080792.git"
},
"author": "Yu Inao",
"license": "Public Domain",
"dependencies": {
"coffee-script": ">=1.3.3",
"docco": ">=0.3.0",
"jade": ">=0.26.3",
"stylus": ">=0.27.2"
}
}
#! coffeescript
# My skelton app
# created by [Yu Inao](http://twitter.com/japboy) in 2012
# **Hello function**
# This will attach an event for `#hello` element and the event will be
# triggered when `#hello` is clicked.
hello = ->
el = document.getElementById('hello')
el.addEventListener 'click', (event) ->
@innerText = 'こんにちは、ぼくのアプリ!'
# Run the function.
hello()
// Generated by CoffeeScript 1.3.3
(function() {
var hello;
hello = function() {
var el;
el = document.getElementById('hello');
return el.addEventListener('click', function(event) {
return this.innerText = 'こんにちは、ぼくのアプリ!';
});
};
hello();
}).call(this);
body {
background-color: #000;
color: #fff;
}
body
background-color: rgb(0,0,0)
color: rgb(255,255,255)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment