Skip to content
Quevell
Menu

Text formatting

Markdown in issues, comments and knowledge-base pages: syntax, examples, links, files and limitations.

Updated 28 Oct 2026

Where formatting is available

Use Markdown to format text with emphasis, links, code, paragraphs, headings, lists, quotes and tables. Strikethrough, checkbox lists and automatic web links are also supported. Issue descriptions and summaries show formatting after you save; comments show it after you send them. You can open "Preview" while editing a multiline custom field or a knowledge-base page, before saving.

FieldDisplay
Issue description, multiline custom issue field, comment, knowledge-base page bodyFull rendering of the features listed here: paragraphs, headings, lists, tables, quotes and code blocks.
Issue summary, short custom text field on an issue, issue checklist item textEmphasis, strikethrough, links and inline code. Headings, lists, tables, quotes and code blocks appear as text with their Markdown markers, without block formatting. Line breaks between ordinary lines become spaces.
Knowledge-base page titles, project names, team names and configuration names; profile fields and administrative settingsPlain text. Markdown does not apply here.

Compact labels, such as issue picker entries, show text without formatting or Markdown markers. This does not change the issue's stored source. Dates, numbers, addresses in dedicated fields and list options remain values of their respective types.

When creating an issue, click ? beside Description. A popover next to the icon contains a Full text formatting reference link to this article. It overlays the form without moving the fields. Click the icon again, click outside or press Escape to close it. Opening help leaves your text unchanged and does not submit the form.

Emphasis

Surround text with asterisks or underscores. For strikethrough, use two tildes on each side.

**bold** or __bold__
*italic* or _italic_
~~strikethrough~~
**bold and *italic* together**

The first two examples render as bold or bold; italic or italic.

A space between the opening marker and the text prevents emphasis. Asterisks also work inside a word: before**important**after.

Paragraphs and lines

Leave a blank line to start a new paragraph. A normal line break within a paragraph is also visible when reading multiline text. You can mark an explicit line break by ending the line with two spaces or a backslash \. In short fields, line breaks between ordinary lines appear as spaces.

First line
Second line

Next paragraph

Four spaces at the start of a line introduce a code block. Ordinary paragraphs do not need this indentation. See Limitations and storage for details on preserving whitespace.

Headings

Start a line with one or more # characters followed by a space. One to six markers are recognized. Quevell renders # as H2, ## as H3, and so on up to H6. Both five and six markers render at H6. H1 is reserved for the Quevell page itself.

# Main section
## Subsection
### Details

You can also underline a heading with a line of = or - characters:

Main section
============

Subsection
----------

Headings within text do not replace the Quevell page heading. A heading written in a short field stays text.

Lists

For a bulleted list, start a line with -, + or * and a space. For a numbered list, use a number followed by a dot. Indent a nested item relative to its parent; align continuation lines with the item's text.

- Preparation
  - Check the description
  - Gather material
- Release

1. Agree
2. Implement
3. Check

The number on the first item determines where numbering starts. Leave a blank line between separate lists.

Checkbox lists

After the list marker, use [ ] for an incomplete item or [x] for a completed item.

- [ ] Check the text
- [x] Add an example

The items appear as:

  • ☐ Check the text
  • ☑ Add an example

Markdown checkboxes do not respond to clicks. To change an item's state, edit the text and replace [ ] with [x], or the other way round. This list does not create Quevell issues. The issue's separate checklist remains an independent interface element.

Quotes and separators

Start a quoted line with >. A quote can contain paragraphs, emphasis and lists.

> The decision is agreed.
>
> The next step is verification.

For a horizontal separator, use a separate line containing ---, *** or ___. Leave a blank line before it: dashes directly below text can introduce a heading instead.

Put the link text in square brackets and the address in parentheses. An optional title in quotes after the address appears on hover.

