markdown-it大揭秘:輕松玩轉(zhuǎn)文本格式化新神器!
最近在工作中遇到了接口返回 markdown 語法的文本在頁面中展示的場(chǎng)景,我選擇了使用 markdown-it 這個(gè)庫來處理,下面給大家做個(gè)分享。
一、markdown-it簡(jiǎn)介
markdown-it是一款功能強(qiáng)大的Markdown解析器,支持豐富的Markdown語法,能夠輕松將Markdown文本轉(zhuǎn)換為HTML格式。它擁有豐富的插件和配置選項(xiàng),讓你的文檔編輯更加靈活多變。
二、markdown-it安裝與使用
1.安裝markdown-it
你可以通過npm(Node.js包管理器)來安裝markdown-it。在命令行中輸入以下命令:
npm install markdown-it
安裝完成后,你就可以在你的項(xiàng)目中引入markdown-it了。
2.使用markdown-it
在JavaScript中,你可以通過以下方式使用markdown-it:
const markdownIt = require('markdown-it')();
const md = markdownIt.render('# Hello, markdown-it!');
console.log(md);
運(yùn)行上述代碼,你會(huì)在控制臺(tái)看到以下HTML輸出:
<h1>Hello, markdown-it!</h1>
三、markdown-it的詳細(xì)用法與配置介紹
1.基本用法
markdown-it支持大部分標(biāo)準(zhǔn)的Markdown語法,如標(biāo)題、段落、列表、鏈接、圖片等。以下是一些示例:
- 標(biāo)題:# 一級(jí)標(biāo)題、## 二級(jí)標(biāo)題
- 段落:直接輸入文本即可
- 列表:使用-或*開頭表示無序列表,使用數(shù)字加.開頭表示有序列表
- 鏈接:[鏈接文字](http://example.com)
- 圖片:
2.擴(kuò)展用法
除了基本語法外,markdown-it還支持一些擴(kuò)展語法,讓你的文檔更加豐富多彩。以下是一些常用的擴(kuò)展語法:
- 表格:使用|分隔列,使用-表示表頭
- 腳注:使用[^腳注]添加腳注,在文檔末尾使用[^腳注]: 腳注內(nèi)容定義腳注內(nèi)容
- 任務(wù)列表:在列表項(xiàng)前添加[ ]或[x]表示任務(wù)未完成或已完成
3.配置介紹
markdown-it的配置功能強(qiáng)大且靈活,可以滿足不同的解析需求。以下是markdown-it的配置選項(xiàng):
(1) 預(yù)設(shè)配置
markdown-it提供了預(yù)設(shè)配置,以便快速啟用/禁用常用語法規(guī)則和選項(xiàng)。例如,你可以使用"commonmark"模式將解析器配置為嚴(yán)格的CommonMark模式。啟用該模式的方法如下:
var md = require('markdown-it')('commonmark');
默認(rèn)配置(如果省略參數(shù))和所有可用選項(xiàng)的啟用方式如下:
var md = require('markdown-it')({
html: true, // 在源碼中啟用 HTML 標(biāo)簽
linkify: true, // 自動(dòng)識(shí)別鏈接
typographer: true // 啟用一些語言學(xué)的替換和格式
});
(2) 自定義配置
除了預(yù)設(shè)配置,你還可以根據(jù)需求自定義配置。例如,你可以通過options對(duì)象來啟用或禁用某些功能:
var md = require('markdown-it')({
html: false, // 禁用 HTML 標(biāo)簽
xhtmlOut: false, // 不使用 '/' 來閉合單標(biāo)簽
breaks: true, // 將連續(xù)的兩個(gè)換行轉(zhuǎn)換為 `<br>` 標(biāo)簽
// 其他選項(xiàng)...
});
(3) 插件
markdown-it的擴(kuò)展性主要來自于其豐富的插件生態(tài)系統(tǒng)。你可以通過安裝和使用插件來添加更多功能,例如支持?jǐn)?shù)學(xué)公式、流程圖、圖表等。
// 引入插件
var markdownIt = require('markdown-it')();
var plugin = require('markdown-it-plugin');
// 使用插件
markdownIt.use(plugin);
比如自己寫個(gè)自定義處理鏈接的插件:
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;
// 返回一個(gè)自定義組件的標(biāo)簽,其中包含 href 和文本內(nèi)容
return `<span class="md-link-to-span" data-num="${href}">${href}</span>`;
};
md.renderer.rules.link_close = function () {
// 不需要返回任何內(nèi)容,因?yàn)樵?open 標(biāo)簽中已經(jīng)完成了所有工作
return "";
};
}
module.exports = markdownItCustomLink;
四、markdown-it與其他工具的結(jié)合使用
markdown-it可以與其他工具結(jié)合使用,提高你的工作效率。例如,你可以將markdown-it與前端框架結(jié)合,將Markdown文本轉(zhuǎn)換為HTML后直接渲染在頁面上。此外,你還可以將markdown-it與編輯器結(jié)合,實(shí)現(xiàn)實(shí)時(shí)預(yù)覽和編輯Markdown文檔的功能。
五、總結(jié)
markdown-it以其強(qiáng)大的解析能力和豐富的配置選項(xiàng),成為Markdown文檔編輯的得力助手。通過掌握markdown-it的基本語法、擴(kuò)展語法以及配置方法,你將能夠輕松駕馭文檔編輯,提升工作效率。