网站首页 > 技术文章 正文
前言
最近准备搭建一个简单的文档平台,用于组内的文档管理。作为一个程序员,大多数情况下咱们写文档使用的都是markdown语法,比如wiki、hexo、github,然后在浏览器上展示。
目前大部分的编辑器都有自己的markdown插件并支持实时预览,如下图,
此图是vscode编辑器,左侧是markdown文件,右侧是实时预览的界面,咱们这次的目标就是将markdown在浏览器上展示成这个样式。
marked
为了将markdown在浏览器上展示就必须先将markdown转化为html,有了明确的需求就可以去网上搜寻一下工具,我们很容易就能找到一个使用非常频繁的工具——marked。
如图2,它支持在页面中编译markdown代码,但是我们更希望先在后台完成编译的工作再将编译的产物放到页面中使用,这样页面的性能会提示一丢丢,因此我们使用它的node方式。
如图3,node编译markdown的步骤也十分简单,仅需以下几步,
- 配置marked参数
- 读取md内容
- 编译
如图4,左侧是markdown编译后的html,右侧是在浏览器中展示的情况,此时完全没有任何样式,所以我们还需要为它配置主题。我们选用最流行的样式——github-markdown-css,把它引入到文件中,再看看效果。
现在页面已经有样式了,和github的readme展示的样式一样,但是你会发现两个问题,
- 有些markdown语法不支持,比如表格
- 代码片段并没有高亮,如图5
注意:编译产物最外层需要包一层容器,容器的class名字为markdown-body,否则样式不生效。
markdown-it
为了解决上面第一个问题,我们将marked模块换成markdown-it模块,用法如下,
此时markdown的大部分语法都已经支持了,但仍有个别语法不支持,不过不要紧,我们可以将markdown-it的html参数设置为true,这样用户可以直接用html语法写markdown。
prism.js
代码块没有高亮是不可接受的,这会让同志们的浏览欲望大大降低。对比了一下highlight.js,我选择了prism.js。不为别的,就是因为它满足了我的要求。有人说prismjs比highlight.js对样式控制的更精细,不过I don't care it。
如图7,我一眼就看中了这个主题,有趣。那还等什么,直接把js和css都down下来,引入页面。现在咱们再去看看效果,如下图,
和我的编辑器主题一样。
到这里我们已经完成了我们的需求。
总结
将markdown转化为html其实就两步,一是选择编译工具,需要尽可能多的支持markdown语法,二是选主题,需要看着养眼。
喜欢我的文章就关注我吧,有问题可以发表评论,我们一起学习,共同成长!
猜你喜欢
- 2024-12-27 汽车ABS泵体出现问题不报警,越想越害怕
- 2024-12-27 织梦DEDECMS限制标题长度后鼠标移到标题显示完整的title
- 2024-12-27 工业屏:千万不要以为电脑显示啥样,工业屏就啥样,注意色差。
- 2024-12-27 宝马320三元催化器前端烧得通红,故障灯报警
- 2024-12-27 修复Mac系统图片预览缩略图不生效的问题
- 2024-12-27 前端经验-如何在p元素中展示固定行数的文字,超出部分显示省略号
- 2024-12-27 基于 Vue+D3.js 可视化柱状动态排名
- 2024-12-27 众泰报节气门前漏气 节气门前漏气有什么症状
- 2024-12-27 Web前端【超出隐藏与显示】多种解决方案集锦
- 2024-12-27 如何让*符号在文本框内垂直居中显示
你 发表评论:
欢迎- 05-30为什么说网上的md5加密解密站都是通过彩虹表解密的?
- 05-30一文读懂md5,md5有什么用,什么是md5加盐
- 05-30Java md5加密解密数据
- 05-30MD5是什么?如何进行MD5校验?
- 05-30专家教你简单又轻松的MD5解密方法,一看就会
- 05-30多学习才能多赚钱之:vscode怎么安装插件
- 05-30VSCode无限画布模式(可能会惊艳到你的一个小功能)
- 05-30VSCode神级Ai插件Cline:从安装到实战【创建微信小程序扫雷】
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)