关键词搜索

源码搜索 ×
×

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

发布2022-07-25浏览846次

详情内容

结论

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

将这样的效果:

转成这样的效果:

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

  1. <link href="https://cdn.jsdelivr.net/npm/prismjs@v1.x/themes/prism.css" rel="stylesheet" />
  2. <script src="https://cdn.jsdelivr.net/npm/prismjs@v1.x/components/prism-core.min.js"></script>
  3. <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把,个人项目,开发灵活点。

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

将:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. ...
  5. <link href="https://{{cdn}}/prismjs@v1.x/themes/prism.css" rel="stylesheet" />
  6. </head>
  7. <body>
  8. ...
  9. <script src="https://{{cdn}}/prismjs@v1.x/components/prism-core.min.js"></script>
  10. <script src="https://{{cdn}}/prismjs@v1.x/plugins/autoloader/prism-autoloader.min.js"></script>
  11. </body>
  12. </html>

 中cdn的部分替换为

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

即可。

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载