Convert Alfred snippets (.json) to Espanso matches (.yaml)

Moving to Linux this month (Pop_OS to be specific), the biggest change was leaving Alfred behind. While almost every other tool or app had a nearly exact replacement, I could not find any launchers on Linux that had the huge number of power user features Alfred has. However, I found lots of amazing small apps that do just one feature and do it well.

One of those apps was Espanso, a light weight CLI focused text expander. Using Alfred on macOS, the global snippets where a big part of my workflow. After a bit of reading, on Linux I stumbled on Espanso which seems like one of the best text expanders available. A quick browse of the well written and maintained documentation and it’s clear why.

The UX for the actual text expanding was the exact same, however the setup was a bit different between the two apps. There’s no simple way to just import Alfred snippets into Espanso, so a bit of data massaging was required.

To do this I first exported Alfred snippets (either by browsing Alfreds preferences folder, or Exporting the snippets manually in Alfred > Features > Snippets > Export), I then jotted up and ran this script to convert Alfreds method of storing the snippets in .json to Espanso’s .yaml format, & tweaking some minor differences with cursor and clipboard variables:

A pretty simple difference and straight forward result. Then it was just copy & paste of the output to the bottom of ~/.config/espanso/default.yaml

If this doesn’t work and Espanso complains of errors, try opening default.yaml in VSCode or another editor and add YAML Syntax extension or similar. This should flag any syntax errors for manual resolving. In my case one or two regex patterns I have saved were just a bit to regex’y for my simple str_replace()’s.

All and all it wasn’t a heavy lift, & I managed to wrangle all 388 some snippets of mine over.

WordPress Pass PHP Variable and Values to JS Theme or Plugin

The beautiful function wp_localize_script() was built for l11n, however its found as a method for carrying over server-side values into client-side JS.

Your values are now available in your .js file:

console.dir(my_theme_data);

Currently using this in a React theme I’m building for WordPress.

This can also be done with something like:

Every Image URL Filter For WordPress, Front & Back End

I had a project where every single media library image URL needed to be filtered, backend and front end. As far as I’ve found these were the filters for every area:

The myplugin_filter_html_image_urls() function peals out images with regex from areas where it’s not just the URL being sent. This function may require verification of the current domain incase bad practices of using external images is being done.

WordPress Pass Variable Into wp_footer, wp_head, & all Other Actions/ Hooks/Filters

Passing variables into WordPress hooks using an anonymous function I thought was impossible. I always worked around this and rewrote the logic. Today I found out anonymous functions support a use keyword, allowing passing:

So simple and easy. Shaves hours of troubleshooting.

Switching PHP Versions Localhost, Keep phpMyAdmin Working

When switching localhost php versions for testing, nothing interrupts the workflow more than phpMyAdmin failing because you’re on php 5.4.

The single line of code, to be your index.php in /phpmyadmin/ simply routes you to either the phpmyadmin/new/ (v4.7 – supports php 5.5-7.2) and phpmyadmin/old/ (4.0 – supporting php 5.2 – 5.4):

Simple.