Welcome to the lab.

Conductor filters simplify basic operations

Last month I released Conductor, a tool for handling multiple Custom Processors in Marked. It allows you to use natural language conditions to determine which command or script to run, either as preprocessor or processor for Marked. But I found a lot of my scripts were just injecting metadata or performing other simple actions, so I added a new feature to Conductor called Filters. Filters are just shortcuts to avoid having to write simple (often 3 or 4 line) scripts.

Like command: or script: actions, you can now just use filter: filterName(parameters) to do things like setting a Marked Style, injecting or stripping metadata (YAML/MMD aware), or doing search and replaces on the content. These can be run in a sequence: to combine multiple filters.

Available Filters

The available filters are:

  • addMeta(key, value)/setMeta(key, value) – adds or updates a meta key, aware of YAML and MMD
  • stripMeta – strips all metadata (YAML or MMD) from the content
  • stripMeta(key) – removes a specific key (YAML or MMD)
  • setStyle(name) – sets the Marked preview style to a preconfigured Style name
  • replace(search, replace)/replaceAll(search, replace) – performs a search and replace (global with replaceAll).
    • If search is surrounded with forward slashes followed by optional flags (i for case-insensitive, m to make dot match newlines), e.g. /contribut(ing)?/i, it will be interpreted as a regular expression. The replace value can include numeric capture groups, e.g. Follow$2.

Update to the latest version using gem install marked-conductor (may vary depending on how you installed it originally) to get the new features, see the project page for details, and check out my config to see examples.

If there are any simple procedures you’re currently using scripts to handle that aren’t covered by these, please let me know in the comments what filters you’d like to see added!

Also, easier testing

There’s now a file in the repo called test.sh that makes it way easier to test configurations from the command line. Just run test.sh FILENAME to process a file as if it were being opened in Marked. You can use -o err to output only the STDERR response, which will show which conditions are being matched, and you can use -p to define the phase as either pre or pro to run as Preprocessor or Processor, respectively.

The OmniGraffle giveaway winners!

The OmniGraffle giveaway has ended, and I have winners to announce!

The winners!

Congratulations to:

  • Brian Petran
  • Hans Järling

You should have received an email with details, please let me know if you didn’t hear anything!

But I didn’t win!

If you didn’t win, sorry, but OmniGraffle is still worth checking out. You can’t beat OmniGraffle for all of your visual communication and brainstorming.

Next up is DEVONthink. Check back every Monday through September, 2024 for more giveaways. The next giveaways include:

See the full list of upcoming giveaways!

If you want to suggest an app you’d like to see in this series, let me know on Twitter or Mastodon, and join the email list for notifications!

OmniGraffle giveaway!

I’m excited to offer the next giveaway, 2 Standard licenses ($209.98 value each) for OmniGraffle, including both iOS and Mac licenses. OmniGraffle is the premier application for visual communication of ideas. Omni makes great software, and OmniGraffle is evidence of that. This giveaway gets you licenses for both Mac ($149.99) and iOS ($59.99).

From the developer:

With the power to diagram, rapid-prototype, and design, OmniGraffle was made for professionals who need to organize or communicate visually — beautifully.

Check out the OmniGraffle site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, May 24, at 12pm Central. The drawing is for 2 Standard licenses ($209.98 value each) for OmniGraffle (iOS and iPad), one per winner. Note that if you’re reading this via RSS, you’ll need to visit this post on brettterpstra.com to enter!

New rule: All signups must have a first and last name in order to be eligible. Entries with only a first name will be skipped by the giveaway robot. A lot of the vendors in this series require first and last names for generating license codes, and your cooperation is appreciated!

Sorry, this giveaway has ended.

Stay tuned for more giveaways every week through September, 2024 (and maybe beyond).

If you have an app you’d love to see featured in this series of giveaways, let me know. Also be sure to sign up for the mailing list or follow me on Mastodon so you can be (among) the first to know about these!

The MacUpdater giveaway winners!

The MacUpdater giveaway has ended, and I have winners to announce!

The winners!

Congratulations to:

  • Wil Chow
  • Dag Høidahl
  • Mike Beard
  • Bo Link
  • Jacob Goldberg
  • David Loeffler
  • Daniel Revell
  • Joseph Gibbs
  • Aaron Wasserman
  • Troy Patterson

You should have received an email with details, please let me know if you didn’t hear anything!

But I didn’t win!

If you didn’t win, sorry, but MacUpdater is still worth checking out. There’s no better solution for keeping all of the apps on your Mac up to date. You can still save 20% on a license with the code BRETT20 at checkout. I use this app every day and highly recommend it.

Next up is OmniGraffle. Check back every Monday through September, 2024 for more giveaways. The next giveaways include:

See the full list of upcoming giveaways!

