文章目录

  • 关于为什么使用markdown-it插件
  • 中途的问题

关于为什么使用markdown-it插件

这里是github官网,点击进入
首先在npm插件官网上看了一下,当然上面的链接也是在npm官网进入的。

可以看到mrakdown-it插件的下载量是相当高的,包括我一开始曾尝试过使用mavon-editor插件来实现自己的博客,但是很遗憾的是这个插件的使用本身出了很大问题,而且不太适合我的需求。
其实mavon-editor本身也是使用的markdown-it来实现的:

所以最终干脆选择了markdown-it来直接实现博客模块。

中途的问题

在使用markdown-it的过程中出现了相当多的问题,光是看官方文档是不足以真正使用该插件的。
点击进入markdown-it中文官网
更多是通过debugger进入代码进行查看:

在调式的过程中突然发现了一个特殊的变量 state

state变量中保存着原本读取出的markdown文本,同时也是在源代码中出现的重要的一个变量,该变量记录着多个数值。这个变量是一个StateBlockstate_block.js之中)实例。

之后在查阅源代码再结合官方文档的解释,再加上其他人的博客解释才发现本身markdown-it整个过程只要存在两个过程:

  • 解析过程:定义在目录ruler_blockruler_inlineruler_core
  • 渲染过程:主要定义在根目录的js文件renderer.js中,但是该过程打开源码后比起解析过程来说几乎简单的过分:
var default_rules = {};default_rules.code_inline = function (tokens, idx, options, env, slf) {code ...
};default_rules.code_block = function (tokens, idx, options, env, slf) {var token = tokens[idx];return  '<pre' + slf.renderAttrs(token) + '><code>' +escapeHtml(tokens[idx].content) +'</code></pre>\n';
};default_rules.fence = function (tokens, idx, options, env, slf) {code ...
}...

所以我判断,官方肯定会留下对于DOM的渲染接口和方式交给我们自己实现。

但是在百度了之后却没有得到什么好的,或者说足够好的方式,所以我只好重新开始了debugger和查阅源码的方法进行寻找。

在这里我注意到了官方文档中的一个有意思的参数:tokens参数,在用*console.log(tokens)*后,果然发现了一些有趣的东西:

tokens中包含了所有的节点元素解析好之后的值,同时也有可以进行复写的规则名称,你可以这样复写:

module.exports = function cssPlugin (md, options) {var blockquoteRenderer = function (tokens, idx, options, env, renderer) {return '<blockquote style="color: blue; padding-left: 10px">'}md.renderer.rules.blockquote_open = blockquoteRenderer
}

在这里基本每一种DOM元素节点都会对应着两种规则[DOM_NAME]_open[DOM_NAME]_close,你可以任意改写渲染方式。

当然如果仅仅只是给原本难看的界面加点样式之类的,还可以使用另外一种方式:

使用 Token.attrSet(),这里就可以查阅官方中文文档了解了。

module.exports = function cssPlugin (md, options) {var blockquoteRenderer = function (tokens, idx, options, env, renderer) {tokens[idx].attrSet('style', 'color: blue; padding-left: 10px')return md.renderer.renderToken(tokens, idx, options, env, renderer)}md.renderer.rules.blockquote_open = blockquoteRenderer
}

在这里基本之前的问题就得到了解决了,之后还出一篇讲Katex渲染的文章。

