当前位置:首页 > 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实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…