🛠️ToolsShed

Aperçu Markdown

Rédigez du Markdown et prévisualisez le rendu en temps réel.

Hello, Markdown!

This is bold and this is italic text.

Features

  • Live preview as you type
  • Syntax support for common elements
  • Code blocks with inline code
const greet = (name) => `Hello, ${name}!`;
console.log(greet("World"));
Blockquotes look like this.

Visit ToolsShed

L'aperçu Markdown rend le texte formaté en Markdown en HTML stylisé en temps réel, vous permettant de voir exactement à quoi ressemblera votre document avant de le publier. Markdown est le langage de formatage standard pour les fichiers README sur GitHub, les sites de documentation et les plateformes de blog comme Dev.to et Hashnode.

Écrivez votre Markdown dans le panneau gauche et voyez la sortie formatée apparaître immédiatement dans le panneau droit. Le moteur de rendu prend en charge la spécification CommonMark complète plus des extensions courantes : titres, gras, italique, code en ligne, blocs de code, citations, listes, tableaux, listes de tâches, liens et images.

Markdown est intentionnellement simple mais certains choix de formatage ont des particularités spécifiques à la plateforme. Par exemple, GitHub Flavored Markdown (GFM) ajoute le texte barré (~~texte~~) et les listes de tâches. Si vous écrivez pour une plateforme spécifique, consultez sa documentation pour connaître le dialecte Markdown qu'elle utilise.

Questions Fréquentes

Implémentation du Code

import re

def simple_markdown_to_html(text: str) -> str:
    """Convert basic Markdown to HTML."""
    lines = text.split("\n")
    html_lines = []
    in_code_block = False

    for line in lines:
        # Fenced code block
        if line.startswith("```"):
            if in_code_block:
                html_lines.append("</code></pre>")
                in_code_block = False
            else:
                lang = line[3:].strip()
                html_lines.append(f'<pre><code class="language-{lang}">')
                in_code_block = True
            continue

        if in_code_block:
            html_lines.append(line)
            continue

        # Headings
        if line.startswith("### "):
            html_lines.append(f"<h3>{line[4:]}</h3>")
        elif line.startswith("## "):
            html_lines.append(f"<h2>{line[3:]}</h2>")
        elif line.startswith("# "):
            html_lines.append(f"<h1>{line[2:]}</h1>")
        elif line.startswith("- "):
            html_lines.append(f"<li>{line[2:]}</li>")
        elif line.strip() == "":
            html_lines.append("<br>")
        else:
            # Bold and italic
            line = re.sub(r'\*\*(.+?)\*\*', r'<strong>\1</strong>', line)
            line = re.sub(r'\*(.+?)\*', r'<em>\1</em>', line)
            # Links
            line = re.sub(r'\[(.+?)\]\((.+?)\)', r'<a href="\2">\1</a>', line)
            # Inline code
            line = re.sub(r'`(.+?)`', r'<code>\1</code>', line)
            html_lines.append(f"<p>{line}</p>")

    return "\n".join(html_lines)

md = "# Hello\n**Bold** and *italic* text\n[Link](https://example.com)"
print(simple_markdown_to_html(md))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.