If you want to suggest an app you’d like to see in this series, let me know on Twitter or Mastodon, and join the email list for notifications!

Marked 2 and Obsidian

I’m not going to lie, Obsidian is really cool. It’s a Markdown-based note system that has a ton of cool features, and even more with its healthy plugin community.

I don’t see Obsidian as direct competition for nvUltra1, where the main focus is rapid note-taking and full text search, which nvUltra does a superior job of. I actually open my main nvUltra Notebook in Obsidian as a Vault (both of which are just folders on your drive) and love the ease of using both apps together.

Lee Garrett and Mike Schmitz have done some great Obsidian tutorials over at ScreenCastsOnline. Check out:

  • Obsidian Basics from Lee, giving a full tutorial for getting started with Obsidian
  • Obsidian Plugins Starter Kit from Mike, offering an overview of some great core and community plugins, with tips that will also serve you well for getting used to using plugins in general

(I have an affiliate arrangement with SCO that gives me a little income if you subscribe. They make amazing videos so I’m very happy to partner with them!)

Integrating with Marked 2

The point of this post is not to get you to use Obsidian. It’s about integrating Marked 2 with Obsidian for those who already use it. Obsidian plugins offer some great Markdown preview features, but lack all of the writing and customization tools that Marked offers.

Marked works perfectly with Obsidian. You just have to open the current note in Marked and changes show up with about a two-second delay in Marked as you edit (based on the rate that Obsidian autosaves). You can also open your entire Vault folder in Marked and it will always show you the note you’re currently editing. It’s just a bit of a pain to get these to Marked without revealing in Finder and dragging. So I made a plugin.

Eventually I’d like to have this plugin available in Obsidian’s Community Plugins, but the process of getting it accepted has been slow. If and when it is eventually merged, I’ll update these instructions as the process will become much easier. In the meantime, you have two options to install:

Use the B.R.A.T. Plugin

Install the BRAT plugin. Then add the Marked 2 plugin repo URL:

https://github.com/ttscoff/Marked2-obsidian

(Thanks to Mason Phillips for pointing this option out.)

Install Manually

  1. Open the .obsidian/plugins folder in your Vault. The easiest way to get there is to open Obsidian Preferences, navigate to Community Plugins, then click the folder icon next to Installed Plugins.

  2. Create a folder called Marked-obsidian in the plugins folder.
  3. Go to the latest release of the Marked 2 plugin and download the main.js and manifest.json files to the .obsidian/plugins/Marked-obsidian folder.
  4. Return to Obsidian Preferences -> Community Plugins and you should now see the Marked plugin available. Enable it by clicking the slider.

This gives you a sidebar button for opening the current note in Marked (which can be “Marked blue” or neutral to fit your theme), as well as two commands in the palette: “Open note in Marked” and “Open vault in Marked.”

Handling Obsidian Syntax

If you’re regularly opening Obsidian files in Marked, you might want to add a Custom Preprocessor for handling general Obsidian markup:

  1. There’s this one from voostinidie that does things like stripping YAML, stripping emojis, and converting wiki links to plain text. It has the nice benefit of replacing ![[file include]] syntax with IA block syntax, which Marked will render. I may eventually add the Obsidian formatting as a valid option for file includes in Marked by default, based on interest. I had a PR accepted to this repo that adds some additional config options for replacing [[wiki links]] and other Obsidian syntax with links back to the note/header in Obsidian. See the README for configuration details. My own fork will always have the latest changes.
  2. This much simpler one from radekkozak just handles wiki links, and converts them to obsidian:// links for you, so clicking a link in Marked will open the linked note in Obsidian.

If you want to be able to render Obsidian notes differently from your usual documents in Marked, Conductor is the perfect solution. You can see my own rules for handling Obsidian notes in the sample config I provide.

This is my first Obsidian plugin, and I’m not a regular Obsidian user (yet), so I don’t know if I’m going to really dig into creating more in the future. But this one serves its purpose well and I think a lot of people will find it handy.

By the way, one handy feature of Obsidian is Obsidian Sync, which is a paid add-on. But never fear, there’s a giveaway coming up later this year that will get you a free year. Sign up for the newsletter to stay in the loop on all of the sweet giveaways I have lined up.

  1. Yes, nvUltra is still in beta, and development has been slow recently. However, the beta is working quite well and you can join just by contacting me through the email link on the nvUltra site

MacUpdater giveaway!

I’m excited to offer the next giveaway, 10 licenses ($14.99 value each) for MacUpdater. I run MacUpdater every day to keep all of my software up to date. It keeps track of every update released for hundreds of Mac Apps, including Mac App Store apps. You can ignore individual updates or entire apps, so it only acts on the apps you want updated. It makes installing all available updates a one-click affair in most cases. Keeping your apps updated makes sure you always have the latest security and newest features, and you can check the release notes for any update before you install it (or even while it’s installing).

