每当在一些markdown编辑器写完文章后,由于常用到LaTeX要用到大量下划线,所以在发文章前要在文章所有下划线前加反斜杠才不会乱。这样hexo的md就和所写的纯md不一样了。
hexo自带的markdown渲染引擎对于一些复杂的公式无法支持渲染,这让我很头疼,写好的公式还要截成图才能发布。如何使用其他的markdown渲染引擎?
走同样的路,发现不同的人生
謝謝h404bi的回答,這個坑也很久了,現在補上…
主要是在一些md編輯器上編輯的文章粘到hexo,若加上{% raw %}{% endraw %}之類的就和原文章不同,每次發布都要修改=_=後來找到一個方法,直接修改Markdown的內容:
{% raw %}{% endraw %}
該衝突主要是由於對 和 _ 的轉義造成的。找到 marked 腳本檔, 通常在
hexo\node_modules\marked\lib\marked.js
先備份一下,然後再修改第449行
escape: /^\([\`*{}\[\]()#+\-.!_>])/,
為
escape: /^\([`*\[\]()#+\-.!_>])/,
第847行
return '<em>' + text + '</em>';
修改為:
return '_' + text + '_';
不推薦,但目前我就是這樣解決的。
Hexo 預設選用是 Markdown 渲染引擎是 marked (hexo-renderer-marked)。
除了預設的marked,目前在Hexo 上已有的其它比較好且還在維護的Markdown 渲染引擎也就有hexo-renderer-markdown-it 和hexo-renderer-pandoc,其中前者markdown-it 支援CommonMark 標準,後者則支援Pandoc(標記語言轉換器,我沒用過,但看了下好像是支援LaTeX 轉HTML 的)。
CommonMark
Pandoc
寫公式的話可以試試 MathJax 吧,MathJax 渲染器在 Hexo 上的實作也有的。具體自行Google:Hexo MathJax。
如何使用別的 Markdown 渲染引擎。把 hexo 裡 package.json 的 Markdown 渲染器依賴換掉就行了,例如 hexo-renderer-marked 換成 hexo-renderer-markdown-it。
package.json
hexo-renderer-marked
hexo-renderer-markdown-it
對了,避免底線反斜線的話,可以試試 Hexo 自帶的 Tag Plugins。 {% raw %}{% endraw %} 內的內容不會被渲染。
主要是在一些md編輯器上編輯的文章粘到hexo,若加上
{% raw %}{% endraw %}
之類的就和原文章不同,每次發布都要修改=_=後來找到一個方法,直接修改Markdown的內容:該衝突主要是由於對 和 _ 的轉義造成的。找到 marked 腳本檔, 通常在
先備份一下,然後再修改第449行
為
第847行
修改為:
不推薦,但目前我就是這樣解決的。
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 上的實作也有的。具體自行Google:Hexo MathJax。
如何使用別的 Markdown 渲染引擎。把 hexo 裡
package.json
的 Markdown 渲染器依賴換掉就行了,例如hexo-renderer-marked
換成hexo-renderer-markdown-it
。對了,避免底線反斜線的話,可以試試 Hexo 自帶的 Tag Plugins。
{% raw %}{% endraw %}
內的內容不會被渲染。