Nebulous Notes for iOS Makes Markdown Easy
Here at TidBITS, we rely on the venerable BBEdit to write our articles. Among its many powerful features, it offers syntax coloring for the Markdown format that we use for articles, connects to the Subversion repository our TidBITS Publishing System uses, and lets us use clippings, text factories, and scripts that simplify creating articles in Markdown. Unfortunately for those of us who are starting to write on the iPad while out and about, BBEdit isn’t available on the iPad.
The app I’ve found that comes closest to the power and flexibility of BBEdit on iOS is Nuclear Elements’ Nebulous Notes ($4.99), which is compatible with both the iPad and iPhone. Nebulous Notes gives you control over your typeface, text color, and background color. I’m a fan of the Inconsolata typeface, 25 point, with a slightly off-white background. I also like the second default theme, a tribute to the Apple ][ with the Monaco typeface in green on a black background.
As a writer, I appreciate Nebulous Notes’ word, character, and line counts, which can be enabled in its settings. A surprising feature is its capability to sync to Evernote, for those who rely heavily on that service. Of course, like any respectable iOS text editor, it syncs with Dropbox documents, and supports the TextExpander iOS app.
Nebulous Notes also offers powerful preview functions. You can preview HTML, Markdown, or rich text. While previewing a document, you can output to HTML, open text in other apps, or send HTML-rendered email messages. You even can customize your preview with CSS.
Many iOS text editors, like iA Writer and Byword, offer an extra row of on-screen buttons for navigation and otherwise hard-to-reach characters. Nebulous Notes does too, but with the added bonus that you can customize the buttons to insert any text you wish, find and edit text, or even change the cursor’s position. This is what sets Nebulous Notes apart from the field.
Oddly, this utility bar in Nebulous Notes is turned off by default, but it’s easy to enable in the settings. While in the settings menu, you can also add, delete, and rearrange the macros in your bar. By default, the utility bar is filled with sample macros, which give you an idea of the things you can do. Feel free to delete those you don’t like, as there are numerous example macros in the settings that can be added or removed from the utility bar at any time.
A macro can be as simple as a single key, like an asterisk, which otherwise requires switching first to the numeric keyboard, and then to the punctuation keyboard. That’s a time-saver, but what makes macros really interesting is the special codes you can use. These start with a dollar sign. For example,
$select in a macro by itself will select the word your cursor is in when you press its button. You can then call another macro that contains the
$sel variable to add text around that selection.
If you wanted to wrap your selected text inside angle brackets, you would create a macro like this:
If you then name that macro
<>, and then select a word, you can press the
<> button to wrap that word in angle brackets.
You can get even more creative. Here at TidBITS, we use Markdown reference-style links, except we extended them to become “lazy links,” which eliminates the need to match the names of the source and destination tags, and instead relies on the order of the source links in a paragraph matching the order of the destination URLs below that paragraph. So instead of links being numbered or named, they all have asterisks. I decided to adapt some of Federico Viticci’s Markdown macros to use for link creation. (If you’d like to use the macros I created for this article, you can download them here. Just copy the
NebulousMacros.txt file to your Dropbox folder and import it in Nebulous Notes’ settings.)
One of the macros I adapted turns the selected text into a link. In the following example, I use
$sel to stand in for the selected text. The macro then places the brackets and asterisk around the selected text, then the
$cursor command places the cursor at the end of the placed text so I can keep on typing.
I then have a second macro to paste and format the corresponding URL. It looks like this:
I named this macro
[*]:. It simply adds the Markdown syntax to signify the link’s destination, then pastes the clipboard’s contents. With that macro, I have to manually move to the end of the paragraph and paste the link, which is almost always what I want to do. Fortunately, I was able to create a macro named with a downward-pointing arrow (
↓) in Nebulous Notes to move the cursor down with a tap on the utility bar. Another thing you could do is add the
$bottom command to the previous macro, which would move the cursor to the end of the document before adding the macro text.
So my final workflow looks like this:
- Select the link text and tap the
- Switch to Safari, copy the URL, and switch back to Nebulous Notes.
- Move to the end of the paragraph by tapping the
- Tap the
[*]:button to complete the link.
It’s not as fast as it is on the Mac using Keyboard Maestro macros or Dr. Drang’s BBEdit AppleScripts, but it’s way faster than writing links out by hand, especially when using the iPad’s virtual keyboard.
Overall, the macro feature in Nebulous Notes comes pretty close to what you can do with BBEdit clippings or Keyboard Maestro macros on the Mac, but as with anything in iOS, there are limits to what you can do. One big limitation of macros is that you can’t combine the
$select command with other commands inside a macro; it has to be alone in a macro. So you can’t yet create a macro that applies itself to whatever word your cursor is on; you must first select the word, then apply the macro. Another limitation is that there’s no automatic way to add content to the end of a paragraph. And, unfortunately, you don’t have access to any in-app cheat sheet or your custom keyboard row while editing
macros, so you must memorize the commands you’d like to use. Hopefully a future version will address some of these limitations.
Unfortunately, Nebulous Notes has a few other flaws. One big missing feature is the lack of browser navigation in the Markdown preview. If you click on a link to make sure it’s correct, there is no back button; you have to leave and then reenter the preview. Another missing feature is syntax highlighting, which would make writing correct Markdown much easier. There is a bug that can prevent you from scrolling past a certain point in a document, but it’s easily fixed by rotating the screen. I also wish I could turn off resizing the text by pinching, because I often accidentally shrink my text while trying to switch between apps on my iPad, something I do whenever I’m copying URLs from Safari.
Another thing that bothers me is that there’s no way to sync settings between devices. You can export your macros to Dropbox, but on the import side, it’s all or nothing, so you have to replace all of your existing macros each time. The lack of syncing becomes truly annoying if you use Nebulous Notes on both the iPhone and iPad, because you have to set up themes on each, and manually import and export your macros.
These nits and annoyances aside, if you’re serious about writing on iOS, Nebulous Notes is worth a look. If you want to kick the tires before spending $4.99, the free, ad-supported Nebulous Notes Lite has all the features of the full version and could be sufficient if you need it only occasionally. I had no trouble writing the first draft of this review in Nebulous Notes, and I look forward to drafting many more TidBITS articles in it while I’m out and about.
As no one else has posted, I just want to emphasize how useful this app is; it is as close to a “coders” app for iOS as I’ve found.
I have asked the (delightful!) developer, Phil Dhingra, if he could implement BBEdit’s “Reverse” soft-wrap indentation style, but it’s a “bit of work,” thus we haven’t seen it yet. ;-)