搭建好博客后,我尝试将在优快云写的博客迁移到我的个人博客中,发现了一些问题。
一、关于hexo不支持latex渲染的问题
有的主题已经进行过渲染,可以正常使用,对于没有渲染的主题,可以使用以下方法:
方法1
hexo根目录\scaffolds\post.md目录中添加如下代码,这样就能保证latex以后会在所有文章中生效:
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
方法2
使用npm install hexo-renderer-markdown-it-plus --save
安装插件,并在hexo配置文件中添加对应的配置:
# _config.yml
markdown:
render:
html:
plugins:
- markdown-it-abbr
- markdown-it-container
- markdown-it-deflist
- markdown-it-emoji
- markdown-it-footnote
- markdown-it-ins
- markdown-it-mark
- markdown-it-sub
- markdown-it-sup
- markdown-it-task-checkbox
二、图片无法显示问题
第一反应就是路径问题,因此我调整了图片的路径。多次尝试以后发现了一个事情:hexo资源路径的根目录是hexo g
生成的public
目录,其中图片的位置是public/img/
目录下,md文件在public/posts/
目录下,因此在写图片路径的时候,要写成../img/xxx.png
的形式。
三、字体更改问题
主题所提供的字体往往不够,这里提供一种更改字体的方法。
- 在hexo根目录的source文件夹中新建css、font文件夹
- 下载一个没有版权的字体,可以去无版权字体下载自己想要的字体到font文件夹中
- 配置css文件:
@font-face {
font-family: 'fzkt'; //fzkt是字体的名字,可以换
src: url('../font/fzkt.ttf') format('truetype');//format根据你下载下来的字体的后缀就可以确定
}
- 修改主题配置文件,找到对应的位置并作出修改
# Inject
# Insert the code to head (before '</head>' tag) and the bottom (before '</body>' tag)
# 插入代码到头部 </head> 之前 和 底部 </body> 之前
inject:
head: # head一般引入css文件
- <link rel="stylesheet" href="/css/custom-font.css?1">
# href链接?后边的参数随便,当更改文件时再随便换一个就可以,这样可以避免使用本地缓存,使修改及时生效
# bottom: 一般引入js文件
四、配置搜索
npm install hexo-generator-search --save
安装插件,然后再主题配置文件中添加如下参数:
search:
path: search.xml
field: post
content: true
template: ./search.xml
官方文档说在root中修改参数,我在blog目录修改时发生了错误,就在主题配置文件中修改,然后就可以运行了。
五、集成gitalk评论
npm i --save gitalk
安装gitalk- 新建个一GitHub仓库
- 创建GitHub Application,可以在这里创建
其中Application name
写仓库名字就可以,Homepage URL
和Authorization callback URL
填写你博客的地址,最后勾选Enable Device Flow就创建完成了。此时可以生成Client secrets
准备工作做好了,接下来去修改主题配置文件即可:
gitalk:
client_id: '第3步中创建的GitHub Application,里面的client_id'
client_secret: '也是第3步中生成的client_secret'
repo: '仓库名字'
owner: 'GitHub用户名'
admin: ['GitHub用户名']
option: # 不用填
若配置后出现 未找到相关的issue评论,请联系xxx初始化创建 的问题,登录github账号即可。要注意的是,此时要预览效果不能仅在本地服务器,需要部署到GitHub才能看到效果。