Zulip uses Markdown to allow you to easily format your messages. Even if you've
never heard of Markdown, you are probably familiar with basic Markdown
formatting, such as using *
at the start of a line in a bulleted list, or
around text to indicate emphasis.
This page provides an overview of all the formatting available in Zulip. There
is a convenient message formatting
reference in the Zulip app that you can use
whenever you need a reminder of the formatting syntax below.
Text emphasis
In Zulip, you can make text bold or italic, or cross it out with strikethrough.
What you type
**bold**, *italic*, and ~~strikethrough~~ text
***~~All three at once~~***
What it looks like
You can also use buttons or keyboard shortcuts (Ctrl +
B or Ctrl + I) to make text bold or italic.
Learn more.
Bulleted lists
You can create bulleted lists using *
, -
, or +
at the start of each line.
Add two spaces before the bullet to create a nested list.
What you type
* bulleted lists
* with sub-bullets too
* sub-bullets start with 2 spaces
* start sub-sub-bullets with 4 spaces
* multi
line
bullet
- dashes and
+ pluses are ok too
What it looks like
Numbered lists
You can create numbered lists by putting a number followed by a .
at the start
of each line. Lists are numbered automatically, so you can reorder list items
while editing your message without having to update the numbers. Add two spaces
before the number to create a nested list.
What you type
1. numbered lists
1. increment automatically
1. use nested lists if you like
3. delete or reorder lines without fixing the numbering
1. one more
17. lists can start at any number
18. so you can continue a list after some other text
What it looks like
Links
In Zulip, you can insert a named link using Markdown formatting. In addition, Zulip
automatically creates links for you when you enter:
What you type
Named link: [Zulip homepage](zulip.com)
A URL (links automatically): zulip.com
Stream link: #**stream name**
Stream and topic link: #**stream name>topic name**
Custom linkifier: For example, #2468 can automatically link to an issue in your tracker.
What it looks like
You can also use a button or a keyboard shortcut (Ctrl +
Shift + L) to insert a link.
Learn more.
Code blocks
You can write snippets of code, code blocks, and other text in a fixed-width
font using standard Markdown formatting. Zulip also has syntax
highlighting and supports configuring
custom code playgrounds.
What you type
Inline code span: `let x = 5`
Code block:
```
def f(x):
return x+1
```
Syntax highlighting:
```python
def fib(n):
# TODO: base case
return fib(n-1) + fib(n-2)
```
You can also use ~~~
to start code blocks, or just indent the code 4 or more
spaces.
What it looks like
A widget in the top right corner of code blocks allows you to easily
copy code to your clipboard.
LaTeX
Zulip supports math typesetting powered by KaTeX.
Their support table is a
helpful resource for checking what's supported or how to express
something.
What you type
Inline: $$O(n^2)$$
Displayed:
``` math
\int_a^b f(t)\, dt = F(b) - F(a)
```
What it looks like
Quotes
You can format quotes one line at a time, or create a block of text that will be
formatted as a quote.
What you type
> a multi-line
quote on two lines
normal text
```quote
A multi-paragraph
quote in two paragraphs
```
What it looks like
Spoilers
Zulip lets you temporarily hide content in a collapsible spoiler section,
with only the header initially shown. Clicking on the header reveals the hidden
content.
What you type
```spoiler The spoiler heading might summarize what's inside
This content is initially hidden.
> You can combine spoilers with other formatting.
```
A message can contain both spoilers and other content.
```spoiler
Leave the heading blank if you like.
```
What it looks like
Collapsed spoilers:
Expanded spoilers:
Emoji and emoticons
There are several ways to use an emoji in your message:
You can add custom emoji for your organization. Like
default emoji, custom emoji can be entered into the compose box by name, or
selected from the emoji picker.
What you type
:octopus: :heart: :zulip: :)
What it looks like
Mention a user or group
You can mention a team member or user group to call their
attention to a message. Mentions follow the same notification
settings as direct messages and alert
words. A silent mention
allows you to refer to a user without triggering a notification.
What you type
Users: @**Bo Lin** or @**Ariella Drake|26** (two `*`)
User group: @*support team* (one `*`)
Silent mention: @_**Bo Lin** or @_**Ariella Drake|26** (`@_` instead of `@`)
A |
followed by a user ID is inserted automatically when you select a
user from the typeahead suggestions, if there are two users with the same
name in the organization.
What it looks like
Status messages
Global times
When collaborating with people in another time zone, you often need to
express a specific time clearly. Rather than typing out your time zone
and having everyone translate the time in their heads, in Zulip, you
can mention a time, and it'll be displayed to each user in their own
time zone (just like the timestamps on Zulip messages).
A date picker will appear once you type <time
.
Our next meeting is scheduled for <time:2020-05-28T13:30:00+05:30>
A person in San Francisco will see:
Our next meeting is scheduled for Thu, May 28 2020, 1:00 AM.
While someone in India will see:
Our next meeting is scheduled for Thu, May 28 2020, 1:30 PM.
You can also use other formats such as UNIX timestamps or human readable
dates, for example, <time:May 28 2020, 1:30 PM IST>
.
Tables
The initial pipes (|
) are optional if every entry in the first column is non-empty.
The header separators (---
) must be at least three dashes long.
|| yes | no | maybe
|---|---|:---:|------:
| A | left-aligned | centered | right-aligned
| B | extra spaces | are | ok
| C | **bold** *italic* ~~strikethrough~~ :smile: ||
To-do lists
Sending a message with the text /todo
creates a simple collaborative
to-do list. Any user who can access the message can add tasks by
entering the task's title and description and clicking "Add task". Once
created, task titles and descriptions cannot be edited.
Tasks can be marked (and unmarked) as completed by clicking the
checkboxes on the left.
Paragraphs and lines
One blank space for a new paragraph
New line, same paragraph
New paragraph
---, ***, or ___ for a horizontal line
Over the line
---
Under the line
A summary of the formatting syntax above is available in the Zulip app.
- Instructions for all platforms
Related articles