# Confluence Wiki Markup: How to View, Edit & Convert It

September 23, 2026 ·

<!-- -->

6 min read

[NGPilot](https://ngpilot.com)

Every Confluence page has two faces: the one you see in the editor, and the one the database sees. The database face is the **storage format** — an XHTML document with macros as tags — and before it, Confluence stored pages as **wiki markup**: `h1. headings`, `*bold text*`, `{code}` blocks. People still search for wiki markup because half the internet's Confluence advice, every migration script, and a lot of content written before \~2017 speaks that language. And in 2026 the topic got urgent: Atlassian is retiring the legacy editor (full deprecation April 2026), and the new cloud editor **dropped the Markup macro** entirely. Here's how to view, edit, and convert what's actually stored — with or without admin rights.

**Quick answer:** To view a page's markup, open the **••• → View storage format** menu (needs space admin) or call `GET /wiki/rest/api/content/{pageId}?expand=body.storage`. To edit it, use [Raw Storage Source Editor](https://marketplace.atlassian.com/apps/1237066/raw-storage-source-editor-for-confluence), which shows a diff before saving. Legacy wiki markup syntax itself is being retired — the legacy editor is fully deprecated in April 2026 and the new editor no longer accepts the Markup macro.

## Method 1 — View Storage Format Natively (Read-Only)[​](#method-1--view-storage-format-natively-read-only "Direct link to Method 1 — View Storage Format Natively (Read-Only)")

Open any page, click the **•••** (More options) menu in the top right, and pick **View storage format**. Confluence opens the raw XHTML in a new browser tab: every macro is a `<ac:...>` or `<cx:...>` tag, formatting is literal XHTML, and page properties show up as structured blocks.

Two things to know before you go looking for it:

* **It's permission-gated.** The option only appears for users with space admin (or explicitly granted) permissions — if the menu item is missing, that's usually why.
* **It's read-only.** This is an inspection window. Nothing you do here changes the page, and copy-pasting it elsewhere doesn't give you an editable copy of the page.

**Good for:** checking what a macro actually stored, diagnosing why something renders oddly, or feeding the XML to a script.

## Method 2 — The REST API (No Space Admin Needed)[​](#method-2--the-rest-api-no-space-admin-needed "Direct link to Method 2 — The REST API (No Space Admin Needed)")

The same document is one API call away, and API access is governed by normal page permissions rather than the storage-format menu's admin gate:

```
curl -u user@example.com:api-token \

  "https://your-site.atlassian.net/wiki/rest/api/content/123456789?expand=body.storage"
```

The markup comes back in `body.storage.value`. It's read-only again — but for auditing, diffing two pages, or bulk-reporting which pages still carry legacy macro tags, it's the programmable route.

## Method 3 — Edit the Markup Directly (Recommended for Fixes)[​](#method-3--edit-the-markup-directly-recommended-for-fixes "Direct link to Method 3 — Edit the Markup Directly (Recommended for Fixes)")

Native editing is where Confluence draws a hard line: the visual editor edits the rendered view, and there's no built-in raw editor on Cloud. When you *need* to touch the markup — a broken macro from a migration, junk `<span>` soup from pasted Word content, a bulk rename that must preserve structure — editing the XML by hand through the API means writing blind, and one wrong tag can take the whole page down.

[Raw Storage Source Editor for Confluence](https://marketplace.atlassian.com/apps/1237066/raw-storage-source-editor-for-confluence) (free) puts a raw editor inside Confluence instead:

1. Open a page and launch the editor — the page's storage format loads as editable XML.
2. Make your change — full find-and-replace for cleanup jobs, direct edits for surgical ones.
3. **Review the diff before saving.** You see exactly which lines change, so a slip is a rejected edit instead of a broken page.

It's the same job Atlassian's own Storage Format Source Editor did on Data Center — built for Cloud, where that app never shipped. There's also a [Pro version](https://marketplace.atlassian.com/apps/2739097621/raw-storage-source-editor-pro-for-confluence) with batch operations for whole-space cleanups.

## Method 4 — Legacy Wiki Markup: Convert It Before April 2026[​](#method-4--legacy-wiki-markup-convert-it-before-april-2026 "Direct link to Method 4 — Legacy Wiki Markup: Convert It Before April 2026")

If your space predates the cloud editor, some pages may still carry legacy wiki markup or the old macro syntax. With the [legacy editor's full deprecation set for April 2026](https://community.atlassian.com), the clock matters more than the syntax:

1. **Inventory first.** A REST call scanning `body.storage.value` for legacy tags (`<ac:structured-macro>` with deprecated names, raw `h1.`-style content) tells you how much is left.
2. **Open and let the editor convert.** Editing a page in the cloud editor converts what it recognizes into modern macros. Fix anything it can't convert by hand.
3. **Replace markup-dependent workflows.** The new editor has no Markup macro, so any process that *inserted* wiki markup (templates, scripts, copy-paste snippets) needs a new home — modern macros, page templates, or [writing in Markdown instead](/blog/how-to-write-markdown-in-confluence.md) with an app like [Enhanced Markdown for Confluence](/apps/enhanced-markdown-for-confluence.md), which renders Mermaid, math, and code natively.

**Good for:** teams with pre-2017 spaces or migrations from Data Center. If your space is young, this section doesn't apply — and that's the point of checking.

## A Pocket Reference: Legacy Syntax → What It Became[​](#a-pocket-reference-legacy-syntax--what-it-became "Direct link to A Pocket Reference: Legacy Syntax → What It Became")

| Legacy wiki markup               | Modern equivalent                          |
| -------------------------------- | ------------------------------------------ |
| `h1. Heading`                    | Heading (type `/heading`)                  |
| `*bold*`, `_italic_`             | `**bold**`, `_italic_` (or toolbar)        |
| `{code:java}...{code}`           | Code block macro (`/code`)                 |
| `{panel}`, `{info}`, `{warning}` | Panel, info, and warning panels (`/panel`) |
| `{table}`-style rows `\|\|`      | Standard tables                            |
| `{color:red}text{color}`         | Text color in the toolbar                  |

The pattern: almost everything has a modern macro equivalent — the syntax is what died. The migration work is mostly mechanical, with the exceptions worth checking page by page.

## Which Method Should You Use?[​](#which-method-should-you-use "Direct link to Which Method Should You Use?")

| Need                               | Use                                                              |
| ---------------------------------- | ---------------------------------------------------------------- |
| Peek at what a page really stored  | ••• → View storage format                                        |
| Read markup without space admin    | REST API, `expand=body.storage`                                  |
| Fix a broken macro or clean up XML | Raw Storage Source Editor (diff before save)                     |
| Retire legacy wiki markup          | Inventory via API, convert in the cloud editor before April 2026 |

The storage format is the page's source of truth — readable natively, editable safely with a diff in front of you, and worth converting now rather than in April. Install [Raw Storage Source Editor for Confluence](https://marketplace.atlassian.com/apps/1237066/raw-storage-source-editor-for-confluence) free from the Atlassian Marketplace and open your most structurally-damaged page to see the difference.

## Related Resources[​](#related-resources "Direct link to Related Resources")

* [How to Write Markdown in Confluence](/blog/how-to-write-markdown-in-confluence.md) — Markdown as the modern alternative to legacy markup
* [Markdown FAQ: Syntax, Tables & Code Blocks in Confluence](/blog/faq-confluence-markdown-editor.md) — the markdown cluster's reference page
* [Markdown to Confluence Converter](/blog/markdown-to-confluence-converter.md) — bring markdown content in without markup loss
* [Raw Storage Source Editor for Confluence](/apps/raw-storage-source-editor-for-confluence.md) — full app details and documentation

## Related guides

* [How to Create Mermaid Diagrams in Jira](/blog/how-to-create-mermaid-diagrams-jira.md)
* [Export Jira Issues to Excel or CSV](/blog/export-jira-issues-to-excel.md)
* [Bulk Download Jira Attachments](/blog/bulk-download-jira-attachments.md)
* [How to Migrate Confluence Content](/blog/how-to-migrate-confluence-content.md)
* [How to Add a Block Quote in Confluence](/blog/block-quote-confluence.md)

Explore NGPILOT[Browse Solutions](/solutions.md)[All Apps](/apps.md)[Atlassian Marketplace →](https://marketplace.atlassian.com/vendors/1226848/?utm_source=ngpilot.com\&utm_medium=blog\&utm_campaign=hub-links)

**Tags:**

* [confluence](/blog/tags/confluence.md)
* [wiki-markup](/blog/tags/wiki-markup.md)
* [storage-format](/blog/tags/storage-format.md)
* [how-to](/blog/tags/how-to.md)
* [admin](/blog/tags/admin.md)
* [migration](/blog/tags/migration.md)
