前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >博客的公式渲染问题

博客的公式渲染问题

作者头像
爱编程的小明
发布2022-09-06 14:41:54
9990
发布2022-09-06 14:41:54
举报
文章被收录于专栏:小明的博客小明的博客

Hexo生成的初始博客是支持标签外挂和插入图片的,但是原生的markdown渲染器hexo-renderer-markdowed对于复杂的公式支持并不友好,因此不得不卸载掉原生的markdown渲染方法,本着优化公式显示的原则进行新的渲染的寻找,最终找到的几种解决方案有:

  • hexo-renderer-kramed,支持mathjax,轻量,对hexo的标签外挂也能正常处理,近乎最优解,但是原生的渲染行内公式会有各种奇怪的问题,需要修改源代码中的行内公式匹配规则,csdn上主流的公式渲染问题的解决办法,但是因为我的博客是用githubpages自动生成,因此在安装源包的时候生成网页的行内公式渲染问题无法得到解决。
  • hexo-renderer-markdown-it,据说支持mathjax,但就我安装的体验来看貌似并不支持,另外已经不维护,因此不作为主流备选项。
  • hexo-filter-mathjax一个专门的mathjax渲染,需要再需要渲染的页面添加mathjax:true,渲染效果不错,但是因为本身并不能作为markdown渲染器使用,可以作为一种备选方案。

几经周折已经打消了使用支持mathjax引擎的希望,转入katex,第一个看到的插件就是markdown-it-katex,不得不说速度是真的快,但是对于一些环境例如equation,align等均不支持,考虑到自己博客大量涉及这些环境,因此也并非一种很好的选择。 看到katex的局限之后,其实已经隐约希望有一种能够同时支持mathjax和katex的插件,这个时候第一时间想到的是hexo-filter-mathjax+hexo-renderer-kramed,但是这个存在的问题是katex渲染引擎无论如何不会关闭,换言之开启mathjax引擎后会出现两个公式的渲染结果,这个致命问题不敢继续使用。

想着mathjax和katex兼得的幻想,下一个可选项是hexo-math,这个插件是大部分会推荐的一个插件,同时支持mathjax和katex进行渲染,但是一个问题是公式书写时必须写成标签外挂的形式,因此只作为了一个备选项,并没有投入使用。

想来这些时日hexo博客部署遇到的很多问题都是由于hexo对于markdown的兼容性不是那么好所致,之前有过使用jkelly的体验,很容易就能发现jkelly是相对来说更围绕markdown的语法拓展展开的,hexo的插件做的相对来说有一些些差,最后为了页面的加载速度,我决定使用katex进行加载,幸亏有butterfly主题的加持,一些katex渲染不出来的特殊环境也成功显示(主题配置中mathjax:true),总的来说呈现一种比较理想的加载方式,但是katex的公式渲染始终不是长久之计,可能还存在诸多问题。目前博客得配置中安装的markdown渲染依赖是hexo-renderer-markdown-it-plus,这是一个相对理想的markdown渲染方式,其他的渲染器好像会和butterfly的标签外挂存在冲突?借助markdown-it-katex目前博客可以正常解析,逻辑大概是katex解析优先,mathjax为辅的感觉。下一步公式的渲染策略是使用mathjax进行渲染,hexo-filter-mathjax是一个很不错的选择,至于二者兼得的方式仍有待进一步探索,实在是懒得整了

还有就是图片显示的问题最后也没能很好的解决,之前一直使用的npm install https://github.com/7ym0n/hexo-asset-image —save也是有一些奇怪的问题,最后逼不得已决定直接在source文件夹中创建一个图片的存储路径md_imgs,这个问题的解决以后再议,目前已经解决了大部分问题

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档