Moved: This document now lives at https://alternatives.jonashw.dev/general/ (raw Markdown: https://alternatives.jonashw.dev/general.md). A software-focused version is at https://alternatives.jonashw.dev/software.md. This gist is no longer updated.
Moved: This document now lives at https://alternatives.jonashw.dev/software/ (raw Markdown: https://alternatives.jonashw.dev/software.md). A general-purpose version is at https://alternatives.jonashw.dev/general.md. This gist is no longer updated.
This file serves as a live demonstration of the specialized Domain-Specific Languages (DSLs) that GitHub natively renders into interactive elements, rather than just treating them as plain code text.
GitHub uses MathJax to parse inline and block-level mathematical notation.
The Workflow Formula:
| (function() { | |
| /* Grabs the images for all OVERDUE materials on the WPL "Checked Out" page, | |
| ** assembles them in a new page, and invokes the system print dialog. | |
| ** Run from https://woodland.aspendiscovery.org/MyAccount/CheckedOut | |
| */ | |
| 'use strict'; | |
| printImages(Array.from(document.querySelectorAll('.striped > div.result.bg-overdue img'))); | |
| function printImages(imgElements) { | |
| const w = window.open('', '_blank'); |
| // ==UserScript== | |
| // @name Bookmarklet Maker | |
| // @namespace http://tampermonkey.net/ | |
| // @version 2026-06-11 | |
| // @description A lean and mean JavaScript-only SPA that facilitates the creation of bookmarklets from JavaScript code. Inspiration: https://caiorss.github.io/bookmarklet-maker/. Fun fact! You can package this tool *as a bookmarklet* using the tool itself ;) | |
| // @author Jon Wilson <2jonwilson@gmail.com> | |
| // @source https://gist.github.com/jonashw/83be75a1cd63537259070a430395d486 | |
| // @match https://*/* | |
| // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== | |
| // @grant none |
| // ==UserScript== | |
| // @name Print Cover Images of Overdue Materials | |
| // @namespace http://tampermonkey.net/ | |
| // @version 2026-06-11 | |
| // @description Grabs the images for all OVERDUE materials on the WPL "Checked Out" page, assembles them in a new page, and invokes the system print dialog. | |
| // @author You | |
| // @match https://woodland.aspendiscovery.org/MyAccount/CheckedOut | |
| // @icon https://www.google.com/s2/favicons?sz=64&domain=aspendiscovery.org | |
| // @grant none | |
| // @source https://gist.github.com/jonashw/e503e6558c4504219bf8bbaf4502adc6 |
| // ==UserScript== | |
| // @name BrowserNetworkObserver | |
| // @description Captures all fetch/XHR traffic via callback and Observable interfaces. | |
| // @match *://*/* | |
| // @run-at document-start | |
| // @grant none | |
| // @source https://gist.githubusercontent.com/jonashw/d314c2b1dd0e08948bb588245344a4ef | |
| // @version 2026-06-08 | |
| // ==/UserScript== | |
| // Specification: https://gist.github.com/jonashw/df8c914c706a50ce1a73e86740bd210c |
We need to inject NetworkObserver into the browser before any page scripts execute so that all fetch/XHR traffic is captured from page load.
Tampermonkey userscript for immediate use; custom Chrome extension as a future option if more control is needed.
| //So much boilerplate! | |
| public abstract class UserAccountCreationResult | |
| { | |
| private UserAccountCreationResult() { } | |
| public UserAccountCreationResult AsBaseType() => this; | |
| //Emulate pattern matching | |
| public abstract T Match<T>( | |
| Func<Success, T> success, | |
| Func<WeakPassword, T> weakPassword, |
| SELECT | |
| p.ProjectID, | |
| p.FourHTitle, | |
| rt.RecordTypeID, | |
| rt.RecordTypeName, | |
| rt.RecordTypeDescription, | |
| ( SELECT COUNT(1) | |
| FROM c_RecordTypeConfiguration | |
| WHERE OrganizationID = 25 | |
| AND RecordTypeID = rt.RecordTypeID |