Apps Part of Wikinest

Wikinest Markdown to HTML

Turn wiki Markdown with panels, status lozenges and a table of contents into safe HTML.

Wikinest Markdown: CommonMark and GitHub tables/task lists plus [[Page]] links, :::info panels, {status:green|Done}, {date:2026-11-24}, {{toc}} and {{children}}.

More options

[[Links]] to these titles become links to <slug>.html; others are marked as missing pages.

Try an example: ·

More about this tool

How it works

Converts a Wikinest page written in Markdown into sanitised HTML: headings with anchors, tables, task lists, highlighted code, info/success/warning/error panels, expand sections, status lozenges, dates, mentions, [[page links]] and the table-of-contents and child-pages macros. It reports the outline, links that point nowhere and unsafe addresses it dropped.

  • Blocks are read line by line: ATX headings, paragraphs, fenced code, block quotes, bullet/numbered/task lists (nested by indentation), GFM tables with alignment, rules, and the Wikinest blocks — :::info/success/warning/error panels (note = info, tip = success), :::expand sections and the {{toc}}, {{children}} and {{embed URL}} macros on a line of their own.
  • Inline: code spans, **bold**, *italic*, ~~strike~~, links, images, autolinks and bare https addresses, [[Page]] / [[Page|label]] / [[KEY:Page]] links, @[Name] mentions, {status:colour|text} lozenges and {date:YYYY-MM-DD}.
  • Sanitised by construction: every piece of text is escaped, raw HTML in the Markdown is shown as text, links keep only http(s), mailto and #anchors, images only https and attachments; nothing else reaches the output. External links open in a new tab with noopener.
  • Heading anchors are slugs of the heading text (duplicates get -2, -3); the outline nests headings by level and numbers them 1, 1.1, 1.2 …
  • Code blocks are highlighted by a small one-pass tokenizer (comments, strings, numbers, keywords, literals, tags) for JavaScript/TypeScript, Python, shell, SQL, CSS, JSON, YAML, Go, Rust, Java/Kotlin/C#, C/C++, PHP and HTML/XML.

Sources

Part of Wikinest

  • Wikinest Knowledge base and team wiki

    A team wiki: spaces, page trees, versions, comments and permissions per space.

    Open Wikinest

How to turn wiki Markdown with macros into safe HTML

Convert a Markdown page with panels, status lozenges, page links, mentions, task lists and a table of contents into sanitised HTML, and check which linked pages are missing.

What it is for

A wiki page is more than plain Markdown. It has info and warning panels, coloured status labels, links to other pages by title, mentions of people, task lists and a table of contents that builds itself. This tool reads a page written in the Wikinest dialect and returns HTML you can paste into another system, email or publish as a single file.

It also checks the page: it counts words and headings, builds the outline, lists every [[Page]] link and tells you which of them point to pages that do not exist yet. Wikinest uses the same code to show pages and to export them, so what you see here is what the app shows.

Raw HTML in the Markdown is never passed through. It appears as text, and links with javascript: or other unsafe schemes are dropped. That makes the result safe to show on another website.

Worked example

Paste this page and enter one existing title, Release checklist, under existing page titles. Keep the outline at level 2:

## Release 2.5

{status:yellow|In review} · {date:2026-12-01}

:::warning Freeze
No merges after Thursday.
:::

- [x] Changelog
- [ ] Smoke tests — @[Grace]

See [[Release checklist]] and [[Rollback plan]].

The tool answers:

Converted “Release 2.5” (21 words, 1 heading) into an HTML fragment.

The metrics show 2 page links, 1 missing page, 1 open task and 1 done task. A warning says that [[Rollback plan]] points to a page that is not in your list. In the HTML the status becomes a yellow label, the date becomes a <time> element and the panel becomes a box with the role note, titled “Warning: Freeze”.

How to read the result

  • Words and reading time count the visible text, not the Markdown symbols. Reading time assumes about 220 words per minute.
  • Outline lists the headings with numbers such as 1, 1.1 and 1.2 and the anchor each heading gets. {{toc}} in the page renders this same list.
  • Page links shows every [[Title]] and whether that title is in your list. Missing pages are shown as dashed links in the app, so readers can tell that the page is not written yet.
  • Blocks found counts panels, code blocks, tables, task lists and expand sections. It is a quick check that the macros were recognised.
  • With Whole HTML document switched on you get a complete file with a light and a dark stylesheet that opens in any browser.

Tips and common mistakes

  • Panels need ::: on a line of their own at the start and at the end. Allowed kinds are info, success, warning and error, and note and tip also work.
  • Status colours are grey, blue, green, yellow, red and purple. Any other colour stays as plain text.
  • A | inside {status:…|…} or [[Page|label]] does not split a table cell, so you can put both in tables.
  • {{children}} needs the child page titles. Enter them one per line, or the tool shows “This page has no child pages yet”.
  • Images in Wikinest pages point to attachments (att:…). The tool keeps their description, because the files themselves are not part of the Markdown.

FAQ

Can I paste HTML into the Markdown?

You can, but it appears as text. That is on purpose: wiki pages are shared, and script or event attributes must never reach another reader's browser.

Which code languages are highlighted?

The highlighter knows JavaScript, TypeScript, Python, Go, Rust, Java, C-like languages, shell, SQL, JSON, YAML, CSS and HTML. Other languages are shown as plain, escaped code.

How are heading anchors made?

The anchor is the heading text in lower case, with spaces replaced by hyphens and punctuation removed. Repeated headings get -2, -3 and so on, so every anchor is unique.

Does the tool store my page?

No. The page is converted for this one request and is not kept. In the Wikinest app, pages stay in your browser unless you share a space in a workspace.

Guide last updated:

For scripts and AI agents

  • JSON API: POST https://wikinestmarkdowntohtml.usefulweb.app/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://wikinestmarkdowntohtml.usefulweb.app/mcp · tool name wikinest_markdown_to_html
Example request
curl -s -X POST https://wikinestmarkdowntohtml.usefulweb.app/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{…see OpenAPI examples…}'
Feedback · ideas & bug reports welcome