Laravel&html笔记-MarkDown增加展示时代码高亮功能

x33g5p2x  于2022-07-26 转载在 其他  
字(1.7k)|赞(0)|评价(0)|浏览(248)

结论

折腾了几个小时,很简单的功能,方向错了。在此记录下,实现的功能是这样的。

将这样的效果:

转成这样的效果:

这里我在前端添加了点css和js

<link href="https://cdn.jsdelivr.net/npm/prismjs@v1.x/themes/prism.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/prismjs@v1.x/components/prism-core.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@v1.x/plugins/autoloader/prism-autoloader.min.js"></script>

思路

这里我使用MarkDown转html的是用了Laravel8自带的语法:

{!! \Illuminate\Support\Str::markdown($article->content) !!}

结果总是这样的效果:

因为国内用Laravel8不多,并且资料也少。

这里这个方法是将GitHub flavored MarkDown转成html,难道GitHub上的MarkDown都没有代码高亮??

对此一直在外网找Laravel markdown 代码高亮的功能。一直没有找到解决方案。心态就有点不太好了,难道是自己找问题的方向出现了问题!!

但在一次调试中发现:

Laravel竟然把这个代码块添加了一个class,并且设置了language-php,这样是不是说明,其实有个前端css,去渲染这个class就完成了代码块高亮的功能!!!

突然间发现了新的路线,我这个MarkDown edit用的是这个ui:totast-ui

在官网找了下:

这个高亮代码功能是由Prism.js提供。

难道这个totast-ui要引入几个文件,我忘记引入了???

算了不管啦。直接cdn引入吧。进prism.js直接CDN把,个人项目,开发灵活点。

所以直接引入这三条就可以了。

将:

<!DOCTYPE html>
<html>
<head>
	...
	<link href="https://{{cdn}}/prismjs@v1.x/themes/prism.css" rel="stylesheet" />
</head>
<body>
	...
	<script src="https://{{cdn}}/prismjs@v1.x/components/prism-core.min.js"></script>
	<script src="https://{{cdn}}/prismjs@v1.x/plugins/autoloader/prism-autoloader.min.js"></script>
</body>
</html>

中cdn的部分替换为

<link href="https://cdn.jsdelivr.net/npm/prismjs@v1.x/themes/prism.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/prismjs@v1.x/components/prism-core.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@v1.x/plugins/autoloader/prism-autoloader.min.js"></script>

即可。

相关文章

微信公众号

最新文章

更多