Skip to content

Instantly share code, notes, and snippets.

daronspence / BaseTable.vue
Created Aug 24, 2022
A table component to act as the base for larger table features.
View BaseTable.vue
const BaseTable = {
props: {
fields: {
type: Array,
default: [],
validator(fields) {
return fields.find(field => field?.key === undefined || field?.label === undefined) === undefined
daronspence / markdown-with-iframes.php
Created Apr 29, 2022
Stringable Markdown with Iframe Support
View markdown-with-iframes.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);
View hyper-volume.json
"title": "Hyper Volume",
"rules": [
"description": "Hyper + Up = Volume Up",
"manipulators": [
"from": {
"key_code": "up_arrow",
"modifiers": {
daronspence / nvmrc.zsh
Created Feb 22, 2021
Automagic .nvmrc
View nvmrc.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 / example.js
Created May 20, 2020
Contentful debug example
View example.js
* 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.
View a.js
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 / config.json
Created Oct 11, 2019
Tailwind Config -
View config.json
"variants": {
"borderColor": ["responsive", "hover", "focus", "focus-within"]
daronspence / acf-copy-repeater-field-to-singular.php
Created May 2, 2019
Copy last row of ACF field to hidden custom fields on save
View acf-copy-repeater-field-to-singular.php
* Plugin Name: ACF Copy Repeater Field to Singular - docs_list_renew
* Version: 0.1
* Description: Copies the values of the last row of a repeater field to separate custom fields to be used with Admin Columns
// Rename the second argument if you're going to copy the plugin to work with another repeater.
add_action('wp_insert_post', 'reddit_acf_copy_repeater_field_to_singular', 10);
daronspence / webpack.mix.js
Created Apr 27, 2019
Laravel Mix with Sass and Tailwind 1.0 Configuration
View webpack.mix.js
const mix = require('laravel-mix');
| Mix Asset Management
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
daronspence / acf-ajax.php
Created Oct 30, 2018
ACF AJAX for Mike
View acf-ajax.php
add_action('admin_head', function(){
<script type="text/javascript">
updated JS file for use with ACF >= 5.7.0