关于hexo基础:
https://www.unielu.com/posts/17c9.html
问题1:关于abbrlink
hexo-abbrlink
是一个 hexo 的插件,用于自动生成文章的链接。
出现的问题:
在 hexo 5.4.0
环境下:
该插件 自动生成链接 失效,总为 '0'
找了一半天还是解决不了,于是将版本回退了…
解决方案:
找到 hexo 根目录的 package.json 文件,将两个 hexo 的值都改为 4.2.1
,然后在该目录npm i
即可完成版本回退
在解决问题的过程中,发现:修改插件的代码,可以减少以后的代码量:
打开文件
hexo根目录\node_modules\hexo-abbrlink\lib\logic.js
修改代码,代码就不全贴了,有点长,在合适的位置加入如下代码:
if(!tmpPost.title){
tmpPost.title = last;
}
if(!tmpPost.categories){
tmpPost.categories = "无";
}
if (!tmpPost.tags){
tmpPost.tags = "无";
}
if(!tmpPost.top){
tmpPost.top = 1;
}
if(!tmpPost.summary){
tmpPost.summary = "无";
}
if(!tmpPost.date){
tmpPost.date = data.date.format('YYYY-MM-DD HH:mm:ss');
}
log.i('Auto-fill [%s.md] successful', tmpPost.title);
- 完成的功能:该插件在填充abbrlink时,可以自动填充文章的其他缺失字段
问题2:代码{}显示为{…
关于环境:
- 博客框架:
hexo 5.4.0
- 博客主题:
matery 2.0.0
- 代码高亮插件:
prism_plugin
分析:这应该是代码解析方面的问题,从网上的博客来看,应该是某个地方少了 {
与 {
的替换
解决方案:
- 找到该文件
hexo根目录/node_modules/hexo-prism-plugin/src/index.js
- 替换这部分代码(第8行)
const map = { ''': '\'', '&': '&', '>': '>', '<': '<', '"': '"', '{': '{', '}': '}' };
问题3:博客无法部署到 github
在 hexo 根目录下,需要装一个 git 部署的插件
npm install hexo-deployer-git
然后看 git 的配置:
git config --global user.name "你的github用户名" git config --global user.email "你的github注册邮箱"
检查关于deploy的配置,
在hexo根目录的 _config.yml 中,检查如下代码:deploy: type: git repo: git@github.com: github-username/repo-name.git branch: master
检查ssh密匙
如果C盘用户目录下没有.ssh
文件夹,
如下命令生成:,之后一直回车就行ssh-keygen -t rsa -C "上面填写的邮箱"(注意c必须大写)
之后为整个用户配置密匙,使本地电脑拥有部署权限,
在Github 网页中找到account settings
->SSH and GPG keys
->New Keys
,将 刚刚的.ssh
文件夹下id_rsa.pub
的全部内容复制到 Key 这一栏即可。
问题4:关于CNAME
问题1:部署域名错误
由于更换了域名,每次 hexo d
之后都要去 github仓库 的设置里,更改部署地址。
解决方法:在 hexo 根目录的 source 文件夹下,新建CNAME
文件(无后缀),用记事本打开并输入网站的域名。
问题2:CNAME自动删除
解决方法:像 CNAME
README.MD
这些文件需要放到 hexo 根目录下的 source 文件夹下,
这样,hexo 生成博客网页再部署到 github 上时,这些文件才会出现在 github-repo 的根目录。
CNAME
是关于域名访问的配置的,一般需要README.MD
一般是介绍这个仓库的,仅作为个人博客时可以不添加。
问题5:关于 matery 的 search
出现问题:搜索出来的结果,有的很长,美观不好。
关于插件hexo-generator-search
的分析:该插件主要使用 js
语言 工作,生成一个 search.json
或 search.xml
作为搜索的资源库,
1. 修改配置(可选)
在 hexo 根目录下,将 search.xml 修改为 search.json。
search:
path: search.json
field: post
原因:两种格式的文件,json格式的大小只有xml大小的三分之一,而搜索时要加载这个文件
百度了一下,json作为轻量数据交互格式,比xml更好了
但个人能力有限,修改 search.js时,遇到以下代码无法更改,涉及到 js,ajax,jquery 知识
$.ajax({
url: path,
dataType: "xml",
success: function (xmlResponse) {
// get the contents from search data
var datas = xmlResponse.map(function () {
return {
title: $("title", this).text(),
content: $("content", this).text(),
url: $("url", this).text()
};
}).get();
2. 修改json_generator.js(可选)
所在目录:\node_modules\hexo-generator-search\lib
这样,生成的 search.json 就不是只有一行了,大小 795kb -> 808kb
var json = JSON.stringify(res,null,4);
3. 修改search.js
所在目录:\themes\matery\source\js
主要在 Chrome 里对代码进行调试
发现了个bug,js中 stringObject.substr(start,length),第二个参数不是end。
4. 修改 matery.css
请查看:
https://github.com/blinkfox/hexo-theme-matery/pull/693
问题6:cdn
jsdeiver,只在更新仓库的 tags 时才会更新存储,不然一直用的缓存,主要是 search.xml 时效性需求高(其它文件没啥问题),所以搜索搜不到已有内容的话,就是太久没更新 tags 了
问题7: 图床搭建
2021-12-04
因为原先的 jsdeliver 工具(一款 CDN 工具,博客自带的一款内容分发加速工具)不能及时更新缓存,所以每次图片上传都需要更新 github 仓库的版本号,或者将文章的配图放在 csdn 里面(再使用 CSDN 给出的地址),都挺麻烦的。于是,开始吧~
使用的图床工具:
- PicGo,用 VUE + Electron 做的,这开发出的 exe 的安装界面好亲切(总有个为所有用户安装的选项),想学 Electron…
使用的云服务:
- 腾讯云对象存储COS
创建存储桶:
下面的步骤按照 PicGo 配置教程 即可
问题8:收录
谷歌收录成功,用的 sitemap 方式
百度的收录…一言难尽
它收录有三种方式:
- 主动收录
- 手动提交
- sitemap方式
它爬取不了 github pages,所以 sitemap方式 无法收录
尝试博客双部署,这样百度应该可以爬取了
…coding被腾讯云收购了(商业化了),证书有问题,于是放弃走国内的访问线路了…
主动收录是使用API,结果未知,跟谷歌收录比起来…又慢又难用,还是收录不了,算了。