[Document](https://example.com)
[Document](https://example.com "Open document")
https://example.com

A long address can be defined separately:

Read the [document][guide].

[guide]: https://example.com "Document"

Only valid http:// and https:// links open. Relative addresses, URLs containing credentials and other schemes do not become active links. Links open in a new tab. Formatting does not grant access to a private issue or file.

Code

Use backticks for inline code. Formatting inside them is displayed literally.

Call `load()` with the string `**no emphasis**`.

If the code contains a backtick, surround it with a longer sequence of backticks:

``code with ` inside``

Surround a multiline block with lines of three backticks or tildes. The closing sequence must not be shorter than the opening sequence. An example using tildes:

~~~
if (ready) {
  send();
}
~~~

Alternatively, indent every code line with four spaces. You may specify a language after the opening sequence; the code remains text, without execution or diagram rendering. People mentions and attachment references inside code are not activated.

Tables

Separate cells with vertical bars. A row of dashes must follow the header row. This example uses default alignment:

| Name | Quantity | State |
| --- | --- | --- |
| **Example** | 12 | Ready |
| Another example | 3 | Review |

Result:

NameQuantityState
Example12Ready
Another example3Review

Colons in the separator row set the alignment. In this version, the first column is left-aligned, the second right-aligned and the third centred:

| Name | Quantity | State |
| :--- | ---: | :---: |
| **Example** | 12 | Ready |
| Another example | 3 | Review |

Inline emphasis, links and code work inside cells. Use \| for a literal vertical bar inside a cell. A wide table scrolls within the text rather than widening the page. Tables do not calculate formulas.

Files, pictures and mentions

Pasting a file or picture into an issue description or comment starts the upload immediately. A project must be selected, and you need permission to add files there. Once the upload succeeds, a file reference appears at the cursor. Until you save, the file is a private draft available only to you.

  • Issue description: the file becomes an attachment when you create the issue or save your changes, provided its draft reference is still in the description.
  • Comment: the file becomes an attachment on the issue when you send the comment, provided its reference is still in the comment text. Saving the issue description does not send the comment.
  • Cancelling: cancelling description edits or leaving without sending the comment does not attach the draft. Closing the form does not delete it immediately. After 24 hours, an unsaved draft is no longer accessible; scheduled cleanup then removes it. The cross beside a draft removes its reference and immediately requests deletion. Deleting the reference by editing the text does not trigger immediate cleanup.
  • Upload failure: a message names the file and explains the failure; no reference is inserted for that file. Your existing text remains. If you paste several files, uploads continue for the remaining files.

Text typed during the upload stays in the editor. If the clipboard contains plain text as well as a file, the text is pasted and the file is not uploaded. This happens, for example, when copying a table together with an image of it.

Existing attachments are resolved within the current issue. An available picture appears as a thumbnail; other files appear as download buttons. A reference whose file is absent from the available attachment list shows "File deleted". That label alone does not establish that the file was physically deleted. Removing a reference to an existing attachment from the text does not delete the attachment itself.

An external picture is written as:

![Caption](https://example.com/picture.png)

Quevell displays an external picture as a link that opens when you click it. Reading the text does not load the image from the other server. The link does not become an issue attachment. Quevell creates internal attachment references when you paste and save files; their display is described above.

In a comment, type @, start entering a name and select a user from the suggestions. The editor links the name to that user and displays it as a single mention. Typing a name, even with @, does not create that link. Mentions inside code or escaped examples are not activated and do not trigger notifications. A normal mention in a sent comment is processed subject to the user's access to the issue.

Displaying Markdown characters

Put a backslash \ before a Markdown character to display it as ordinary text. For example, \*text\* displays the asterisks around the word without italics. A backslash escapes the next character; a backtick marks inline code.

\*no italics\*
\# this is not a heading
\[this is not a link\]

No additional escaping is required inside a code block.

Limitations and storage

  • HTML is displayed as ordinary text. Embedded pages, scripts, formulas and diagrams do not run. Markdown footnotes are not supported.
  • Formatting does not change access to issues, comments, knowledge-base pages or attachments. Reading, editing, mentioning users and working with files remain subject to their respective permission checks.
  • Issue descriptions, multiline custom fields, comments and knowledge-base page bodies preserve indentation, spaces at the ends of lines and trailing line breaks. Multiline fields retain the original text when you create an issue from the cross-project list or a project, and when you edit it on the issue card. Short fields trim leading and trailing whitespace.
  • The stored text retains its markup. Saving pasted files replaces temporary draft references with attachment references. Description and comment editors display file references and mentions compactly while retaining their underlying source notation.
  • Field limits apply to the source string, including formatting markers.
  • Formatting does not apply to every label and setting in the product: applicability is listed at the start of this article.

For API and MCP calls, send Markdown as a normal string: for example, in description when creating or updating an issue, in a comment or knowledge-base page's body, or as the value of a core:text or core:paragraph custom field. No HTML conversion is required. Read methods return the stored source; MCP may return long text in chunks. List methods may contain metadata only: use get_comment for a full comment and get_page for a page.

JSON escaping encodes the string for transport: \n in JSON represents a line break, and \\ represents a single backslash. Markdown escaping controls how characters in the decoded string are displayed. Pass the string to a normal JSON serializer once; do not apply an extra layer of escaping to the whole Markdown text.

Exports retain markup without converting it to HTML. CSV applies its own quoting and formula protection. Archives with attachments replace internal file references with paths to files in the archive. Downloading a knowledge-base page as .md adds the page title and a final line break to its body.

For issue creation, see Getting started; for data exchange, see API and MCP.