Skip to content

Instantly share code, notes, and snippets.

@itsmikita
Created February 27, 2024 03:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save itsmikita/64429fe5ce6df24f2a84991047051a01 to your computer and use it in GitHub Desktop.
Save itsmikita/64429fe5ce6df24f2a84991047051a01 to your computer and use it in GitHub Desktop.
Markdown to HTML
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