Welcome to the lab.

Backblaze giveaway!

I’m excited to offer the next giveaway, a 1-year subscription ($99.99 value) for Backblaze. I use a 3-tier backup system: local clones, Time Machine, and Backblaze for cloud backup. Backblaze is the easiest, most affordable way to get an offsite backup of all your data, with versioning and easy restore when things go wrong.

From the developer:

Backblaze makes backing up and accessing your data astonishingly easy. For just $9/month, you can backup all of your personal and business data. You can also easily restore your data through the web app or a hard drive and you can access your data via the mobile app. With Backblaze, you never have to stress about data loss again.

Check out the Backblaze site for more info.

Sign up below to enter. A winner will be randomly drawn on Friday, July 26, at 12pm Central. The drawing is for a 1-year subscription ($99.99 value) for Backblaze. 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!

Giveaway ends in...

One entry per person, a full name and valid email required to win. Giveaway ends on 07/26/24 at 12:00 PM. I will never sell or misuse your email address.

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 TableFlip giveaway winners!

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

The winners!

Congratulations to:

  • Andy “gtdandy” Cerier
  • Cecil Habermacher
  • Werner Küper

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 TableFlip is still worth checking out. If you work in Markdown but get frustrated with creating and editing tables, TableFlip is the perfect answer. You can still save 33% on TableFlip by using code DONTBESAD when purchasing.

Next up is Backblaze. 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.6.39 with Streaming Preview fixes

There’s a new version of Marked 2 out (available on all channels) that adds some important fixes and a couple of new features.

Streaming Preview

First off, I fixed the Streaming Preview for everybody. Every time I fixed it to work with The Archive, I broke it for Drafts, and so on. I’m certain I’ve solve the problem for both use cases now. I could be proven wrong, but extensive testing and confirmation from bug testers has me pretty sure. So now you can use the streaming feature of apps like The Archive and Drafts without issue.

I also did some cleanup of the Preferences window while I was in there, but that’s purely aesthetic. Someday (probably sooner than later) I’ll revamp the whole preference system to use a sidebar for the pane selection like System Settings does on macOS these days.

Custom (Internal) Processors

The new features I added are around custom processors, kind of. Previously, you could have any processor return just the string “NOCUSTOM” to skip using the custom processor and resort to using the default internal processor, either MultiMarkdown v5 or Discount (GFM). Now you can also return “MULTIMARKDOWN” (or MMD) or “DISCOUNT” (or GFM) to specify exactly which internal processor to use.

The change makes it easy to develop custom processors that can still have different rendering without having to do any of the rendering using command line tools. It also makes it to handle processing using Conductor by simply using command: echo MMD in a track.

In addition to the Custom Processor return strings, you can also use metadata:

Custom Processor: MultiMarkdown

Or just:

processor: gfm

This allows per-document settings. In Conductor, you can create a preprocessor track that uses the addMeta filter:

- condition: phase is pre
  tracks:
    - condition: file name is README.md
      filter: addMeta(processor, gfm)

Or implement it in any way that works for you, even manually or as part of a TextExpander/Blaze snippet.

The update is available now, so go get it! “Check for Updates” in the direct version, and Setapp and the Mac App Store should update you automatically. Look for version 2.6.39 or newer.

If you’ve been using Marked 2 for years, you may have noticed you’ve never had to pay an upgrade fee for new features. Someday I’ll put out a v3 and bill for it, or (heaven forbid) switch to subscriptions, but for now if you want to support development, feel free to donate or, better yet, become a supporter!

By the way, if you’re using Conductor make sure you have the latest version (1.0.24 as of this writing), there have been some important bugfixes in the last few days.

TableFlip giveaway!

I’m excited to offer the next giveaway, 3 licenses ($9.99 value each) for TableFlip. TableFlip makes Markdown tables from structured data like CSVs, allowing you to use a spreadsheet-like interface to edit tables, and providing plain text for your document. It seamlessly provides table editing within any editor. It’s truly a missing link for Markdown writers.

From the developer:

It’s simple: you change the Markdown file and the table will update; save the table in TableFlip and the Markdown file will be changed. It’s as seamless as it gets.

Check out the TableFlip site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, July 19, at 12pm Central. The drawing is for 3 licenses ($9.99 value each) for TableFlip, 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 Dropzone giveaway winners!

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

The winners!

Congratulations to:

  • Jim Simpson
  • Tedd Landgraf

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 Dropzone is still worth checking out. You can still save 15% off your purchase of Dropzone using the coupon BRETTTERPSTRA. It’s amazingly useful!

By the way, Dropzone is also available on Setapp, along with hundreds of other amazing apps. You should probably get a subscription.

Next up is TableFlip. 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!

Dropzone giveaway!

I’m excited to offer the next giveaway, 3 licenses ($35 value each) for Dropzone. Dropzone gives you a panel in your menu bar that can run all kinds of scripts and automations, from uploading files to an FTP or S3 server to optimizing images or filing documents.

From the developer:

Dropzone is a productivity app for the Mac that makes it faster and easier to move and copy files, launch applications, upload to many different services, and much more.

Check out the Dropzone site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, July 12, at 12pm Central. The drawing is for 3 licenses ($35 value each) for Dropzone, 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 Marked giveaway winners!

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

The winners!

Congratulations to:

  • Chris Denesha
  • Guillaume Kuster
  • Jeff Holtzman
  • Kevin Slaven
  • Johan Romin

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 Marked is still worth checking out. You can still save 10% off your purchase of Marked using the coupon ILOVEMARKDOWN (or enter ILOVEMARKDOWN at checkout). If you work in Markdown, you deserve the benefits Marked offers.

By the way, Marked is also available on Setapp, along with hundreds of other amazing apps. You should probably get a subscription.

Next up is Dropzone. 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 giveaway!

I’m excited to offer the next giveaway, 5 licenses ($13.99 value each) for Marked. Marked is a Markdown previewer (of my own design) that offers a live preview of Markdown while you edit in any text editor. It comes with a range of styles and you can add more from the gallery or by editing your own CSS. Beautiful PDF and HTML export, type-ahead Table of Contents navigation, full keyboard support, and a ton of writing tools make Marked a perfect companion to your favorite editor.

From the developer:

Marked is a previewer for Markdown and other plain text markups. Use it with your favorite text editor and it updates every time you save. With robust features for previewing, reviewing, and exporting beautiful documents, you can work in plain text while reveling in rich formatting.

Check out the Marked site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, July 05, at 12pm Central. The drawing is for 5 licenses ($13.99 value each) for Marked, 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 OmniOutliner giveaway winners!

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

The winners!

Congratulations to:

  • June Bash
  • Jonathan Dechko
  • Cai Wingfield
  • Richard Guay
  • Robert Williger

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 OmniOutliner is still worth checking out.

Next up is Marked. 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!

Obsidian Callouts in Marked

I received a request a while back, shortly after my post about Marked 2 and Obsidian, asking me to support Obsidian callouts. I don’t remember who made the request, but it got lodged in the back of my head. I had an hour today to knock out a solution.

Rather than trying to incorporate this directly into Marked, I made it a script that can be included in a Conductor configuration. Easier, and less intrusive to Marked users who don’t care about Obsidian.

Obsidian callouts are a block quote-style syntax that looks like:

> [!note] A note with Markdown content
> Just *checking*
> how this **works**... 
> [a link](https://brettterpstra.com)

They can be made to fold, nested in each other, have a title only, or a title with content processed as Markdown. Here’s how they look in Obsidian:

Callouts in Obsidian

And with the script, here’s how they look in Marked:

callouts-marked-2.jpg

The output is just nested divs with classes, so a separate stylesheet is required to make them look correct. This stylesheet is injected by Conductor as well, and adapts pretty well to any Style in Marked. For example, here it is with the Manuscript style:

Callouts in Manuscript

I separated the script from the main Obsidian script so that, should you want to, you can run it on any content and make use of the Obsidian callout syntax irrespective of other syntax.

The script is in my Conductor example config, along with the stylesheet document. You can see in the tracks.yaml file that the script and injection are defined as a sequence:

tracks:
  - title: Preprocessing
    condition: phase is pre
    tracks:
    - title: Obsidian Markdown document
      condition: tree contains .obsidian AND (extension is md OR extension is markdown)
      sequence:
        - script: obsidian-md-filter
        - script: obsidian-callouts
        - filter: insertCSS(callouts)

Note that this makes use of the insertCSS() filter, which I just added in conductor 1.0.16, so make sure you update. This filter compresses the CSS and injects it at the beginning of the document, after any existing metadata.

The files you need are the script (placed in ~/.config/conductor/scripts/) and the style (placed in ~/.config/conductor/css/). Both of these are included if you just clone the example config repo. Then include a sequence like above for any given condition to start handling Obsidian callout syntax. This works best as a Preprocessor, but should still function fine as part of a Processor if you’re also handling the Markdown conversion in a script.