Looking for an editor to use within the context of Making a Book-Making Machine. Thought I'd give the demo version of Ulysses (Mac OS version) a spin.
Don't bother with the promo video on that site unless you like montages of people typing — that's literally all it is.
The demo gives you 10 hours to try out all the features so hopefully I can get this review done in that time today, in between everything else.
On startup it asks you how you prefer your Markdown italics & bold (asterisks or underscores). I found that kind of a strange design decision.
It pops up with a kind of tutorial in the form of a "sample project", probably the best way to do a tutorial. I don't mind this; I put in the time to complete a similar tutorial in Scrivener and found it well worth my while.
I must say I love Ulysses' bright blue text cursor. It's not block-style but it is nice and thick.
edit: It appears that this is the "iOS" style cursor, you can select the normal OS X black thin-line cursor in the preferences.
Ulysses "sheets" are somewhat analogous to "documents" within Scrivener — chunks of text that can be rearranged.
Unlike Scrivener, sheets cannot be in nested groups or folders. Only flat ordering is supported.
Nice touch in the editor: highlighting text displays invisible characters (spaces, line breaks, etc)
Ulysses is somewhat opaque about how your writing is actually stored, so here's what it looks like after a few minutes.
Ulysses "projects" are called "Groups" (a group is a collection of "sheets")
An alternative to native "groups" is using "external folders" as groups.
In External Folders, you can edit classic text and markdown files from anywhere on your Mac. As an example, you can point Ulysses to a folder on Dropbox, and have its contents behave just like native groups and sheets.
In this mode, you can't use attachments or images.
Now I've reached a part of the tutorial that says to try previewing a PDF export — but PDF doesn't seem to be available as an option. Weird.
THE APP CRASHED.
Oh well, hit reopen.
Upon reopening, went to open my first "group" I'd created outside the intro/tutorial.
THE APP CRASHED AGAIN.
(I should note I'm using a late-2013 rMBP with 16GB RAM)
OK it seems to be working normally again... for now.
OK, I think I figured out the PDF export option above.
Which leads me to: The "Quick Export" popup is actually an interesting case study in sub-optimal design.
Thoughts on the above UI:
You know what would have been nice here? A full-blown dialog box which actually makes optimal use of my laptop screen, makes each function clear, and maybe comes with keyboard shortcuts of its own.
Instead, the design direction seems to have been (in this and many other cases) to ape the iOS version of the app to try and keep them identical.
I have to say that, for simple projects, Ulysses' quick export functionality is far superior to Scrivener's excessively fussy "Compile".
You can export any sheet (or group) as a PDF, HTML (snippet or standalone document) ePub or Markdown.
Sad to say, Ulysses has no concept of YAML metadata for Markdown files.
If you include it in your sheets, Ulysses will not know what to do with it. For example, the sheet "preview" will not recognize the title — here's a screenshot:
Also, the built-in previewer for HTML, PDF, etc, does not recognize YAML at all.
In fact there's no support at all, anywhere, for the most common kinds of metadata (title, author, date, etc), either per-sheet or per-project. This seems like a glaring omission for an app that purports to fulfill all the needs of novelists and bloggers and journalists.
I'm not yet sure what I think of Ulysses keeping everything I write inside its own little black box.
Actually I think it's silly.
So far I've found several things that prevent me from using Ulysses with the system I've developed for getting print-quality PDFs out of my Markdown:
Going into this review, I actually thought that list would be longer. Still, those two are enough that I'd have to either abandon Ulysses or scrap my system.
These are actually a concern for future-proofing as well. Should I invest time in using Ulysses and later decide to switch away from it, I would only be able to export my sheets as one long combined file per group. If my post-Ulysses world requires individual files then I would have a lot more work to do.
That's a real shame because Ulysses' actual text editing environment itself is the best I've ever used for prose.
Nice touch in the HTML conversion: If you put an image on a line by itself, Ulysses converts this to an HTML5 <figure>
(along with a <figcaption>
if you entered a caption) which is awesome. (This is one of those things that PHP MarkdownExtra still gets wrong.)
Minor Significant Markdown parsing issue: like nearly every other Markdown editor, Ulysses does not correctly interpret the "two trailing space" rule for manual line breaks.
Here is an example:
The original Markdown spec says you should be able to create a manual line break (i.e., without ending the current block or paragraph) by ending a line with two spaces.
In the example above, you can see the two trailing spaces but the block quotation syntax highlighting does not carry through to any of the lines after the first one.
Most Markdown editors get the two-trailing-space rule wrong in their syntax highlighting, but get it right when actually exporting to HTML. Ulysses gets it wrong everywhere.
[EDIT: @UlyssesApp tweeted to explain that their app does manual line breaks with SHIFT+Enter
, which exports as <br>
in HTML and two trailing spaces in Markdown.]
The correct HTML result for the above snippet is:
<blockquote>
<p>This is a block quote<br />
that should<br />
continue to<br />
the next<br />
lines.</p>
</blockquote>
Ulysses generates the following incorrect HTML:
<blockquote>
<p>This is a block quote </p>
</blockquote>
<p>that should </p>
<p>continue to </p>
<p>the next </p>
<p>lines.</p>
App crashed for the third time today. Seems to happen most often when switching projects.
Image management: If you drag and drop an image into a Ulysses document, you're not simply creating a link to that image. Ulysses keeps its own copy of the image and includes it in any future exports. You can move or delete the original with no effect on your document.
(The exception is if your document is living under "External Folders", however — you are merely creating a Markdown link in that case.)
Another image management idiosyncracy that is far from being clear or obvious:
UGH, HEADACHE
I was curious about how to create my own styles for PDF, HTML and ePub exports. I finally found a reference, Styles in Ulysses III, linked in the footer of the "download new styles" section of Ulysses' website.
@joeld Good read! The 10h is actual use. And line breaks are real line breaks in Ulysses: shift-return.
— Ulysses (@ulyssesapp) March 29, 2015
The dev team is very active on twitter so scrolling through their tweets is a good way to find out what other users are asking for.
Big things on their todo list seem to be:
Commonly requested features that they are still not committing to any time soon:
At this point, I find the app frustratingly close to perfect.
I don't mind the iCloud storage, though I'd mind it far less if I could export a group of sheets as individual files.
If it had YAML or some other metadata support I'd buy it now.
The editing environment itself, as I've said, is the best I've ever used for prose.
But absent the YAML support it doesn't really help me. I'd just end up implementing a bunch of complicated workarounds to compensate.
Support for YAML is probably a long way off but it could go several ways: