博客踩坑记录
主要来介绍介绍这两天搭建博客当中遇到的一些坑
正文
语言问题
让我想想我踩了几个坑了。在语言上,新版本明明是zh-CN,结果显示出来的确实阿拉伯语。这说明配置的语言文件不能识别,就默认换成排在第一位的阿拉伯语。而旧版的网站上提示用zh-Hans,综合一下,估计需要把next下language中的zh-CN重命名为zh-Hans,再把主题和hexo下的config文件的语言全部更换为zh-Hans即可。
透明度问题、圆角问题、搜索栏被遮掩问题。
圆角也给我搞懵了。看起来似乎是直接全局透明会导致出现阴影,而单独透明不会有这个问题。而菜单栏的透明度是不能用opacity的,否则会出现被其他图层覆盖而不能搜索。
1 | //菜单栏的透明度设置 |
综合来讲,style.styl文件内容如下:
(旧方法,不明确)
1 |
|
(新方法,明确)
1 | style.stl文件如下(要能用需要在config文件里 启用style文件) |
头像问题
老版本不能使用圆形头像,必须要新版本。老版本在18年左右就停更了
cannot get问题
如果是connot get 什么什么%20,则需要把next中配置文件进行修改,举例如下(以tags标签报错为例):
1 | menu: |
修改完之后不再提示20%,但是依旧报错。这时候需要进入gitbash输入
1 | hexo new page "tags" |
在hexo目录下source文件夹中生成tags页面。修改其中tags.md内容为:
1 | --- |
时区问题
就填Aisa/Shanghai,不要乱换。换成Beijing会报错的,不清楚为什么。
标题问题
拿井号设置标题级别的时候空一个再跟文字
图片问题
插入图片
1 | <img src="https://cdnjson.com/images/2023/01/19/SHINKU_e19b.jpg" width="70%" /> |
方法二(不能修改大小,适合本地图片)
1 | ![真红](https://cdnjson.com/images/2023/01/19/SHINKU_e19b.jpg) |
图片圆角
站内图片圆角
请在站点根目录进入source、_data文件夹,如果没有variables.styl文件请手动创建,创建完毕后在其中添加
1 | img { |
或
1 | img { |
第一个表示图片的四个角都是一样的弧度
第二个可以自己手动设定每一个角的弧度
不过要注意,这样设置完后所有文章的图片都会加上圆角
lazyload与pjax冲突
目前使用的均为图床图片,采用外链,故本地上传的他图片问题还没有去解决。
关于外链,出现bug:
首先,我使用的lazyload安装是
1 | npm install hexo-lazyload-image --save |
由于lazyload和pjax之间错综复杂的关系,直接说我也不清楚
按照有位博主的博客来说,这两个插件可能会有冲突,导致第一次图片无法显示,刷新一次才能显示。因此需要把站点配置文件中关于lazyload 的配置加上isSPA: false才可以。
实践发现,确实lazyload和pjax之间有直接联系,设置欠缺会导致冲突。
具体讲,当我开了lazyload和pjax,isSPA: false时,正常进入主页,图片无法加载。只有重复刷新浏览器(手动使用浏览器自带刷新按钮或重输网址)才能恢复
而当我设置isSPA: true时,正常进入网页后主页图片可能正常也可能不正常,如果主页图片正常,当重复刷新浏览器后图片消失,但只要通过左侧菜单栏点击图标重新返回界面,图片就能正常显示。
或者说,只要开了它的true,那不管你图片能不能加载出来,只要用左边的菜单栏操作(比如主页、分类等等,只要不用浏览器自带的刷新按钮或者手动输入网址),图片都可以重新正常加载。
所以,综合前面的经验来看,这个bug基本可以表述如下:
由于同时使用lazyload以及pjax,加上配置少了一项导致发生冲突,图片无法正常显示。需要在lazyload配置中添加isSPA: true才能正常显示(这东西是和enable: true同级的)
但是不管怎么样,一旦手动重新刷新浏览器就会导致图片失效。
如果配置了isSPA: true后只需要点击左侧菜单栏操作就可以恢复,而false或者没有这一条会导致只有通过不断刷新浏览器才有可能恢复正常
手机端暂时没有发现这个bug
另外,由于本地至github的图片加载太慢,所以目前普遍在用图床。要记住如果之后有一些必须要有图片的博客,尽量在本地备份一份图片,防止图床失效导致信息丢失
文章插入网易云音乐
直接把网易云给的那一串什么iframe标签和src那些全给粘过来放到md正文就行了
置顶问题
2023使用Next 8.X版本记录
1 | 3.置顶 |
原本在post.swig里是
1 | <div class="post-meta"> |
改为
1 | <div class="post-meta"> |
亲测网上说的图标设置为fa fa-thumb-tack无效,需要设置成fa fa-thumbtack
Markdown插入代码展示却被执行
比如上面一条的代码,光写内容会显示出来置顶二字和一个图钉。为了要求我们展示的代码不被执行,可以采用```后面紧跟随便一串字符,表示以下代码表示什么语言的代码。你整了个根本没有的计算机语言,自然就不会被执行了。
主题安装
注意解压出来的文件夹要求点开后就得是配置文件所在的目录,你不能在next目录下再套一个只有next文件夹的目录。换句话说,不要套娃
##加注释
使用
1 | <!-- xxxxxxxxxxx --> |
##开头的“—”
在三道杠下空一行再插入内容,不论是图片还是什么,否则换行会失效
Local Search的CDN加速
1 | //需要用到的更新指令(教程中也有的) |
自定义字体问题
到站点source目录”_data”中variables.style中添加以下内容注册字体
1 | @font-face{ |
或
1 | @font-face{ |
注意字体名称用中文会报错
先到这里吧
零散:搭建本博客用到的一些插件/教程
1.pjax用于网易云音乐,表示局部刷新。当正常情况播放网易云音乐时,如果点进其他标签页,会导致播放暂停,因为播放器也被刷新了。
2.插入网易云音乐
3.pjax和lazyload冲突导致图片不能加载
4.圆角、透明:
5.更换背景(实际上这一篇给了非常多的内容,比如live2d,动画评论等等)
6.搭建基础流程
利用Github DIY自己的个人博客
但是,其中有需要改进的地方(跟着他做可能会失败的地方)
①安装nodejs和git不要下载压缩包,就下载一键安装的。自己配置环境变量可能受限于系统的差异导致报错
②安装hexo,要安装npm install -g hexo-cli ,因为按他那样安装的hexo是相对高阶一点的操作,可能会导致和现有的教程冲突
7.文章置顶 https://www.jianshu.com/p/a9922c3ebb61/ 标题:Hexo nexT主题之文章置顶
next8版本请参照正文中置顶的说明
8.删除由hexo&next强力驱动:同5
1 | //事实上可以直接修改主题配置文件 |
9.博客字数统计、浏览人次等
10.文章底部标签从井号变成tag图标:
Next8.16更新
1 | 主题配置下打开 |
1 | //旧版本: |
11.设置网站图标、字体、更改菜单栏点开后英文的方案等
12.插入图片,更改大小(md,html,插件法)
需注意,作者在html部分第三段代码(省略一个量的那个)与实际不符,可能是版本原因,应该只留下width变量
1 | <img src="https://cdnjson.com/images/2023/01/19/SHINKU_e19b.jpg" width="70%" /> |
方法二(不能修改大小,适合本地图片)
1 | ![真红](https://cdnjson.com/images/2023/01/19/SHINKU_e19b.jpg) |
14.换电脑/操作系统后源文件夹发布出现owner报错
即所有者的不一致导致的报错
fatal: detected dubious ownership in repository(已解决)