Troubleshooting

How to send a Markdown report to someone who doesn't read Markdown

Paste Markdown into Slack or email and your headings turn into # symbols and your tables collapse. Here is why, and four ways to deliver the report so it reads properly.

You asked an AI assistant for a status report. It gave you clean, well-structured Markdown. You paste it into Slack for your client and it arrives looking like this:

## Q3 summary
- **Revenue** up 24%
| Metric | Q2 | Q3 |
| --- | --- | --- |

Hash symbols where the headings should be. Asterisks around the bold text. A table that is now a pile of pipes. Your client, reasonably, asks what happened.

Why this happens

Markdown is a source format. It is plain text with conventions — ## means heading, ** means bold — that only become formatting when something renders them. Whether your reader sees a formatted document or the raw symbols depends entirely on whether the tool they are reading in speaks Markdown.

Most business tools do not, or only partly:

  • Slack renders *bold* and `code` but ignores headings, tables and links written in Markdown syntax. Its message formatting is similar to Markdown, not the same as it, which is exactly why partial rendering looks so broken.
  • Email clients render nothing. Markdown arrives verbatim.
  • Microsoft Teams supports a subset, inconsistently across desktop and web.
  • Google Docs pastes it as literal text unless you use the import path.
  • Notion does convert on paste, which is why it feels like Markdown works everywhere until you try somewhere else.

The .md file itself has the same problem. Send it as an attachment and most people either cannot open it or get it in a text editor, symbols and all.

Four ways to fix it

1. Publish it as a web page

Render the Markdown once, host it at a URL, send the link. Your recipient opens a normal web page with real headings, a working table and clickable links. Nothing depends on what their email client supports.

This is the only option that survives being forwarded. If your client passes the report to their colleague, the link keeps working; a pasted blob of Markdown degrades again on every hop.

You can publish a .md file to a link directly, or have your assistant publish it from the chat so there is no download step.

2. Convert to PDF

Fine for something genuinely final. You lose working links and the document stops being readable on a phone without pinch-zooming, but if it is going into a records system, PDF is often what is wanted anyway.

3. Paste into a rich-text editor first

Notion, Google Docs (via import) and some email clients will convert Markdown into real formatting on paste. Then copy that and send it. It works, but it is manual, it usually mangles tables, and you have to redo it every time the report changes.

4. Rewrite it as plain prose

Ask the assistant for the report with no Markdown formatting at all — just paragraphs. Sometimes this is the honest answer for a short update that never needed a table. It is a bad answer for anything structured.

Which to choose

If the report is going to one person, once, and it is three paragraphs long, paste it as plain prose and move on.

If it has headings, tables, or a structure worth preserving — or if more than one person will read it, or anyone might forward it — publish it. Everything else is a workaround you will repeat next month.

Check how it will render first

If you want to see what your Markdown looks like as a finished page before committing, paste it into the free Markdown preview. It uses the same renderer as a published page, so the preview is not an approximation — it is the output.

A note on AI-generated reports specifically

This problem got much more common very quickly, because assistants default to Markdown. Ask for "a summary" and you get headings and bullets, because that is what reads well in the chat window. The formatting that makes it readable in the assistant is exactly what breaks when you move it anywhere else.

That is worth knowing rather than fighting: the Markdown is good output. It just needs rendering before it reaches a human who is not sitting in a chat interface.

Send your next page as a link

Drop an HTML or Markdown file in and get a URL that renders it for anyone you send it to. Free, and it works from Claude, ChatGPT, Gemini and Slack too.

Try it free

More guides

Send feedback

How are you feeling about Pagepost?

Choose which optional categories you allow. Strictly-necessary storage is always on — without it, the site cannot keep you signed in.

Strictly necessary

Required for sign-in, OAuth security, and remembering this cookie choice. You can't turn these off.

Analytics — Google Analytics

Aggregate usage metrics — page views, traffic sources, broad engagement patterns. Runs in Consent Mode v2: when off, no cookies are set and Google only receives anonymous, cookieless aggregate signals.

Session replay — Microsoft Clarity

Anonymised replays of how users navigate the site, used to find UX issues. The Clarity script is not loaded at all when this is off.

See our privacy policy for full details, including international transfers and your rights.
How to send a Markdown report to someone who doesn't read Markdown