自己摸索阶段
封面问题一直困扰着我,我的思路是在负责生成对应html文件的ejs文件那里,找到每次渲染网页的时候,post封面这个部分是用哪个路径路径的图片渲染的。也就是说我默认了一个图片想要成为post的cover,是要存放在固定文件夹、有固定图片格式和命名规则的。这个思路和我更换网页背景图片的思路一脉相承,听起来很合理不是吗?
于是我下载了WebStorm,虽然没有一点JavaScript功底但是硬看,期间还看了一点HTML,只为找到那个路径和命名。
寻找过程中我知道默认封面的名字为default_cover
,我猜自定义cover的路径会和默认封面的路径并列存在,所以我直接在每一个ejs文件中搜索default_cover
。果然经验是正确的,自定义封面和默认封面在一句代码里被同时提及,但是这个自定义封面的引用形式并不是我想象中的.../somefolder/cover.png
这样的形式,而是一个干巴巴的post.cover
。
所有人都能一眼看出,哦这是一个专属于这个post的封面,但是美中不足的是,我还是不知道我该怎么把一个图片设置为所谓的post.cover
。
我猜测post
是一个class
之类的,只要找到其定义,就可以知道它接收那种格式的参数,就还有操作空间。于是我找啊找,钻破头地去找关于post
的定义,结果一无所获,整个blog文件里就没有python或者cpp里那种一个类别的明确的定义。
被ai一点通了
实在无奈,截了一段包含利用post.cover
给post设置封面的ejs代码片段,喂给ai请它帮忙解读。本来我是没抱希望的,但是我刚刚提出我想换封面,它就告诉我,这个post.cover
,以及和post有关的例如post.title
、post.category
,是在文章开头的esj代码段里定义的。
所以其实我一直在找esj文件里的关于post的定义,没想到它是在每一篇post.md
里定义的。我立马感叹学艺不精,还得多练。我在看一种于我而言全新的代码,它很灵活,我切不能被以前看c代码获取的经验套住了。
现在尝试换封面
扯了那么多我的探索,现在是时候试一下ai说的更换封面的方法了!
多次尝试
第一次尝试并不成功,没有换上我想要的,但是确实是影响了封面:
猜测是因为我设定的是jpg格式,我要试试把相同的图片转换为和default_cover一样的格式。
还是不成功,截图懒得贴了
可能是路径出了问题,比较我现在用的是相对路径,会不会用绝对路径好一点?
还是不行,怒而查看网页源代码,发现图片名字是对的,source是错的??
不好好听别人的建议导致的
回看ai的建议,发现自己文件夹路径建错了,也不是相对和绝对路径的问题,因为无论放什么,hexo都会对文件路径进行二次加工,在前面加上一串默认的源文件夹路径。所以一开始错误的相对路径导向错误的绝对路径,正确的绝对路径导向狗屁不是的诡异路径。多的不说了,我是🤡。
以下是效果图:
ps:后续发现jpg也是可以的
pps:后后续发现gif也是可以的,太🐓⑧搞笑了