Markdown

What is Markdown

Markdown is a text to HTML conversion tool created by John Gruber. Markdown's purpose is to allow non-coders to be able to format documents using plain text in a syntax that's easy to read before and after conversion.

Write.app uses Markdown in the note editor to allow you to format your notes without the need for distracting and complicted text editors. Notes saved with Markdown syntax will be shown fully formatted after saving and as plain-text Markdown when back in editing mode. If you prefer, you don't need to use Markdown at all and simply write as you please. If you do plan to format your notes, read on to learn more about the easy to use Markdown syntax and how it applied to Write.app's editor.

A note on editors. Not all Markdown-supporting text editors interpret Markdown syntax the same way. For the most part Write.app adheres to the original, standard Markdown syntax rules. Where the syntax differs it will be noted.


Headings and Paragraphs

Formatting your text in Write.app with headings and paragraphs for the most part is as simple as just writing text. Let's dive right in with some examples starting with headings. There are six levels, or sizes, of headings. As the number of the heading increases, the size of the text decreases.

# Heading level 1

## Heading 2

### Heading 3

#### Heading 4

##### Heading 5

###### Heading 6

Heading level 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

See, wasn't that easy? Headings just consist of as many '#' symbols as the level of the heading you wish to create followed by a period and the text of your heading.

Paragraphs

Paragraphs may seem pretty straightforward but there's one gotcha that trips a lot of people up. Pressing Enter to create a new line does not necessarily create a new paragraph. You need to separate paragraphs with an empty line which usually means pressing the Enter/Return key twice. Here are some examples.

Normal paragraph behavior:

This is a standard paragraph. It is one long line of text that wraps by itself when it reaches the end of the line.

This is a second paragraph. It is separated from the one before it by one or more blank lines.

This is a standard paragraph. It is one long line of text that wraps by itself when it reaches the end of the line.

This is a second paragraph. It is separated from the one before it by one or more blank lines.

Paragraph pitfalls

Creating a new line by itself will not create a new paragraph for you.

A line of text.
Another line of text.
And another.

This will create a new paragraph but the lines above do not.

A line of text. Another line of text. And another.

This will create a new paragraph but the lines above do not.


Bold and italic text

You can make text bold or italic within any part of your text (except headings) by using asterisks and underscores as shown in the examples below.

Here is __some bold__ text. You can also bold it **this way**.

Making text *talic* means wrapping one or more words with _a single underscore_ or *asterisk* on both sides.

You can __*make text bold and italic*__ at the same time by **_mixing single and double asterisks/underscores_** on both sides of the selected text.

Here is some bold text. You can also bold it this way.

Making text italic means wrapping one or more words with a single underscore or asterisk on both sides.

You can make text bold and italic at the same time by mixing single and double asterisks/underscores on both sides of the selected text.

Unfortunately, Markdown does not support underlining of text. However, because you can mix HTML markup within Markdown text you can easily achieve this using the <u></u> tag.


Everything up until this point has been pretty simple. Now we get to the parts of Markdown that are a little more difficult to master but still far simpler than learning a markup language like HTML. Write.app's editor allows you to create links in your notes to any web page online. The syntax is as follows.

An example of [linked text](http://example.com)

An example of linked text

To create a link you wrap the text that is to become to link in square brackets followed by the URL wrapped inside of parenthesis.


Lists

Lists in Markdown look exactly the way most people would make lists in plain text if their editor didn't support automatic lists. Lists support every other feature of Markdown covered so far. Bold and italic text and links can be inserted into lists if needed.

* List item 1
* List __item 2__
* A [link](http://example.com) in a list
  • List item 1
  • List item 2
  • A link in a list

Unlike paragraphs you don't need to worry about separating list items with a blank space but you can if you prefer.


Inline HTML & Code

Both the standard Markdown syntax and Wreditor allow you to add HTML markup and inline code sample to your code. HTML markup is useful for cases where you are either more comfortable using HTML or are trying to do something that is easier with HTML such as creating tables. Inline code samples are useful for coders who want to add example code to any notes they write without it being interpreted by Write.app.

Notice

Some markup and code is note allowed to be entered into Wreditor for security reasons. Any of these blacklisted pieces of code will be filtered out when you save your notes. These include iframes, JavaScripts, and attributes added to inline HTML elements.

Inline HTML

Adding HTML <strong>within your text</strong>

Adding HTML within your text

Code blocks and inline code

There are two ways to represent code within your notes using Markdown. One way is inline with content and the other is with code blocks. Write.app's inline code syntax is in line with standard Markdown syntax but the syntax for code blocks deviates slightly.

Here's some inline code: `var jsExample = $('input').val();`

Here's some inline code: var jsExample = $('input').val();

Code blocks are similar but come with syntax highlighting as well. Write.app's code blocks differ from standard Markdown code blocks in that instead of using the backtick (`) symbol, it uses the tilde (~) symbol as shown here:

Here is some text before a code block

~~~
# Code
def hello
    puts "Hello Write.app"
end
~~~

Here is some text before a code block

# Code
def hello
    puts "Hello Write.app"
end

Anything you put between the three tildes becomes a code block. Syntax highlighting is automatic so there's no need to specify a language.

Try it now!