hexo+matery搭建个人博客踩坑记录


​ 本次hexo个人博客的搭建参考了大佬洪卫的博客,内容很全,但是在实际搭建中还是遇到了一些坑,这里对这些问题与解决方法进行记录。

一,代码块中行号与代码分离问题

​ 被这个问题困住了好久,始终不知道问题出现在哪里,如下图所示

行号分离

​ 问题解决方法:

​ 网上搜索无果后,打开matery主题的阅读文档看了一遍,发现在网上搜索到的一些解决方法是错误的,真后悔没有早点看文档啊。如下:

image-20210422192958983

​ 看到这里感觉应该是prism.css的适配问题,所以到了prismjs官网一探究竟,果然,想要适配不同的语言进行高亮显示,必须在官网自主对语言进行选择,然后下载定制的css文件以及js文件对项目中的原文件进行替换既可以了,到此问题解决。

二,Markdown文档部署之后图片不显示问题

这里参考了csdn中的博文《hexo博客中插入图片失败——解决思路及个人最终解决办法》

这里对解决步骤进行总结:

  • 将根目录下的_config.yml配置文件中的post_asset_folder中的选项设为true。(该设置可以使hexo new “文件名”创建文章时可以自动生成与文件名相同的文件夹)
  • 设置Typora,如图所示选择复制到指定路径
    设置1
    设置2

框里的路径是:./${filename}./表示当前文件夹,${filename}表示当前文件名。(当往md文件中复制图片时自动将该图片保存在同名目录下)

  • 为项目安装插件(该插件可以从同名文件夹中自动匹配图片的相对路径)
npm install https://github.com/CodeFalling/hexo-asset-image --save
  • 在md文件中直接使用以下语法,直接上图片名称,会自动匹配到同名文件夹下的图片
![img](20200707222506636.png)

在md中图片是无法显示的,只有在项目运行时博客中的文章图片才显示正常,所以本地编辑md文件时,需要将图片的文件夹加入到路径中才可以显示。至此该问题基本解决。

三,matery主题文件中的图标不显示问题

​ 该主题是用的是fontawesome的矢量图,可能有些图标是付费的原因,导致博客中该样式无法加载,从官网下载免费的css样式对以前的样式进行替换,同时使用免费的图标对代码中的图标进行替换,运行之后,问题完美解决。

fontawesome官网

问题解决后的正常显示

四,行号不显示与行号显示错位问题

matery.css文件中加入以下代码可以解决行号不显示问题

pre[class*="language-"].line-numbers {
	position: relative;
	padding-left: 3.8em;
	counter-reset: linenumber;
}

pre[class*="language-"].line-numbers > code {
	position: relative;
	white-space: inherit;
}

.line-numbers .line-numbers-rows {
	position: absolute;
	pointer-events: none;
	top: 0;
	font-size: 100%;
	left: -3.8em;
	width: 3em; /* works for line-numbers below 1000 lines */
	letter-spacing: -1px;
	border-right: 1px solid #999;

	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

}

	.line-numbers-rows > span {
		display: block;
		counter-increment: linenumber;
	}

		.line-numbers-rows > span:before {
			content: counter(linenumber);
			color: #999;
			display: block;
			padding-right: 0.8em;
			text-align: right;
		}

将以下code样式中的font-size注释掉可以解决行号错位问题

code {
    padding: 1px 5px;
    font-family: Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace;
    /*font-size: 0.91rem;*/
    color: #e96900;
    background-color: #f8f8f8;
    border-radius: 2px;
}

五,背景图片重新生成名称

import os

path3 = "路径。。。。"

class ImageRename():
    def __init__(self):
        self.path = path3

    def rename(self):
        filelist = os.listdir(self.path)
        total_num = len(filelist)
        i = 0
        for item in filelist:
            if item.endswith(".jpg") or item.endswith(".png") or item.endswith(".jpeg"):
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(self.path), format(str(i)) + '.jpg')
                os.rename(src, dst)
                print('converting %s to %s ...' % (src, dst))
                i = i + 1
        print('total %d to rename & converted %d jpgs' % (total_num, i))

if __name__ == '__main__':
    newname = ImageRename()
    newname.rename()

后面有什么问题继续在这里记录…….


文章作者:
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 !
评论
评论
评论
  目录