搬迁至hexo的记录

punycode deprecated 及泛用的 override

首先用Stackoverflow - chenop: trace deprecated的方法找到是谁在用deprecated的:

1
npx cross-env NODE_OPTIONS=--trace-deprecation npx hexo g

然后在package.json中用overrides来强行更新dependency的dependency:

1
2
3
4
5
6
7
8
9
10
{
//...
"overrides": {
"markdown-it": "^14.1.0",
"warehouse": "^6.0.0",
"glob": "^11.0.1",
"stylus": "^0.64.0"
},
//...
}

这个方法来自于:Stackoverflow - Choco Li

最后还有隐藏的deprecated,在package-lock.json中搜索depreca就能看到了。

mermaid tag

threeq/hexo-tag-mermaid 用的是提前render好的方式,但是需要 build 时就调用 mermaid,带来了很多复杂性。在chatgpt帮助下,我改成了引入 mermaid.js,让客户端渲染的方案sieveLau/hexo-tag-mermaid。格式:

1
2
3
{% mermaid %}
....
{% endmermaid %}

需要修改landscape主题的layout\_partial\head.ejs,引入 mermaid.js:

1
2
3
4
<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.5.0/mermaid.min.js" integrity="sha512-3EZqKCkk3nMLmbrI7mfry81KH7dkzy/BoDfQrodwLQnS/RbsVlERdYP6J0oiJegRUxSOmx7Y35WNbVKSw7mipw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
mermaid.initialize({startOnLoad: true});
</script>