关闭

markdown-it大揭秘:轻松玩转文本格式化新神器

发表于:2024-4-15 09:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:天蓝色的鱼    来源:前端历险记

#
前端
  最近在工作中遇到了接口返回 markdown 语法的文本在页面中展示的场景,我选择了使用 markdown-it 这个库来处理,下面给大家做个分享。
  一、markdown-it简介
  markdown-it是一款功能强大的Markdown解析器,支持丰富的Markdown语法,能够轻松将Markdown文本转换为HTML格式。它拥有丰富的插件和配置选项,让你的文档编辑更加灵活多变。
  二、markdown-it安装与使用
  1.安装markdown-it
  你可以通过npm(Node.js包管理器)来安装markdown-it。在命令行中输入以下命令:
  npm install markdown-it
  安装完成后,你就可以在你的项目中引入markdown-it了。
  2.使用markdown-it
  在JavaScript中,你可以通过以下方式使用markdown-it:
  const markdownIt = require('markdown-it')();
  const md = markdownIt.render('# Hello, markdown-it!');
  console.log(md);
  运行上述代码,你会在控制台看到以下HTML输出:
  <h1>Hello, markdown-it!</h1>
  三、markdown-it的详细用法与配置介绍
  1.基本用法
  markdown-it支持大部分标准的Markdown语法,如标题、段落、列表、链接、图片等。以下是一些示例:
  ·标题:# 一级标题、## 二级标题
  · 段落:直接输入文本即可
  · 列表:使用-或*开头表示无序列表,使用数字加.开头表示有序列表
  · 链接:[链接文字](http://example.com)
  · 图片:![图片描述](http://example.com/image.jpg)
  2.扩展用法
  除了基本语法外,markdown-it还支持一些扩展语法,让你的文档更加丰富多彩。以下是一些常用的扩展语法:
  · 表格:使用|分隔列,使用-表示表头
  · 脚注:使用[^脚注]添加脚注,在文档末尾使用[^脚注]: 脚注内容定义脚注内容
  · 任务列表:在列表项前添加[ ]或[x]表示任务未完成或已完成
  3.配置介绍
  markdown-it的配置功能强大且灵活,可以满足不同的解析需求。以下是markdown-it的配置选项:
  (1) 预设配置
  markdown-it提供了预设配置,以便快速启用/禁用常用语法规则和选项。例如,你可以使用"commonmark"模式将解析器配置为严格的CommonMark模式。启用该模式的方法如下:
  var md = require('markdown-it')('commonmark');
  默认配置(如果省略参数)和所有可用选项的启用方式如下:
  var md = require('markdown-it')({
    html: true,   // 在源码中启用 HTML 标签
    linkify: true, // 自动识别链接
    typographer: true // 启用一些语言学的替换和格式
  });
  (2) 自定义配置
  除了预设配置,你还可以根据需求自定义配置。例如,你可以通过options对象来启用或禁用某些功能:
  var md = require('markdown-it')({
    html: false, // 禁用 HTML 标签
    xhtmlOut: false, // 不使用 '/' 来闭合单标签
    breaks: true, // 将连续的两个换行转换为 `<br>` 标签
    // 其他选项...
  });
  (3) 插件
  markdown-it的扩展性主要来自于其丰富的插件生态系统。你可以通过安装和使用插件来添加更多功能,例如支持数学公式、流程图、图表等。
  // 引入插件
  var markdownIt = require('markdown-it')();
  var plugin = require('markdown-it-plugin');
  // 使用插件
  markdownIt.use(plugin);
  比如自己写个自定义处理链接的插件:
  function markdownItCustomLink(md, options) {
    md.renderer.rules.link_open = function (tokens, idx, options, env, self) {
      const hrefIndex = tokens[idx].attrIndex("href");
      const href = tokens[idx].attrs[hrefIndex][1];
      // const text = tokens[idx + 1].content;
      // 返回一个自定义组件的标签,其中包含 href 和文本内容
      return `<span class="md-link-to-span" data-num="${href}">${href}</span>`;
    };
    md.renderer.rules.link_close = function () {
      // 不需要返回任何内容,因为在 open 标签中已经完成了所有工作
      return "";
    };
  }
  module.exports = markdownItCustomLink;
  四、markdown-it与其他工具的结合使用
  markdown-it可以与其他工具结合使用,提高你的工作效率。例如,你可以将markdown-it与前端框架结合,将Markdown文本转换为HTML后直接渲染在页面上。此外,你还可以将markdown-it与编辑器结合,实现实时预览和编辑Markdown文档的功能。
  五、总结
  markdown-it以其强大的解析能力和丰富的配置选项,成为Markdown文档编辑的得力助手。通过掌握markdown-it的基本语法、扩展语法以及配置方法,你将能够轻松驾驭文档编辑,提升工作效率。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号