Searchlink, not just for searching
First, I’ve created a repo for SearchLink plugins. This is mostly going to be example code, but you might find some useful ones in there. If you’ve never checked out SearchLink and do any kind of writing that requires linking to web sites/pages, app landing pages, Gist embeds, or basically any kind of blogging, web writing, or show notes, you should check it out.
See the plugin repository for details on installing and contributing. All of the available searches in SearchLink are defined as plugins, so you can also use those as examples.
Text Filters
One thing I wanted to explore was using SearchLink for more than just searches. I created a couple proofs of concept as plugins. Some of these make more sense as TextExpander snippets, but I wanted to experiment, so here’s what I came up with.
MixCase
This plugin is a text filter that will turn !mix A string of text
into A STRInG of TExT
, randomly capitalizing characters. It’s just to demonstrate how easily a text filter can be implemented (if you know a little Ruby, anyway).
Calendar
Another example of a text filter. This one can insert a Markdown calendar for any month and year. You can define the month and year like !cal 5 2024
to get a calendar for May, 2024. If you use !cal now
it will insert a calendar for the current month and year. It can also print how many days are in a month with !days 2 2024
to show how many days are in February in 2024. Silly, and again would probably be better as a TextExpander snippet, but I’m just experimenting with extending SearchLink.
MakeADate
This is a port of a TextExpander snippet I use. It takes a natural language date and inserts a formatted date. It provides the following formats:
Abbr | Result |
---|---|
!ddate tomorrow 8am |
2023-11-02 8:00am |
!dshort 2/2/24 6:30am |
2024-2-2 6:30am |
!diso tomorrow 1pm |
2023-11-02 13:00 |
!dlong tomorrow 8am |
Thursday, November 2nd, 2023 at 8:00am |
All of the searches can be abbreviated to two letters, with !diso
becoming !di
, !dlong
becoming !dl
, etc.
This plugin requires that PHP be installed on the system, either with the Apple Command Line Utilties (I think), or with Homebrew (brew install php
).
Contributing
Use the fully-commented code in lyrics.rb
(documented in the SearchLink wiki) to generate your own plugins, and reference the existing searches for inspiration. Feel free to fork and submit a PR to the plugin repository if you create something you’d like to share!