Convert Markdown to SPIP syntax
Markdown to SPIP turns Markdown text into SPIP syntax, ready to paste into an article. The conversion happens as you type, with no signup.
When to use it
SPIP has its own formatting syntax: {{bold}}, {italic}, [link->url]. Markdown uses another one, now the most widespread. The tool helps when a text already exists in Markdown and has to be published on a SPIP site:
- an answer from an AI assistant (ChatGPT, Claude, Mistral, Gemini), written in Markdown;
- notes taken in Obsidian, Joplin or a text editor;
- documentation or a README from GitHub or GitLab;
- text written by someone who knows Markdown but not SPIP.
Converted syntax
| Markdown | SPIP |
|---|---|
# Title |
{{{Title}}} |
## Subtitle |
{{Subtitle}} |
**bold** |
{{bold}} |
*italic* |
{italic} |
[link](url) |
[link->url] |
- item |
-* item |
1. item |
-# item |
--- |
---- |
`code` |
<code>code</code> |
> quote |
<quote>quote</quote> |
Text[^1] |
Text[[note]] |
***bold*** |
{{ { bold } }} |
~~strikethrough~~ |
<del>strikethrough</del> |
- item |
-** item |
<https://…> |
[->https://…] |
 |
[alt->url] |
| a | b |
|---|---|
| 1 | 2 | |
| {{a}} | {{b}} |
| 1 | 2 | |
Example
# Meeting minutes The meeting approved **three items**: 1. the 2027 budget; 2. the schedule, detailed on [the website](https://example.org); - launch in *March* 3. the new charter. | Item | Amount | |---|---| | Printing | €450 | > Next meeting on 12 November.
{{{Meeting minutes}}}
The meeting approved {{three items}}:
-# the 2027 budget;
-# the schedule, detailed on [the website->https://example.org];
-** launch in {March}
-# the new charter.
| {{Item}} | {{Amount}} |
| Printing | €450 |
<quote>Next meeting on 12 November.</quote>
What is not converted
- Images. SPIP handles images as documents attached to the article. The converter outputs a link to the image: to display it, upload it to the article, then insert the <imgXX> shortcut SPIP offers.
- Heading levels. SPIP has a single subheading level. Only # becomes one; ## to ###### headings become bold.
- Column alignment. Table markers :--- and :---: are ignored.
- HTML. HTML tags in the Markdown are passed through unchanged.
What happens to your text
The text is sent to the server for the conversion, then forgotten: nothing is saved. A copy stays in your browser so nothing is lost on reload. It is erased seven days after the last edit, or straight away with the Clear button.
The site counts visits, conversions, copies and converted characters, with no data that identifies visitors. These figures are public: Stats page.
Frequently asked questions
Is my text stored on the server?
No. The text is sent to the server only to perform the real-time conversion, but it is never stored. No trace of conversions is kept.
Is the tool free?
Yes. Markdown to SPIP is completely free, no signup, no advertising. The project is open source under the GNU AGPL-3.0 license.
What is the maximum length of text to convert?
100,000 characters per conversion, roughly 15,000 words or 30 pages.
How do I publish a ChatGPT answer in SPIP?
Copy the answer with the assistant's Copy button (ChatGPT, Claude, Mistral…), which gives it in Markdown. Paste it into the left pane, then copy the SPIP result into the article editor.
Does the converted text work with my SPIP version?
Yes for current versions. The output only uses SPIP typographic shortcuts ({{bold}}, {italic}, [link->url], -* and -# lists, tables, <quote>), recognised by SPIP 3 and later.
Can I use Markdown to SPIP offline?
Yes. As the project is open source, you can install it locally on your machine. The source code is available on GitHub.
What is SPIP?
SPIP (Système de Publication pour Internet Partagé) is a free French CMS used by many institutional and non-profit websites. It uses its own markup syntax, distinct from Markdown.
The project
Markdown to SPIP is free software (AGPL-3.0), developed by Guillaume Orsal. The source code is on GitHub, where you can report a problem or install the tool to convert offline.