当前位置:首页 > JavaScript

markdown js实现

2026-04-05 16:51:20JavaScript

在JavaScript中实现Markdown解析和渲染可以通过多种方式完成,以下是几种常见的方法:

使用现成的Markdown解析库

marked.js
安装marked.js库:

npm install marked

使用示例:

const marked = require('marked');
const html = marked.parse('# Hello Markdown!');
console.log(html); // 输出: <h1>Hello Markdown!</h1>

markdown-it
安装markdown-it库:

npm install markdown-it

使用示例:

const md = require('markdown-it')();
const html = md.render('# Hello Markdown!');
console.log(html); // 输出: <h1>Hello Markdown!</h1>

自定义简单的Markdown解析器

以下是一个简单的自定义Markdown解析器示例,仅支持标题和段落:

function parseMarkdown(markdown) {
    return markdown
        .replace(/^# (.*$)/gm, '<h1>$1</h1>')
        .replace(/^## (.*$)/gm, '<h2>$1</h2>')
        .replace(/^### (.*$)/gm, '<h3>$1</h3>')
        .replace(/^(?!<h[1-3]>)(.*$)/gm, '<p>$1</p>');
}

const html = parseMarkdown('# Title\nThis is a paragraph.');
console.log(html);

在浏览器中实时渲染Markdown

结合HTML和JavaScript实现实时渲染:

<textarea id="markdown-input" rows="10" cols="50"># Hello Markdown!</textarea>
<div id="html-output"></div>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script>
    document.getElementById('markdown-input').addEventListener('input', function() {
        const markdown = this.value;
        const html = marked.parse(markdown);
        document.getElementById('html-output').innerHTML = html;
    });
</script>

支持数学公式的Markdown渲染

结合markdown-it和mathjax支持数学公式:

markdown js实现

const md = require('markdown-it')({
    html: true,
    linkify: true,
    typographer: true
}).use(require('markdown-it-mathjax')());

const html = md.render('Euler\'s formula: $e^{i\\pi} + 1 = 0$');
console.log(html);

注意事项

  • 使用现成的库如marked.js或markdown-it可以覆盖大多数Markdown语法需求。
  • 自定义解析器仅适合简单需求,完整实现需要处理大量边缘情况。
  • 数学公式需要额外插件或库支持,如MathJax或KaTeX。

标签: markdownjs
分享给朋友:

相关文章

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…

js实现导航菜单

js实现导航菜单

使用HTML和CSS创建基础结构 导航菜单的基础结构通常由HTML的无序列表(<ul>)和列表项(<li>)组成,每个列表项包含一个链接(<a>)。CSS用于样式化…