Created
February 27, 2024 03:10
-
-
Save itsmikita/64429fe5ce6df24f2a84991047051a01 to your computer and use it in GitHub Desktop.
Markdown to HTML
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export function function markdownToHtml(markdown) { | |
// Handle Links | |
markdown = markdown.replace(/\[(.*?)\]\((.*?)\)/g, '<a href="$2">$1</a>'); | |
markdown = markdown.replace(/<([^>]+)>/gim, '<a href="$1">$1</a>'); | |
// Handle Headings | |
markdown = markdown.replace(/^#\s(.*$)/gm, '<h1>$1</h1>'); | |
markdown = markdown.replace(/^##\s(.*$)/gm, '<h2>$1</h2>'); | |
markdown = markdown.replace(/^###\s(.*$)/gm, '<h3>$1</h3>'); | |
// Handle Paragraphs | |
// markdown = '<p>' + markdown.replace(/\n{2,}/g, '</p><p>') + '</p>'; | |
// Handle Line Breaks | |
markdown = markdown.replace(/ $/gm, '<br>'); | |
// Handle Bold, Italic, and Strike-through | |
markdown = markdown.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>'); | |
markdown = markdown.replace(/__(.*?)__/g, '<strong>$1</strong>'); | |
markdown = markdown.replace(/\*(.*?)\*/g, '<em>$1</em>'); | |
markdown = markdown.replace(/_(.*?)_/g, '<em>$1</em>'); | |
markdown = markdown.replace(/~~(.*?)~~/g, '<del>$1</del>'); | |
// Handle Images | |
markdown = markdown.replace(/!\[(.*?)\]\((.*?)\)/g, '<img src="$2" alt="$1">'); | |
// Handle Code Blocks | |
markdown = markdown.replace(/```(\w+)?([\s\S]*?)```/g, '<pre><code class="langugage-$1">$2</code></pre>'); | |
// Handle Inline Code | |
markdown = markdown.replace(/`(.*?)`/g, '<code>$1</code>'); | |
// Handle lists | |
markdown = markdown.replace(/^\* (.*$)/gm, '<li>$1</li>'); | |
markdown = markdown.replace(/^- (.*$)/gm, '<li>$1</li>'); | |
return markdown; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment