Your notes. Your Dropbox. You're welcome.™

Notesy 2.0

It was a long time coming, but Notesy 2.0 is here:

page3-1003-full

Credit goes to @PeterMHoward for already noticing that 2.0 doesn’t sync with the root folder (“/“) of Dropbox. I’ve fixed it for 2.0.1 but that’s something I should have caught in all the testing. Sorry about that.

Speaking of testing, I’d like to thank my fearless beta testers for being willing to try more than a dozen builds along the road from 1.6.2 to 2.0. Without their help and feedback 2.0 would be much the poorer. Thank you guys! If any of you find yourself in Pittsburgh dinner’s on me.

Subfolders

Subfolders was the main reason 2.0 took me so long: back when I conceived Notesy I imagined it having its own little folder off in the corner with a handful of notes in it. Fast-forward to today and people are using it with hundreds, and even thousands, of notes, there are a bunch of Dropbox-syncing apps and folders was inevitable. Adding support for folders took the longest of any feature I added for 2.0 by far.

It would have been nice if I could have made syncing work recursively (sync subfolders when you sync a parent folder), but Dropbox don’t allow that, at least as far as I am aware. For example, from this post on their developer forums:

Unfortunately at this time there is no easy way to tell if files have changed short of doing the sort of recursive directory trolling we recommend against. If the app is just for your personal use, feel free to go ahead and do it anyway. If you're thinking of offering this to the world at large, though, we'd ask that you hold off. Deep recursive dives into lots of users' accounts is extremely costly for us (and for you).

Search

in 1.6.2 and earlier Notesy would search for an exact phrase and all you could choose was whether it should do perform case-sensitive matching or not. For 2.0 I added the dubiously-titled “any order”: where each space-separated word or partial word will be searched for and if all of them match, in any order, Notesy will consider it a match. It’s doesn’t do exact word matching though, so if you search for “bar foo” and your note contains “foobar” it will match on that.

If you want more rigorous matching criteria you can now use regular expressions. For the full syntax that’s accepted see the table in the NSRegularExpression documentation.

I also added the ability to limit searches to the note titles or bodies; 1.6.2 would always search both.

Searching recurses into subfolders, so if a note in a subfolder matches, the folder will show in the search results; tapping on that subfolder will show the matches in that subfolder, and so on.

Viewing Links

There’s now an Action Menu item entitled “View Links” that will enable what iOS calls Data Detectors: this is what turns URLs, phone numbers, addresses and appointments into clickable links.

Markdown Preview

You can now preview the HTML rendering of notes that are in Markdown syntax. To enable that Markdown preview I incorporated the excellent libupskirt, and specifically the fork of it that github are using. My thanks to Natacha Porté for so generously making her work available for others to make use of.

The base URL for the preview is the folder that the note is in. So if your note includes relative path references to images those images will be properly included in the HTML preview. For example, if you have ![My Eye](my-eye.jpg) in your note, and my-eye.jpg is in the same folder then it will be shown in the preview.

In that same vein, under Settings/Markdown you can specify custom tags that will get incorporated into the HTML <header> tag. You can use this to refer to a CSS file or embed a <style> tag. For example if the note is in folder /foo and there’s a CSS file at /foo/css/preview.css you can use it in the note by specifying <link rel=“stylesheet” type=“text/css” href=“css/preview.css”/> in Settings/Markdown. There’s only one Settings/Markdown value and so it will be used for all notes; since you can specify relative paths it means that a note at /foo/note.html would pull in /foo/css/preview.css and a note at /bar/blog.html would pull in /bar/css/preview.css. Full credit to Merlin Mann for suggesting the ability to specify custom CSS in Mac Power Users episode 46. I hope this is somewhat close to what you had in mind Merlin.

Solarized

While working on 2.0 I came across Ethan Schoonover’s wonderful Solarized color palettes on the blogosphere. 2.0 adds background and pen options for Solarized Dark and Solarized Light. I’m a big fan of Solarized Dark myself.

VoiceOver

I had a couple of silly mistakes in the accessibility labeling in 1.6.2 and earlier that I was able to find with the help of Arianna. Thanks Arianna! With her feedback I also tweaked some of the other accessibility labels to be less verbose. I hope this makes Notesy more useful to those that use VoiceOver on iOS. If you do, and you find something wrong or just plain irksome about the VoiceOver support in Notesy please do let me know via support@notesy-app.com and I’ll work with you to make it better.

Miscellaneous

There are a few other tweaks and enhancements here and there in 2.0, including:
  • Swipe-left on a folder’s title bar to jump back to the root folder.
  • An option in Settings/Dropbox to disable syncing, for if you’re in a poor coverage area or want to preserve bandwidth.
  • Wider margins on the iPad note view by default, with an option under Settings/Note to go back to narrow ones if you prefer.
  • Black and white sync icons by default, although the color ones are still there in Settings.
  • Option to hide the sync icon in the “synced” state (since hopefully that’s the common one), to reduce visual clutter.
  • Options to turn off most of the non-essential information in the list view, if you prefer a minimalist approach.
  • A more intuitive icon for the “append” button; props to Greg Minton for the suggestion.

I hope you find the new features useful. If you find new bugs, and I’m sure there are some despite my best efforts, please do let me know and I’ll get them addressed.