Skip to content

Instantly share code, notes, and snippets.

View nilliams's full-sized avatar

Nick Williams nilliams

  • Leicestershire, UK
View GitHub Profile
@nilliams
nilliams / jekyll-prettify.md
Last active January 24, 2020 18:52
Add client-side syntax highlighting to static sites (such as Jekyll w/ Pygments disabled), with Google-Code-Prettify.

Note: One alternative is to use this Prism.js Jekyll Plugin, the advantage of using google-code-prettify is that it can be used with standard markdown (indented code blocks) rather than using liquid tags like {% prism %}. Prettify will guess which language your code blocks contain and highlight appropriately.

Grab the google-code-prettify sources and include them in the <head> of your page template, for Jekyll you will want to edit layouts/default.html (tailor paths to directory structure):

<link rel="stylesheet" href="/css/google-code-prettify/prettify.css">
<script src="/js/google-code-prettify/prettify.js"></script>

This JS snippet adds the prettyprint class to <pre> tags and runs prettify:

@nilliams
nilliams / node-openvg-particles.js
Created October 29, 2013 12:28
Simple particles example on the Raspberry Pi using node-openvg-canvas. Original demo code from thecodeplayer.com.
// Original Source
// http://thecodeplayer.com/walkthrough/make-a-particle-system-in-html5-canvas
//
// Modified to work with `node-openvg-canvas` on the Raspberry Pi
// - use RequestAnimationFrame instead of setInterval
// - correct the number of arguments in call to `ctx.arc()`
//
// Usage:
// - install Node.JS
// (refer to Installing Node section here: http://blog.rueedlinger.ch/2013/03/raspberry-pi-and-nodejs-basic-setup/)
@nilliams
nilliams / onClick.js
Last active December 27, 2015 17:19
A relatively sane onClick helper (Webkit only), for e.g. Node-Webkit work. Add additional prefixed versions of `matchesSelector` for further browser compat.
function onClick(selector, fn) {
document.addEventListener('click', function(e) {
if ( _matchesSelector(e.target, selector) ) fn(e);
}, false);
}
function _matchesSelector(el, selector) {
var doc = document.documentElement;
var fn = doc.matchesSelector || doc.webkitMatchesSelector;
@nilliams
nilliams / particles.c
Last active December 29, 2015 17:39
Simple particles example using the OpenVG Testbed
// particles.c - Simple particles example using the OpenVG Testbed
// Installing & Running:
// 1. Download the OpenVG Testbed (https://github.com/ajstarks/openvg)
//
// $ git clone https://github.com/ajstarks/openvg.git
// $ cd openvg/client
//
// 2. Place a copy of this file (particles.c) in that directory
// 3. Add the following to the Makefile:
@nilliams
nilliams / index.js
Last active October 18, 2016 18:57
requirebin sketch
// http://requirebin.com/?gist=8f13d5147c1c252ab1691115bfa8b7c5
var Promise = require('es6-promise').Promise;
new Promise(function() {
console.log("We're running...");
// nothing happens, this error is silently swallowed. and yes this could just as
// well be a typo. issue: https://github.com/stefanpenner/es6-promise/issues/70
throw 'err';
@nilliams
nilliams / index.js
Last active October 21, 2016 18:46
requirebin sketch
var Promise = require('es6-promise').Promise;
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// We totally resolve and all is good ...
resolve();
});
}
@nilliams
nilliams / index.js
Last active October 19, 2016 23:14
requirebin sketch
var Promise = require('bluebird');
new Promise(function() {
console.log("We're running...");
// A crazy error is thrown here, but you will see this in your Chrome console.
// Seems like Bluebird has the right default here!
throw 'Nice job Bluebird';
console.log("We'll never get here.");
@nilliams
nilliams / index.js
Created October 21, 2016 19:01
requirebin sketch
var Promise = require('yaku');
function MyCoolErr() {}
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// Resolve and all is good ...
resolve();
@nilliams
nilliams / index.js
Created October 21, 2016 19:06
requirebin sketch
var Promise = require('es6-promise').Promise;
function MyCoolErr() {}
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// Resolve and all is good ...
resolve();
@nilliams
nilliams / index.js
Created October 21, 2016 20:00
requirebin sketch
var Promise = require('rsvp').Promise;
function MyCoolErr() {}
function foo() {
return new Promise(function(resolve, reject) {
console.log("We're running...");
// Resolve and all is good ...
resolve();