node.js - hexo 如何解决markdown下划线要加反斜杠,以及如何使用其他markdown的渲染引擎?

 佩刚坤斌冠如_567 发布于 2022-11-05 12:31
  1. 每当在一些markdown编辑器写完文章后,由于常用到LaTeX要用到大量下划线,所以在发文章前要在文章所有下划线前加反斜杠才不会乱。这样hexo的md就和所写的纯md不一样了。

  2. hexo自带的markdown渲染引擎对于一些复杂的公式无法支持渲染,这让我很头疼,写好的公式还要截成图才能发布。如何使用其他的markdown渲染引擎?

2 个回答
  • Hexo 默认选用是 Markdown 渲染引擎是 marked (hexo-renderer-marked)。

    除了默认的 marked,目前在 Hexo 上已有的其它比较好且还在维护的 Markdown 渲染引擎也就有 hexo-renderer-markdown-it 和 hexo-renderer-pandoc,其中前者 markdown-it 支持 CommonMark 标准,后者则支持 Pandoc(标记语言转换器,我没用过,但看了下好像是支持 LaTeX 转 HTML 的)。

    写公式的话可以试下 MathJax 吧,MathJax 渲染器在 Hexo 上的实现也有的。具体自行谷歌:Hexo MathJax。

    如何使用别的 Markdown 渲染引擎。把 hexo 里 package.json 的 Markdown 渲染器依赖换掉就行了,比如 hexo-renderer-marked 换成 hexo-renderer-markdown-it

    对了,避免下划线反斜杠的话,可以试试 Hexo 自带的 Tag Plugins。{% raw %}{% endraw %} 内的内容不会被渲染。

    2022-11-09 22:15 回答
  • 谢谢h404bi的回答,这个坑也很久了,现在补上……

    主要是在一些md编辑器上编辑的文章粘到hexo,若加上{% raw %}{% endraw %}之类的就和原文章不同,每次发布都要修改=_=后来找到一个方法,直接修改 Markdown 的内容:

    该冲突主要是由于对 \ 和 _ 的转义造成的。找到 marked 脚本文件, 通常在

    hexo\node_modules\marked\lib\marked.js

    先备份一下,然后修改第449行

    escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,

    escape: /^\\([`*\[\]()#+\-.!_>])/,

    第847行

    return '<em>' + text + '</em>';

    修改为:

    return '_' + text + '_';

    不推荐,但目前我就是这样解决的。

    2022-11-09 22:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有