2022-12-09 02:27:52 +01:00
|
|
|
# Message formatting
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2019-02-28 04:34:38 +01:00
|
|
|
[//]: # (All screenshots here require line-height: 22px and font-size: 16px in .message-content.)
|
2021-09-07 23:45:15 +02:00
|
|
|
[//]: # (Requires some additional fiddling for the LaTeX picture, inline code span, and maybe a few others.)
|
2019-02-28 04:34:38 +01:00
|
|
|
|
2022-12-06 23:23:43 +01:00
|
|
|
Zulip uses a variant of Markdown to allow you to easily format your
|
|
|
|
messages. There is a convenient [**message formatting
|
|
|
|
reference**](#message-formatting-reference) in the Zulip app that you
|
|
|
|
can use whenever you need a reminder of the formatting syntax below.
|
2018-09-19 17:39:02 +02:00
|
|
|
|
|
|
|
* [Emphasis](#emphasis)
|
|
|
|
* [Lists](#lists)
|
|
|
|
* [Links and images](#links)
|
2020-04-14 00:51:46 +02:00
|
|
|
* [Code blocks](#code)
|
|
|
|
* [LaTeX](#latex)
|
2018-09-19 17:39:02 +02:00
|
|
|
* [Quotes](#quotes)
|
2020-04-04 22:14:34 +02:00
|
|
|
* [Spoilers](#spoilers)
|
2018-09-19 17:39:02 +02:00
|
|
|
* [Emoji and emoticons](#emoji-and-emoticons)
|
|
|
|
* [Mentions](#mentions)
|
|
|
|
* [Status messages](#status-messages)
|
2021-11-05 18:20:47 +01:00
|
|
|
* [Global times](#global-times)
|
2018-09-19 17:39:02 +02:00
|
|
|
* [Tables](#tables)
|
2021-11-05 12:36:34 +01:00
|
|
|
* [To-do lists](#to-do-lists)
|
2018-09-19 17:39:02 +02:00
|
|
|
* [Paragraphs and lines](#paragraphs-and-lines)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
|
|
|
## Emphasis
|
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
|
|
|
**bold**, *italic*, and ~~strikethrough~~ text
|
|
|
|
***~~All three at once~~***
|
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown emphasis](/static/images/help/markdown-emphasis.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Lists
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
Bulleted lists
|
|
|
|
```
|
|
|
|
* 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
|
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown bullets](/static/images/help/markdown-bullets.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
Numbered lists
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
|
|
|
1. numbered lists
|
|
|
|
1. increment automatically
|
|
|
|
1. one more
|
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown numbered lists](/static/images/help/markdown-numbered-lists.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
## Links
|
|
|
|
|
2022-02-17 13:11:45 +01:00
|
|
|
Zulip auto-linkifies URLs and [valid stream (and topic) names][link-to-conversation].
|
|
|
|
You can also add a [custom linkifier](/help/add-a-custom-linkifier) to link
|
2018-09-19 17:39:02 +02:00
|
|
|
patterns like `#1234` to your ticketing system.
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2022-02-17 13:11:45 +01:00
|
|
|
[link-to-conversation]: /help/link-to-a-message-or-conversation
|
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
2020-06-09 00:58:42 +02:00
|
|
|
Auto-detected URL: zulip.com
|
|
|
|
Named link: [Zulip homepage](zulip.com)
|
2019-08-03 00:50:43 +02:00
|
|
|
Stream: #**stream name**
|
|
|
|
Topic: #**stream name>topic name**
|
2018-09-19 17:39:02 +02:00
|
|
|
Custom linkifier: #1234 (links to ticket 1234 in your ticketing system)
|
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown links](/static/images/help/markdown-links.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Images
|
2016-12-06 00:13:06 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
See [Share and upload files](/help/share-and-upload-files) to learn more
|
|
|
|
about dropping, pasting, and attaching images.
|
2016-12-06 00:13:06 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
|
|
|
[A whale of a good time](https://your.zulip.domain/user_uploads/1/46/IPvysqXEtiTG1ZdNBrwAZODi/whale-time.png)
|
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown image](/static/images/help/markdown-image.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Code
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
~~~
|
|
|
|
Inline: `let x = 5`
|
2017-04-08 07:54:52 +02:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
Code block:
|
|
|
|
```
|
|
|
|
def f(x):
|
|
|
|
return x+1
|
|
|
|
```
|
2018-02-03 23:31:59 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
Syntax highlighting:
|
|
|
|
```python
|
|
|
|
def fib(n):
|
|
|
|
# TODO: base case
|
|
|
|
return fib(n-1) + fib(n-2)
|
|
|
|
```
|
|
|
|
~~~
|
2018-02-03 23:31:59 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown code](/static/images/help/markdown-code.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2021-09-07 23:45:15 +02:00
|
|
|
You can also use `~~~` to start code blocks, or just indent the code 4 or more spaces.
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2021-05-05 02:05:47 +02:00
|
|
|
See the main [code blocks article](/help/code-blocks) for details on
|
|
|
|
[syntax highlighting](/help/code-blocks#language-tagging), [code
|
|
|
|
playgrounds](/help/code-blocks#code-playgrounds), and other features.
|
2021-04-18 14:49:02 +02:00
|
|
|
|
2020-08-11 01:47:54 +02:00
|
|
|
## LaTeX
|
2018-09-19 17:39:02 +02:00
|
|
|
~~~
|
|
|
|
Inline: $$O(n^2)$$
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
Displayed:
|
2020-04-14 00:51:46 +02:00
|
|
|
``` math
|
2018-09-19 17:39:02 +02:00
|
|
|
\int_a^b f(t)\, dt = F(b) - F(a)
|
|
|
|
```
|
|
|
|
~~~
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown LaTeX](/static/images/help/markdown-latex.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-04-14 00:51:46 +02:00
|
|
|
Zulip's LaTeX rendering is powered by [KaTeX](https://katex.org).
|
|
|
|
Their [support table](https://katex.org/docs/support_table.html) is a
|
|
|
|
helpful resource for checking what's supported or how to express
|
|
|
|
something.
|
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Quotes
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
~~~
|
|
|
|
> a multi-line
|
|
|
|
quote on two lines
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
normal text
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```quote
|
|
|
|
A multi-paragraph
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
quote in two paragraphs
|
|
|
|
```
|
|
|
|
~~~
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown quotes](/static/images/help/markdown-quotes.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-04-04 22:14:34 +02:00
|
|
|
## Spoilers
|
|
|
|
|
|
|
|
You can use spoilers to hide content that you do not want to be visible until
|
|
|
|
the user interacts with it.
|
|
|
|
|
|
|
|
|
|
|
|
~~~
|
|
|
|
Normal content in message
|
|
|
|
|
2021-05-10 07:02:14 +02:00
|
|
|
```spoiler Spoiler header
|
2020-04-04 22:14:34 +02:00
|
|
|
Spoiler content. These lines won't be visible until the user expands the spoiler.
|
|
|
|
```
|
|
|
|
~~~
|
|
|
|
|
|
|
|
The spoiler will initially display in a collapsed form:
|
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Spoiler collapsed](/static/images/help/spoiler-collapsed.png)
|
2020-04-04 22:14:34 +02:00
|
|
|
|
|
|
|
Clicking the arrow will expand the spoiler content:
|
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Spoiler expanded](/static/images/help/spoiler-expanded.png)
|
2020-04-04 22:14:34 +02:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Emoji and emoticons
|
2017-05-13 05:22:28 +02:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
To translate emoticons into emoji, you'll need to
|
2023-03-07 16:10:59 +01:00
|
|
|
[enable emoticon translations](/help/configure-emoticon-translations).
|
2021-09-18 00:52:26 +02:00
|
|
|
You can also [add custom emoji](/help/custom-emoji).
|
2017-05-13 05:22:28 +02:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
|
|
|
:octopus: :heart: :zulip: :)
|
|
|
|
```
|
2017-05-13 05:22:28 +02:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown emoji](/static/images/help/markdown-emoji.png)
|
2017-05-13 05:22:28 +02:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Mentions
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2019-02-28 20:42:48 +01:00
|
|
|
Learn more about mentions [here](/help/mention-a-user-or-group).
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
2021-03-23 20:22:04 +01:00
|
|
|
Users: @**Polonius** or @**aaron|26** or @**|26** (two asterisks)
|
2018-09-19 17:39:02 +02:00
|
|
|
User group: @*support team* (one asterisk)
|
2021-03-23 20:22:04 +01:00
|
|
|
Silent mention: @_**Polonius** or @_**|26** (@_ instead of @)
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2021-03-23 20:22:04 +01:00
|
|
|
The variants with numbers use user IDs, and are intended for
|
|
|
|
disambiguation (if multiple users have the same name) and bots (for
|
|
|
|
the variant that only contains the user ID).
|
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown mentions](/static/images/help/markdown-mentions.png)
|
2017-03-21 21:46:25 +01:00
|
|
|
|
2021-05-10 07:02:14 +02:00
|
|
|
## Status messages
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
|
|
|
/me is away
|
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown status](/static/images/help/markdown-status.png)
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2021-11-05 18:20:47 +01:00
|
|
|
## Global times
|
2020-05-21 10:42:27 +02:00
|
|
|
|
2022-02-24 21:15:43 +01:00
|
|
|
When collaborating with people in another time zone, you often need to
|
|
|
|
express a specific time clearly. Rather than typing out your time zone
|
2020-05-21 10:42:27 +02:00
|
|
|
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
|
2022-02-24 21:15:43 +01:00
|
|
|
time zone (just like the timestamps on Zulip messages).
|
2020-05-21 10:42:27 +02:00
|
|
|
|
2020-07-06 17:21:37 +02:00
|
|
|
A date picker will appear once you type `<time`.
|
2020-05-21 10:42:27 +02:00
|
|
|
|
|
|
|
```
|
2020-07-06 17:21:37 +02:00
|
|
|
Our next meeting is scheduled for <time:2020-05-28T13:30:00+05:30>
|
2020-05-21 10:42:27 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
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*.
|
|
|
|
|
2020-07-06 17:21:37 +02:00
|
|
|
You can also use other formats such as UNIX timestamps or human readable
|
|
|
|
dates, for example, `<time:May 28 2020, 1:30 PM IST>`.
|
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Tables
|
2017-03-21 21:46:25 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
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.
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
|
|
|
|| yes | no | maybe
|
|
|
|
|---|---|:---:|------:
|
|
|
|
| A | left-aligned | centered | right-aligned
|
|
|
|
| B | extra spaces | are | ok
|
|
|
|
| C | **bold** *italic* ~~strikethrough~~ :smile: ||
|
|
|
|
```
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown table](/static/images/help/markdown-table.png)
|
2017-03-19 04:23:27 +01:00
|
|
|
|
2021-11-05 12:36:34 +01:00
|
|
|
## 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.
|
|
|
|
|
|
|
|
![Markdown todo-lists](/static/images/help/markdown-todo.png)
|
|
|
|
|
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
## Paragraphs and lines
|
2017-03-19 04:23:27 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
```
|
|
|
|
One blank space for a new paragraph
|
|
|
|
New line, same paragraph
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
New paragraph
|
2016-12-04 04:57:51 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
---, ***, or ___ for a horizontal line
|
|
|
|
Over the line
|
2017-03-20 16:56:39 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
---
|
2017-03-20 16:56:39 +01:00
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
Under the line
|
|
|
|
```
|
2017-03-20 16:56:39 +01:00
|
|
|
|
2020-08-05 11:50:17 +02:00
|
|
|
![Markdown paragraph](/static/images/help/markdown-paragraph.png)
|
2017-03-20 16:56:39 +01:00
|
|
|
|
2022-12-06 23:23:43 +01:00
|
|
|
## Message formatting reference
|
2017-03-20 16:56:39 +01:00
|
|
|
|
2022-12-06 23:23:43 +01:00
|
|
|
A summary of the formatting syntax above is available in the Zulip app.
|
2017-03-20 16:56:39 +01:00
|
|
|
|
2019-04-03 08:09:36 +02:00
|
|
|
{start_tabs}
|
|
|
|
|
2018-09-19 17:39:02 +02:00
|
|
|
{!start-composing.md!}
|
2017-03-20 16:56:39 +01:00
|
|
|
|
2022-12-06 23:23:43 +01:00
|
|
|
1. Click the **question mark** (<i class="fa fa-question"></i>) icon at the
|
|
|
|
bottom of the compose box.
|
2019-04-03 08:09:36 +02:00
|
|
|
|
|
|
|
{end_tabs}
|
|
|
|
|
|
|
|
## Related articles
|
|
|
|
|
|
|
|
* [Create a poll](/help/create-a-poll)
|
2022-05-03 19:14:01 +02:00
|
|
|
* [Mention a user or group](/help/mention-a-user-or-group)
|
|
|
|
* [Preview messages before sending](/help/preview-your-message-before-sending)
|
|
|
|
* [Resize the compose box](/help/resize-the-compose-box)
|
2021-09-14 02:14:40 +02:00
|
|
|
* [Messaging tips & tricks](/help/messaging-tips)
|