Skip to content

Extended Markdown Syntax

flarom edited this page Nov 18, 2025 · 13 revisions

Quoted from the Markdown Guide.

Tables

To add a table, use three or more hyphens (---) to create each column’s header, and use pipes (|) to separate each column

| Syntax      | Description |
| ----------- | ----------- |
| Header      | Title       |
| Paragraph   | Text        |

The rendered output looks like this:

Syntax Description
Header Title
Paragraph Text

Cell widths can vary, as shown below. The rendered output will look the same.

| Syntax | Description |
| --- | ----------- |
| Header | Title |
| Paragraph | Text |

Tip

Creating tables with hyphens and pipes can be tedious. Cohesion provides a table maker via the 📎 Insert menu, you can also format your tables via the context menu by selecting the table.

Alignment

You can align text in the columns to the left, right, or center by adding a colon (:) to the left, right, or on both side of the hyphens within the header row.

| Syntax    | Description |   Test Text |
| :-------- | :---------: | ----------: |
| Header    |    Title    | Here's this |
| Paragraph |    Text     |    And more |

The rendered output looks like this:

Syntax Description Test Text
Header Title Here's this
Paragraph Text And more

Checkboxes

You can insert checkboxes on cells using [ ] for unchecked and [x] for checked boxes.

| Task                    | Status   |
| ----------------------- | -------- |
| Write the press release | [x]      |
| Update the website      | [ ]      |
| Contact the media       | [ ]      |


Fenced Code Blocks

The basic Markdown syntax allows you to create code blocks by indenting lines by four spaces or one tab. If you find that inconvenient, try using fenced code blocks. Depending on your Markdown processor or editor, you’ll use three backticks (```) or three tildes (~~~) on the lines before and after the code block. The best part? You don’t have to indent any lines!

```
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
```

The rendered output looks like this:

{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}

Language Declaration

You can also specify a language next to the backticks before the fenced code block.

```json
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
```

The rendered output looks like this:

{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}

If your codeblock is declared as JavaScript or JS you can also use it to run scripts.



Expandable Sections (Details)

You can create expandable sections in your document to hide extra details unless the reader chooses to view them. This is useful for optional information, spoilers, or additional examples.

To create an expandable section, use the following syntax:

> [!DETAILS:Your title here]
> Your hidden content goes here.

The rendered output looks like this:

Your title here

Your hidden content goes here.



CSV Tables

You can render CSV tables as HTML tables by using a [!CSV] block.

> [!CSV]
> 1 1, 1 2, 1 3
> 2 1, 2 2, 2 3
> 3 1, 3 2, 3 3

The rendered output looks like this:

1 1 1 2 1 3
2 1 2 2 2 3
3 1 3 2 3 3

Placing > at the start of the line is optional, the following example will render the same output.

> [!CSV]
1 1, 1 2, 1 3
2 1, 2 2, 2 3
3 1, 3 2, 3 3

A comma (,) is used as the default separator, the used separator can be modified, just like in this example which uses a pipe (|)

> [!CSV:|]
> 1 1 | 1 2 | 1 3
> 2 1 | 2 2 | 2 3
> 3 1 | 3 2 | 3 3

The rendered output will be the same.



Embed (iframe)

You can embed web content, such as websites, YouTube videos or social media posts, in your document.

To create an embed, use [!EMBED] block:

> [!EMBED]
> https://www.youtube.com/embed/8GW6sLrK40k

Definition Lists

To create a definition list, type the term on the first line. On the next line, type a colon followed by a space and the definition.

First Term
: This is the definition of the first term.

Second Term
: This is one definition of the second term.
: This is another definition of the second term.

The rendered output looks like this:

First Term
This is the definition of the first term.
Second Term
This is one definition of the second term.
This is another definition of the second term.


Abbreviation

To declare a abbreviation, type an asterisk (*) at the start of the line, followed by the abbreviation between brackets, a colon (:) and then the abbreviation meaning.

*[HTML]: Hyper Text Markup Language

HTML

The rendered output looks like this:

HTML



Footnotes

You can create footnotes for listing aditional information in a single place. Footnotes can be created anywhere in the document by starting a line with [^no]: , and link to this footnote with [^no]

Some word or something that needs explaining[^1].

[^1]: The explanation.


Strikethrough

You can strikethrough words by putting a horizontal line through the center of them. The result looks like this. This feature allows you to indicate that certain words are a mistake not meant for inclusion in the document. To strikethrough words, use two tilde symbols (~~) before and after the words.

~~The world is flat.~~ We now know that the world is round.

The rendered output looks like this:

The world is flat. We now know that the world is round.



Underline

You can underline words by putting a horizontal line under them. The result looks like this. To Underline words, use two underline symbols (__) before and after the words.

Some of these words __will be underlined__.

The rendered output looks like this:

Some of these words will be underlined.



Task Lists

Task lists allow you to create a list of items with checkboxes. To create a task list, add dashes (-) and brackets with a space ([ ]) in front of task list items. To select a checkbox, add an x in between the brackets ([x]).

- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media

The rendered output looks like this:

  • Write the press release
  • Update the website
  • Contact the media


Emoji

Emojis can be inserted via shortcodes in the editor. These begin and end with a colon and include the name of an emoji.

Gone camping! :tent: Be back soon.

That is so funny! :joy:

The rendered output looks like this:

Gone camping! ⛺ Be back soon.

That is so funny! 😂



Highlight

You can highlight text. The result looks like this. To highlight words, use two equal signs (==) before and after the words.

I need to highlight these ==very important words==.

The rendered output looks like this:

I need to highlight these very important words.



Subscript

To create a subscript, use one tilde symbol (~) before and after the characters.

H~2~O

The rendered output looks like this:

H2O



Superscript

To create a superscript, use one caret symbol (^) before and after the characters.

X^2^

The rendered output looks like this:

X2



Ruby Text

Ruby text is a way to display small pronunciation guides (typically for East Asian characters like Japanese kanji or Chinese hanzi). These are shown above or alongside characters to help with reading. In Markdown, you can use ruby syntax like this:

[漢字]^(kan ji)

The rendered output looks like this:

kanji

Learn the basic syntax of markdown and the Cohesion flavored markdown

Learn more advanced markdown applications

Learn how to use metadata on your documents to better organize your files

Learn how to create scripts and automation inside of Cohesion documents

Learn how to use commands to speed up your writing

Clone this wiki locally