From the developer:

Updating apps could not be simpler - just click the “Update” button next to any outdated app and MacUpdater will update the app to the current version automatically. MacUpdater can silently run in the back-ground, check your apps for updates every day and let you know about new updates with notifications.

Check out the MacUpdater site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, May 17, at 12pm Central. The drawing is for 10 licenses ($14.99 value each) for MacUpdater, one per winner. Note that if you’re reading this via RSS, you’ll need to visit this post on brettterpstra.com to enter!

New rule: All signups must have a first and last name in order to be eligible. Entries with only a first name will be skipped by the giveaway robot. A lot of the vendors in this series require first and last names for generating license codes, and your cooperation is appreciated!

Sorry, this giveaway has ended.

Stay tuned for more giveaways every week through September, 2024 (and maybe beyond).

If you have an app you’d love to see featured in this series of giveaways, let me know. Also be sure to sign up for the mailing list or follow me on Mastodon so you can be (among) the first to know about these!

The BBEdit giveaway winners!

The BBEdit giveaway has ended, and I have winners to announce!

The winners!

Congratulations to:

  • Jacob Silver
  • Knut Focke
  • Joe Vantaggi

You should have received an email with details, please let me know if you didn’t hear anything!

But I didn’t win!

If you didn’t win, sorry, but BBEdit is still worth checking out. Version 15 is fantastic.

Next up is MacUpdater. Check back every Monday through September, 2024 for more giveaways. The next giveaways include:

See the full list of upcoming giveaways!

If you want to suggest an app you’d like to see in this series, let me know on Twitter or Mastodon, and join the email list for notifications!

BBEdit giveaway!

I’m excited to offer the next giveaway, 3 licenses ($59.99 value each) for BBEdit. BBEdit is the longest-running text editor on the Mac, and it’s only gotten better through the years. With amazing extensibility using AppleScript, a notebook manager, Anaconda Virtual Environments, regex pattern playgrounds, and much, much more, it’s the best solution out there for native text editing on the Mac. Version 15 adds a minimap, expandable “cheat sheets,” ChatGPT Worksheets, a new interface for Text Factories, and more. If you’re writing Markdown or HTML, developing software, or manipulating text in any way, you should definitely check it out.

From the developer:

BBEdit is the leading professional HTML and text editor for macOS. This award-winning product has been crafted to serve the needs of writers, Web authors and software developers, and provides an abundance of features for editing, searching, and manipulation of prose, source code, and textual data.

Check out the BBEdit site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, May 10, at 12pm Central. The drawing is for 3 licenses ($59.99 value each) for BBEdit, one per winner. Note that if you’re reading this via RSS, you’ll need to visit this post on brettterpstra.com to enter!

New rule: All signups must have a first and last name in order to be eligible. Entries with only a first name will be skipped by the giveaway robot. A lot of the vendors in this series require first and last names for generating license codes, and your cooperation is appreciated!

Sorry, this giveaway has ended.

Stay tuned for more giveaways every week through September, 2024 (and maybe beyond).

If you have an app you’d love to see featured in this series of giveaways, let me know. Also be sure to sign up for the mailing list or follow me on Mastodon so you can be (among) the first to know about these!

The Acorn giveaway winners!

The Acorn giveaway has ended, and I have winners to announce!

The winners!

Congratulations to:

  • Theo Thevenot
  • Steve Gutierrez

You should have received an email with details, please let me know if you didn’t hear anything!

But I didn’t win!

If you didn’t win, sorry, but Acorn is still worth checking out. Right now Acorn is discounted and you can pick up a copy for just $29.99, and you can save an additional $5 by clicking here. All the image editing power you need in a fast, elegant package!

Next up is BBEdit. Check back every Monday through September, 2024 for more giveaways. The next giveaways include:

See the full list of upcoming giveaways!

If you want to suggest an app you’d like to see in this series, let me know on Twitter or Mastodon, and join the email list for notifications!

WriteMapper - writing with mind maps

One of the major things I use mind maps for is developing longer-form writing. I do best spitting out all of my ideas for topics and chapters into a mind map, then editing the nodes into chapters and paragraphs. I’ve always done this with iThoughts, which has great keyboard shortcuts for navigating and switching between node and notes panels. Then I would view the piece as it came together using Marked’s iThoughts integration, and when it was in a mostly gelled state, I would export Markdown and continue editing in MultiMarkdown Composer.

I’m going to continue using iThoughts for as long as it survives (in case you missed it, it was announced recently that support and development has been discontinued). As I mentioned in a previous post, I’m going to trust MindNode to fill in the gap left behind when the time comes. But for writing, I’ve been playing with a new app called WriteMapper (which I mentioned previously in a Web Excursions post).