Skip to content

Instantly share code, notes, and snippets.

View daronspence's full-sized avatar

Daron daronspence

View GitHub Profile
@daronspence
daronspence / stale-branch-delete.js
Created March 9, 2024 13:08
Bulk Delete Stale Branches Userscript
// Copy and paste this into the browser console: https://github.com/<your-username>/<your-repo-name>/branches/stale
// Helper function
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
async function clickDeleteElements() {
// Note: the label here may be different if you are not using English
const elements = Array.from(document.querySelectorAll('button[aria-label*=Delete]'));
for (let index = 0; index < elements.length; index++) {
@daronspence
daronspence / FontAwesome.php
Last active October 11, 2023 14:29
Font Awesome Wordpress Admin Icons
<?php
// Loads FontAwesome & assigns dashicon prefixed classes to correspond to FontAwesome fallbacks.
// This allows 'dashicons-' to be used when declaring custom post type icons.
function font_awesome_icons(){ ?>
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
<style>
.dashicons-before:before { font-family: dashicons, FontAwesome; }
.dashicons-suitcase:before { content: "\f0f2"; }
.dashicons-cutlery:before { content: "\f0f5"; }
</style>
@daronspence
daronspence / BaseTable.vue
Created August 24, 2022 19:47
A table component to act as the base for larger table features.
<script>
const BaseTable = {
props: {
fields: {
type: Array,
default: [],
validator(fields) {
return fields.find(field => field?.key === undefined || field?.label === undefined) === undefined
},
},
@daronspence
daronspence / markdown-with-iframes.php
Created April 29, 2022 15:23
Stringable Markdown with Iframe Support
<?php
// within AppServiceProvider::boot() or a similar entry point
Stringable::macro('markdownWithIframes', function ($config = []) {
$config['disallowed_raw_html'] = [
'disallowed_tags' => ['title', 'textarea', 'style', 'xmp', 'noembed', 'noframes', 'script', 'plaintext'],
];
$environment = new Environment($config);
@daronspence
daronspence / hyper-volume.json
Created January 13, 2022 07:58
Hyper Volume
{
"title": "Hyper Volume",
"rules": [
{
"description": "Hyper + Up = Volume Up",
"manipulators": [
{
"from": {
"key_code": "up_arrow",
"modifiers": {
@daronspence
daronspence / acf-ajax.php
Created October 30, 2018 14:20
ACF AJAX for Mike
<?php
add_action('admin_head', function(){
?>
<script type="text/javascript">
/*
updated JS file for use with ACF >= 5.7.0
*/
@daronspence
daronspence / nvmrc.zsh
Created February 22, 2021 21:50
Automagic .nvmrc
#!/bin/zsh
# Put this in your .zshrc
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
@daronspence
daronspence / example.js
Created May 20, 2020 20:30
Contentful debug example
/**
* Essentially, the `onValueChanged` callback used to provide an object/array that was `===` during comparisons.
* In the last few days though, something changed and === was not working anymore.
* My solution is to serialize the values and compare those strings to ensure things are
not triggering unnecessary re-renders.
The external change handler is triggered even when the current editor updates the field value,
so we need to check it's equality to what is already in state,
otherwise the current editor will be in an endless loop of updating their own UI.
@daronspence
daronspence / a.js
Created April 30, 2020 18:38
Contentful
import React from 'react';
import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import { TextInput } from '@contentful/forma-36-react-components';
import { init } from 'contentful-ui-extensions-sdk';
import '@contentful/forma-36-react-components/dist/styles.css';
import './dist.css';
import { createApolloFetch } from 'apollo-fetch';
import { debounce, union, keyBy } from 'lodash-es';
@daronspence
daronspence / quick-edit.php
Created July 8, 2015 01:49
Quick Edit Plugin
<?php
/**
* Plugin Name: Quick Edit Pro
* Plugin Author: Daron Spence
* Version: 0.1
*/
add_action( 'quick_edit_custom_box', function( $column_name, $post_type ){
if ( 'post' === $post_type && 'post_excerpt' === $column_name ){ ?>