Skip to content

Instantly share code, notes, and snippets.

dceddia / convertkit-top-level-tabs.js
Created Apr 15, 2021
A Greasemonkey script to add Sequences and Rules as top-level nav items in ConvertKit
View convertkit-top-level-tabs.js
// ==UserScript==
// @name CK - add page links to navbar
// @namespace Violentmonkey Scripts
// @match*
// @grant none
// @version 1.0
// @author -
// @description Adds Rules and Sequences to top-level nav
// ==/UserScript==
dceddia / CGPath+svg.swift
Last active Apr 5, 2021
Convert a CGPath to an SVG element with this Swift extension to CGPath
View CGPath+svg.swift
// CGPath+svg.swift
// Create an SVG element from a CGPath.
// Created by Dave Ceddia.
// MIT Licensed
// Inspired by:
dceddia / Makefile
Created Dec 7, 2020
Build Tailwind
View Makefile
SHELL = /bin/bash
.PHONY: all clean
all: _site/style.css
rm -rf _site/style.css
_site/style.css: styles/tailwind.css tailwind.config.js | node_modules
dceddia / css.json
Created Sep 29, 2020
Put this in VSCode > Preferences > User Snippets > css.json. Then in a CSS file, type "cf" and hit Tab.
View css.json
"Center things": {
"prefix": "cf",
"body": ["align-items: center;", "justify-content: center;"],
"description": "Center items in a flex container"
dceddia / extractHighlightedLines.js
Last active Aug 26, 2020
Given a code block, use the first few lines to infer what to highlight when generating syntax-highlighted HTML via Shiki
View extractHighlightedLines.js
/* If the block begins with the `highlightLines: []` directive, strip that off,
parse the array as JSON, and pass the lines to Shiki.
Replaces single quotes with doubles, because I know I'm gonna screw that up.
Valid formats include:
highlightLines []
// highlightLines: []
dceddia / svg-to-svelte.rb
Created Jul 29, 2020
Transform an SVG element into something ready to be animated with Svelte + animejs
View svg-to-svelte.rb
#!/usr/bin/env ruby
require 'open3'
# Copy the SVG from Sketch, then run this
# It will clean up the SVG, insert bind:this={whatever} for any objects named `b:whatever` in the svg,
# and print out the variables to declare in Svelte
# To use:
# 1. copy the SVG from Sketch
dceddia / open-graph.html
Created Jul 20, 2020
Open Graph tags (_includes/open-graph.html), included from _includes/head.html
View open-graph.html
<!-- Twitter Cards -->
<meta name="twitter:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
{% if page.excerpt %}<meta name="twitter:description" content="{{ page.excerpt | strip_html }}">{% endif %}
{% if site.owner.twitter %}<meta name="twitter:site" content="@{{ site.owner.twitter }}">{% endif %}
{% if author.twitter %}<meta name="twitter:creator" content="@{{ author.twitter }}">{% endif %}
{% if page.image.twitter %}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="{{ site.url }}/images/{{ page.image.twitter }}">
{% elsif page.image.feature %}
<meta name="twitter:card" content="summary_large_image">
dceddia / .zshrc
Created May 7, 2020
A custom zsh "widget" for inserting a duplicate of the last argument on the line. Good for renaming a file to a similar name.
View .zshrc
# Press Alt-/ to insert the last argument from the same line
# ex:
# type "cp foo", press Alt-/, and it will insert " foo" so that your command will be
# cp foo foo
# Great when you want to rename a file to a similar name at the same path
# (This is different from Alt-. to insert the last arg from the previous command)
insertPreviousArg() {
echo $LBUFFER | read -A args
dceddia / javascript.json
Created Oct 3, 2019
VSCode Snippets for React
View javascript.json
"Insert a function": {
"prefix": "f",
"body": [
"function $1($2) {\n $0\n}\n"
"description": "Insert a function"
"const arrow": {
"prefix": "c>",
dceddia /
Created Feb 1, 2019
Create a new post based in Gatsby. (make sure to create a file)
# Print usage if args are missing
if [ -z $1 ]; then
echo "Usage: new-post <slug>"
DAY=$(date +%Y-%m-%d)