As promised in the last 3Q Session, let’s elaborate a bit on how you’ll deal with markup in Ulysses 3. This might get technical…

First thing to note is that there will be no standard markup language “baked in”. So you don’t need to write in Markdown or Textile or such, but you can use whatever tagging system you want.

Second: Whichever set of markup you chose to write in, it will have no impact on possible output formats. So you don’t need to write in Markdown to output HTML, and you don’t need to write in your own set of tags to create proper LaTeX.

In fact, you can write some documents in Markdown and some others with your own tags, and upon export just throw them together and get proper output. No need to convert one into the other or even tell the exporter which tagset you used.

So, what is baked in then?

Well, baked into Ulysses 3 are the most commonly used semantic elements, such as headline, part, section, quotation, list, comment, code, footnote, link, image, emphasize — you name it.

Also baked into Ulysses are the most common attributes of these elements. E.g. links have URLs and ALT-text, while images have pictures and titles; headlines are used to structure long texts (and show up in a table of contents), while lists are just specially formatted paragraphs (and won’t show up in a ToC), and so on.

The whole application is built around this knowledge of the elements and their attributes.

Let’s take the tagging-engine: Tags in Ulysses 3 merely act as “shortcuts” to all of the defined elements. So if you’ve chosen to write in Markdown, and if you’re writing ****this here** whatever**, then what every part of Ulysses will understand is

IMPORTANT: this here **

What this means is, that you can switch between any markup you like, and you will always end up with the same output. It also means that any markup you chose is just that: markup. So if you’re accustumed to Markdown, and would love to write your next book with it, but you also need footnotes — just add footnotes to your tagset and define a “**[FOOTNOTE]**“-tag or whatever.

You don’t need to worry if Markdown itself supports footnotes, or if the tag you specified is “correct” in any way. To Ulysses, it’s a footnote, since you said so.


When Ulysses 3 ships, we’ll include several preset markup languages for your convenience, so you don’t have to set them up by yourself. This will include, but won’t be limited to… yes, Markdown.

Have fun.