Using iA Writer with Hugo

No spaces.

Published 1 minute read

I’m testing out iA Writer for editing Markdown. I’ve been using it on iOS to quickly edit my Obsidian vault, since the Obsidian iOS app has a lot of friction.

On macOS, I ran into an issue with Hugo, the SSG I use for this blog. Hugo’s newContentEditor config option can open a text editor after running the command for starting a new post, hugo new.

With Typora, I had it set up like this:

# config.yaml
newContentEditor: open -a Typora

Replacing Typora with iA Writer threw these errors:

Content "/Users/luke/Developer/lukework/content/blog/2022/10/test/index.md" created
Editing "/Users/luke/Developer/lukework/content/blog/2022/10/test/index.md" with "open" ...
The file /Users/luke/Developer/lukework/Writer" does not exist.
Error: failed to execute binary "open" with args [-a "iA Writer" /Users/luke/Developer/lukework/content/blog/2022/10/test/index.md]: The file /Users/luke/Developer/lukework/Writer" does not exist.

Escaping the space in the name worked in the terminal, but didn’t work in Hugo:

open -a "iA Writer" foo.md 
open -a "iA\ Writer" foo.md
open -a "Visual Studio Code" foo.md

Looking at the manual for open, you can use the app’s bundle identifier with the -b flag instead. I grabbed iA Writer’s with this command:

codesign -dr - /Applications/iA\ Writer.app

And here’s what my Hugo config looks like now:

# config.yaml
newContentEditor: open -b pro.writer.mac