使用markdown-it和highlightjs渲染markdown文件

33 篇文章 0 订阅
19 篇文章 0 订阅

1.到https://highlightjs.org下载highlightjs文件

选择

bash、c、cpp、csharp、css、java、javascript、json、python、shell、sql、xml、yaml

2.引入js和css

引入 highlight.js 的样式:

<link href="https://cdn.bootcdn.net/ajax/libs/highlight.js/11.10.0/styles/default.min.css" rel="stylesheet">

引入 Markdown-it 和 highlight.js

<script src="https://cdn.bootcdn.net/ajax/libs/markdown-it/13.0.2/markdown-it.js"></script>

<script src="highlight.min.js"></script>

3.完整例子demo.html,其中example.htm存放的是markdown内容,使用fetch获取example.htm内容再渲染

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Markdown-it Browser Example</title>
  <!-- 引入 highlight.js 的样式 -->
  <link href="https://cdn.bootcdn.net/ajax/libs/highlight.js/11.10.0/styles/default.min.css" rel="stylesheet">
  <!-- 引入 Markdown-it 和 highlight.js -->
  <script src="https://cdn.bootcdn.net/ajax/libs/markdown-it/13.0.2/markdown-it.js"></script>
  <script src="highlight.min.js"></script>
</head>
<body>
  <div id="content"></div>

  <script>
    // 创建 Markdown-it 实例并使用 markdown-it-highlight 插件
    var md = window.markdownit();
    md.set({
      highlight: function (str, lang) {
        if (lang && hljs.getLanguage(lang)) {
          try {
            return '<pre class="hljs"><code>' +
                   hljs.highlight(lang, str, true).value +
                   '</code></pre>';
          } catch (__) {}
        }

        return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
      }
    });

    // 示例 Markdown 文本
     

	fetch('example.htm')
	  .then(response => {
		if (response.ok) {
		  return response.text();
		}
		throw new Error('Network response was not ok.');
	  })
	  .then(markdownContent => {
		// 这里处理Markdown内容
		console.log(markdownContent);
		const markdownText = markdownContent;
		// 渲染 Markdown 为 HTML
		const html = md.render(markdownText);

		// 将渲染后的 HTML 插入到页面中
		document.getElementById('content').innerHTML = html;

		// 初始化 highlight.js
		hljs.highlightAll();

	  })
	  .catch(error => {
		console.error('There has been a problem with your fetch operation:', error);
	  });

    
  </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

svygh123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值