- Basic: Basic Rules
 - PHB: Player's Handbook (paper only)
 - LMP: Lost Mines of Phandelver
 - HotDQ: Horde of the Dragon Queen
 - OotA: Out of the Abyss
 
Ranger Pets
| // This file represents a simplification of a scope problem I have interacting | |
| // with a C SDK. Essentially: | |
| // | |
| // * I to pass a callback to a C function | |
| // * The callback should call a member function of a non-static class instance | |
| // | |
| // I would like to achieve this without risking memory leaks and crashes, while | |
| // also not introducing a huge amount of complexity or rearchitecting the app. | |
| #include <iostream> | 
| # can add this to ~/.bash_profile | |
| node-find() { | |
| grep -r --exclude-dir node_modules --include "*.js" "require([\"']$1[\"'/]" . | cut -d ':' -f1 | sort | uniq | |
| } | 
| { | |
| "extends": [ | |
| "eslint:recommended" | |
| ], | |
| "rules": { | |
| "valid-jsdoc": [ | |
| "warn", | |
| { | |
| "prefer": { | |
| "return": "returns", | 
| Array.from(document.querySelectorAll('object,video,audio,iframe,embed')).forEach(el => el.remove()); | 
| /*global BackgroundList,BackgroundFeatureList*/ | |
| /*jshint sub:true*/ | |
| /* See http://web.archive.org/web/20160426193612/http://dndadventurersleague.org/wp-content/uploads/2016/04/Curse-of-Strahd-Backgrounds-v1.1.pdf */ | |
| BackgroundList["black fist double agent"] = { | |
| regExpSearch : /black\W*fist/i, | |
| name : "Black Fist Double Agent", | |
| source : ["HB", 1], | |
| skills : ["Deception", "Insight"], | |
| gold : 15, | |
| equipleft : [ | 
| /** | |
| * Dead-simple event handling polyfills. Based largely on | |
| * http://youmightnotneedjquery.com/ | |
| */ | |
| /** | |
| * IE-safe removeEventListener polyfill. Not exported to avoid bugs | |
| * caused by wrapping the event handler in IE8. | |
| * | |
| * @param {Window|Document|HTMLElement} el Element to listen on | 
| // V8 initializes memory space for _x and _y | |
| // in advance | |
| function Klass1() { | |
| this._x = null; | |
| this._y = null; | |
| } | |
| var k1 = new Klass1()._x = 'hi'; | |
| function Klass2() {} | |
| // dynamically defined property converts to a | 
Ranger Pets
| 'use strict'; | |
| module.exports = function (grunt) { | |
| var jshintrc = grunt.file.readJSON('.jshintrc'); | |
| // super simple shallow copy/merge | |
| function merge(o1, o2) { | |
| var retVal = {}, i; | |
| for (i in o1) { | 
| {% comment %} | |
| Generate PURE Paginators in a Jekyll blog: | |
| http://purecss.io/menus/#paginators | |
| http://jekyllrb.com/docs/pagination/ | |
| The `page_spread` determines how wide the paginator is; it's the | |
| number of links on either side of the center link, so you'll end | |
| up with a list of the following sizes: |