Skip to content

Instantly share code, notes, and snippets.

Avatar

Chase Wilson jiggliemon

View GitHub Profile
View base.tpl
{block name='title'}{/block}
{block name='body'}{/block}
View wonk.js
(function() {
function Game() {
this.reset();
}
Game.prototype = {
reset: function reset() {
this.count = 0;
this.guesses = [];
this.answer = Math.round(Math.random() * 99 + 1);
},
View app.layout.json
[{"name":"root","type": "core/template",
"children": [
{"name": "header","type": "core/template"},
{"name": "body","type":"core/template",
"children": [
{"name": "body.left", "type": "core/template"},
{"name": "body.right", "type": "core/template"},
{"name": "body.main", "type": "core/template"}
]
},
@jiggliemon
jiggliemon / protofy.js
Last active Dec 21, 2015
Turns a list of objects into a prototype chain
View protofy.js
function protofy () {
var args = Array.prototype.slice.call(arguments)
return (function objectify (obj) {
obj = args.shift()
return args.length ? protofy.x( Object.create( objectify() ), obj ) : obj
}())
}
protofy.x = function ( one, two, k ) {
View Web Component Resources.md
View demo.js
var block = require('yayo/block')
var fs = require('fs')
function getTemplate(name) {
return fs.readFileSync('./tmpl/'+name+'.tmpl', 'utf8')
}
var layout = new block({
template: getTemplate('layout')
})
View core.json
{
"name": "block.name"
,"type": "core/text"
,"blocks": [
{"name": "some.block","type": "core/list"}
,{"name": "some.nested.block","type": "core/text"}
]
}
View TaskBlock.js
var Block = require('blocks/block')
var TaskModel = require('app/blocks/task')
var TaskBlock = Block.create({
template: "<input type=\"checkbox\" <%= this.model.get('doneness')?'checked':'' %>/><%= this.model.get('text') %>"
}, {
construct: function (taskId) {
this.setModel(new TaskModel(taskId))
}
})
View localstorage.js
var Obj = require('parsed/object')
var LocalStorage = require('parsed/object/localstorage')
var Validation = require('parsed/object/validation')
var Task = Obj.create('Task', {
implement: [LocalStorage, Validation]
}, {
init: function () {
}
View Write-more-markup.md

Write more markup

Markup is the final presentation API.

If you're in the business of writing markup that's intended to be styled by a 3rd party, provide the interested party the most flexible environment possible: write more markup | give more hooks.

A class that has more methods is more flexible than a class with one. A document with more elements and attributes is more flexible and style-able than one that provides minimal markup.