Skip to content

Instantly share code, notes, and snippets.

@mwunsch
mwunsch / replicate.js
Created February 5, 2014 18:39
Clone DOM node w/ relevant styles
/**
*
* HTMLElement.replicate()
*
* Here's an extension to the DOM's [HTMLElement interface][1] that completely
* replicates an element. Unlike `Node.cloneNode`, this method also copies over
* relevant styles. This allows you to clone nodes completely detached from the
* source document, but with enough information to render their independent
* representation.
*
#!/usr/bin/env ruby
## WP2TUMBLR: WordPress 2 Tumblr Importing tool
##
## Usage: wp2tumblr [OPTION] WORDPRESS_XML_FILE
##
## Import the WORDPRESS_XML_FILE to a Tumblr blog.
## Provide `--group` option to publish to a group.
## This could take a long time...
##
## To install, download the script and chmod to 755.
@mwunsch
mwunsch / text_nodes.js
Last active September 13, 2023 09:09
Get the text nodes out of a document, ignoring the ones that are in Elements where the text value aren't likely to be valuable (like <script> tags) and nodes containing just whitespace.
function getLegitTextNodes() {
if (!document.createTreeWalker) return [];
var blacklist = ['SCRIPT', 'OPTION', 'TEXTAREA'],
textNodes = [],
walker = document.createTreeWalker(
document.body,
NodeFilter.SHOW_TEXT,
function excludeBlacklistedNodes(node) {
if (blacklist.indexOf(node.parentElement.nodeName.toUpperCase()) >= 0) return NodeFilter.FILTER_REJECT;
@mwunsch
mwunsch / emoji_image_replace.js
Last active August 13, 2023 21:44
Detect emoji unicode on a page, replace it with images (supplied by GitHub, for now). Goes great in your ~/.js
/**
*
* Here's a thing that will look through all the text nodes of a document, and
* upon encountering an emoji codepoint, will replace it with an image.
* For now, those images are pulled from GitHub, which isn't very nice, so I
* need to find a more suitable host.
*
* Much of this code was gleaned from staring at the minified GitHub JS.
*
* Copyright (c) 2013 Mark Wunsch. Licensed under the MIT License.
# Rake tasks for building a jekyll blog and deploying to S3.
#
# These tasks aren't intended to replace the `jekyll` executable,
# but provide convenient Rake-isms to generate the destination dir
# when necessary.
#
# To write to s3, it assumes there is a bucket field in the
# jekyll config:
# aws:
# bucket: 'my-s3-bucket'
@mwunsch
mwunsch / viz.js
Created April 23, 2015 14:31
DOM -> Graphviz
/*
This is an incredibly rudimentary PhantomJS script to walk a DOM and emit a graphviz `dot` document.
It is neither clever nor good.
Proceed with caution.
Usage: phantomjs viz.js http://2015.empirejs.org/ | tee >(dot -Tpng > test.png)
*/
var page = require('webpage').create();
var args = require('system').args;
@mwunsch
mwunsch / broadcast.rkt
Last active December 22, 2020 02:08
!!con 2018 Presentation - Overscan
#lang overscan
(require overscan/macos
overscan/draw
(only-in racket/file make-temporary-file)
racket/draw
(only-in racket/math pi)
"twitch-secret.rkt")
(define cam+screen
@mwunsch
mwunsch / avatar.sh
Last active June 23, 2018 17:41
Random Avatar Generator
curl -s 'http://realbusinessmen.tumblr.com/api/read?type=photo&num=50' | ruby -r'rexml/document' -e 'puts REXML::Document.new(STDIN).elements["tumblr/posts"].to_a.shuffle.pop.map(&:text)'
@mwunsch
mwunsch / keybase.md
Created March 11, 2014 17:04
keybase.md

Keybase proof

I hereby claim:

  • I am mwunsch on github.
  • I am wunsch (https://keybase.io/wunsch) on keybase.
  • I have a public key whose fingerprint is CE28 EDB9 BAD2 F531 7941 B65A 9E26 C63A DC75 6EEF

To claim this, I am signing this object:

@mwunsch
mwunsch / Main.elm
Last active March 22, 2017 01:12
Elm Boilerplate
module Main exposing (..)
-- Stick this Elm file in a directory. Run `elm make` in the
-- directory. Run `elm reactor`. Now you have an Elm program.
import Html exposing (..)
main : Program Never Model Msg
main =