使用markdown-it插件相关推荐

  1. vim 环境写 markdown 的插件推荐

    vim 环境写 markdown 的插件推荐 本文将介绍在vim环境写markdown文档或者博文的一些好用插件 markdown语法高亮及识别 博主使用vim-markdown做语法高亮.安装方法很 ...

  2. vscode Markdown TOC 插件生成目录去除autoauto

    vscode Markdown TOC 插件生成目录去除autoauto 一.插件安装 二.配置去除autoauto vscode Markdown TOC 插件生成目录去除autoauto 日常在使 ...

  3. 异常强大的Markdown编辑插件-Markdown Preview Enhanced

    最近使用Markdown写作,了解到以下这些Markdown写作工具 MaHua 在线markdown编辑器 百度搜索Markdown时,它排在非常靠前的位置 马克飞象- 专为印象笔记打造的Markd ...

  4. markdown绘图插件----mermaid简介

    作者:黄永刚 mermaid简介 当撰写文档的时候,对于流程图的生成大多使用Visio等繁重的工具,没有一种轻便的工具能够画图从而简化文档的编写,就像markdown那样. mermaid解决这个痛点 ...

  5. markdown绘图插件 ---- mermaid简介

    mermaid简介 当撰写文档的时候,对于流程图的生成大多使用Visio等繁重的工具,没有一种轻便的工具能够画图从而简化文档的编写,就像markdown那样. mermaid解决这个痛点,这是一个类似 ...

  6. chrome浏览器安装markdown浏览插件

    chrome本身是不支持markdown浏览的,打开.md文件,是长这样的 然后,我们安装chrome的插件. 在谷歌应用商店里,搜索Markdown. 安装第二个Markdown Viewer. 然 ...

  7. 【实测可用】含公示的知乎文章转markdown格式 插件推荐

    插件位置:https://getquicker.net/sharedaction?code=7af26e99-4f6f-42b6-08ad-08d91c1f78c6 安装方式: 先安装quicker ...

  8. 使用 Vue3 + vite + elementUI 开发一个 Utools Markdown 编辑器插件

    文章目录 目的 开发文档整理 基础工具的集成 初始化项目 框架引入 按需引用和 SASS 引入验证 utools 开发配置 调试和打包插件 功能实现 依赖库的安装调用 布局实现 Editor.vue ...

  9. [VSCode] 编辑 markdown 推荐插件

    编辑 md markdown all in one - 提供数学公式支持 markdownlint - 提供严格的 md 书写规范 Github Markdown Preview - 把 vscode ...

  10. pycharm中安装可以贴图片的Markdown插件

    方法一:(测试成功) 先安装官方推荐的Markdown support插件,再安装Paste images into MarkDown 如果Paste images into MarkDown插件在线 ...

最新文章

  1. mysql嵌入式语句_MySQL/MariaDB 语句速查笔记
  2. Coursera吴恩达《优化深度神经网络》课程笔记(1)-- 深度学习的实用层面
  3. 分享Java面试中的几个重要基础问题
  4. python华为面试题10个人数3获取下标
  5. SAP Cloud for Customer ABSL的一些优化
  6. Raft协议选举核心思想
  7. Mysql数据恢复有哪几种_MYSQL 数据恢复有哪些
  8. CH340以及CH系列USB转串口驱动下载
  9. matlab线性规划系列之基础解题
  10. 【云服务器安全加固】
  11. matlab什么样的数表示0,matlab里a(i)~=0什么意思
  12. 利好:北京医改鼓励医生个体行医异地行医
  13. 微信公证号授权给微信开放平台(第三方平台)开发流程 PHP (基于laravel框架开发)
  14. <Mac>怎么删除Mac启动台里带问号的图标
  15. 哒哒租车系统(慕课网学习)
  16. 短视频平台达人为什么那么赚钱?
  17. 【爬虫系列】Python 爬虫入门(2)
  18. C#桌面办公应用-工资管理系统系列五
  19. 真是无语二手房可以这样逃税
  20. 零基础也能学会的微信小程序制作动态搜索页

热门文章

  1. 期货期权股票资管分仓系统
  2. 杭州女程序员自述:疫情之下被迫离职,仲裁说理被公司索赔百万
  3. 磁盘驱动属于计算机的,计算机基本知识(8005)---HDD(硬盘驱动器Hard Disk Drive)
  4. 美国大学生解释为什么那么喜欢snapchat
  5. Codeforces Gym 100015A Another Rock-Paper-Scissors Problem 找规律
  6. 2021 Geek re
  7. android 记事本上功能,安卓手机上有多功能记事本app吗?
  8. 怎么恢复计算机文件查看方式,win7电脑打开方式怎么还原?win7电脑还原打开方式的方法...
  9. 微新小程序封装wx.request (使用回调函数)
  10. 【UE4(虚幻)】学习笔记(六)----蓝图接口、事件分发器、子弹击打不同物体会有不同效果的实现思路、 数据表的使用与背包框架的搭设