Text formatting

Specivo renders Markdown everywhere you write longer text: issue descriptions, comments, and wiki pages. The same syntax works in all three. This page covers what's supported, plus two Specivo-specific extras — @username mentions and [[wiki links]].

Headings

# Heading 1
## Heading 2
### Heading 3

In the wiki, the page title is shown as the page heading already, so start your body at ## rather than repeating an # H1.

Emphasis

Markdown Result
**bold** bold
*italic* italic
***bold italic*** bold italic
`inline code` inline code

Lists

- First item
- Second item
  - Nested item

1. Step one
2. Step two

Task lists work too:

- [x] Done
- [ ] Not done yet
[Link text](https://specivo.example.com)
![Alt text](https://specivo.example.com/image.png)

A bare web address such as https://specivo.example.com/docs is turned into a link on its own, so you don't need the [text](url) form just to make an address clickable.

To attach and embed an image on an issue or wiki page, upload it as an attachment first, then link to it.

Blockquotes

> A quoted line.
> Continues the same quote.

Tables

| Field    | Type   | Required |
|----------|--------|----------|
| subject  | string | yes      |
| due date | date   | no       |

Pipe tables render as styled tables. Use them for field lists and option matrices.

Code blocks

Fence code with triple backticks and add a language hint for syntax highlighting:

```python
def hello(name: str) -> str:
    return f"Hello, {name}"
```

The language hint (python, bash, json, yaml, sql, and so on) controls the highlighting colors.

Diagrams

A code block with the language hint mermaid is drawn as a diagram, using Mermaid syntax: flowcharts, sequence, class and state diagrams, Gantt charts, pie charts and more.

```mermaid
flowchart LR
    New --> InProgress[In progress] --> Review --> Done
    Review -->|changes requested| InProgress
```

Diagrams work in issue descriptions, comments, wiki pages and the editor preview, and need no internet access. Labels are plain text: HTML in a label is shown as written, and click links and callbacks do nothing. If a diagram has a syntax error, its source is shown as a code block below a short notice instead. Search and exports see the diagram's source text. A diagram wider than the page is scaled down to fit on a wide screen; on a phone it keeps its full size and you scroll it sideways.

@username mentions

Type @ followed by a username to mention someone. The mention links to their profile and notifies them:

@alex can you review this before the release?

Mentions work in issue descriptions and comments. Use them to pull a specific person into a discussion.

Issue references

Write an issue's key — ACME-123 — in a description, a comment, or a wiki page and Specivo turns it into a link to that issue. You don't need any special syntax; the plain key is enough.

Specivo links a reference only when the issue actually exists (or existed before it was moved, in which case the old key still resolves). A token that looks like a key but doesn't match a real issue — a version string like API-2, a part number, a typo'd key — stays as plain text instead of becoming a dead link. That keeps references trustworthy: if it's a link, there's a real issue on the other end.

The same goes for issues you may not see. A key that names a private issue, or one hidden from you by your role, is not linked for you and reads as plain text, so a reference never reveals that the issue exists. Keys inside code (a code block or `inline code`) or a raw HTML block are left as written.

Inside the wiki, link to another page in the same project with double brackets:

See [[Release Process]] for the steps.

You can link by title ([[Release Process]]) or by slug ([[release-process]]) — slugs are normalized, so [[My Page]], [[my-page]], and [[My_Page]] all resolve to the same page. Double brackets inside code (a code block or `inline code`) or inside a raw HTML block are shown as written, not linked. See Linking & history for more.

Size and complexity limits

A description, a comment, a wiki page, or a version or recurring-issue description can hold up to 262,144 characters (256 Ki). Saving longer text is refused with a message giving the limit; split the content across several pages or comments instead. The editor preview takes the same amount. Text already stored above the limit, such as imported content, is kept and shown as plain text.

Text that would take too long to format is shown as plain text instead, below a short notice, with nothing removed. Ordinary documents never hit this, including ones with thousands of links. It is meant for text such as thousands of unclosed [ or <, the same heading repeated thousands of times, or lists and quotes nested more than 50 levels deep. Edit the text and it renders normally again.

Keep it simple

Stick to the elements above. Specivo renders standard Markdown plus the two extensions on this page — if a construct isn't listed here, don't assume it renders.