博客修改
本帖持续更新中。。。
自定义主题
介绍
博客主题:matery
拿谷歌的pagespeed做个很粗糙的测试:
与用户最多的nexT主题相比:
有优化的空间,但跑得还是不错的。只要不瞎改的话,不用CDN加速也勉强可以。
音乐
转自洪卫の博客
加载音乐
这里用到是Aplayer插件,但是歌曲来源需要自己定义,可以这么加载音乐
1.直接加载:
可以在Blog\themes\matery\source\medias\music
添加音乐文件.mp3和封面.jpg,然后在musics.json
文件里添加路径。像这样:
1 | [{ |
这种方式将文件直接推到仓库,不推荐。
2.外链:
首先我们找到网易云在线平台,任意找到一首歌点进去播放,可以在播放页面的地址栏拿到音乐ID
号
然后修改下面网址http://music.163.com/song/media/outer/url?id=XXXXXX.mp3
XXXXXX
替换成刚刚的歌曲ID
号
网页打开一般是MP3文件的地址,就相当于每一首的外链了。歌曲封面从页面提取封面链接即可。之后将得到的两个链接替换掉第一种方法的相对地址。比如这样:
1 | [{ |
插入音乐
特别的,对于由于版权保护,无法生成外链的音乐,我们找到生成外链播放器,检查,并复制a链接/outchain/2/16468500/
将/outchain/2/16468500/
插入到http://music.163.com/#/href
后,http://music.163.com/#//outchain/2/16468500/
就是生成外链的网址。
把HTML代码拷到post文档里就行了:<div align="middle">这里粘贴刚刚复制的代码</div>
好听吗,不好听就说明这个方法已经失效了
更正:主题更新到next之后,Aplayer无了,直接拷贝网易的iframe吧:
评论区
我用的Gitalk插件。
最近Github疯狂给我发邮件,说是GitHub不赞成使用Authorizations API,将要Deprecated APIs and authentication,原因嘛,可能是这个:建议大家弃用 Gitalk 和 Gitment 等权限过高的 Github OAuth App,额,水一水了,看大佬怎么处理的:Gitalk Issues。到时候补充。。。
2020.02.25更新
Gitalk插件已更新版本,解决了问题。
谈到Github,安利一个chrome插件:Octotree
作用是树状列出项目文件和更改,像这样:
视频
B站网站视频分享的选项里有iframe的嵌入代码。
1 | <iframe src="//player.bilibili.com/player.html?aid=48591341&cid=85086096&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe> |
移动端嵌入视频比例:高度200px240px,宽度280330px;推荐大小为: height:200px ;width:330px
电脑端嵌入视频比例:高度460px以上,宽度640px以上;推荐大小: height:460px ;width:640px
其中,frameborder表示播放控制边框。为了满足响应式,稍微改一点即可。
1 | <iframe id="spkj" src="https://player.bilibili.com/player.html?aid=48591341&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width=100%> </iframe> |
图片懒加载
hexo-lazyload-image
的作用是将博客里面img标签的src属性替换为一个loading image,把真实的图片地址放在data-origin属性下面。然后当你的网页翻到那张图片时,有一段js用data-origin的内容替换src,打到懒加载的目的。
懒加载可能会和gallery插件发生冲突。
安装npm install hexo-lazyload-image --save
,在根_config.yml
配置
1 | lazyload: |
网站地图
npm
自动生成网站的sitemap
,然后将生成的sitemap
提交谷歌 地址
安装npm install hexo-generator-sitemap --save
1 | # 自动生成sitemap |
顺便说一下谷歌验证的网站所有权,简单一点,可以从谷歌下载提供的.html验证文件,文件里是google-site-verification
键和值,将其上传到自己的站点。
需要注意的是,如果你将html文件放到博客\source\
目录下,hexo会将其渲染成网站页面,文件就失效了,所以为了防止渲染,简单的做法是放到博客主题文件下,\themes\matery\source\
,防止渲染,在生成站点后会在\public\
下得到原来未渲染的.html文件。
robots.txt
robots.txt
是存放于网站根目录下的 ASCII
编码的文本文件,它的作用是告诉搜索引擎此网站中哪些内容是可以被爬取的,哪些是禁止爬取的。
robots.txt
放在博客目录下的 source
文件夹中,博客生成后在站点目录 public/
下。
1 | User-agent: * |
git区分大小写
一个git的小知识。git默认文件是ignorecase = true
,即推送仓库无视文件大小写,但是网站访问时,路径是区分大小写的。
当你修改文件夹名大小写,推送到github后,可能出现由于路径大小写的问题导致页面的404,此时去博客的.git
目录下,找到config
文件,将ignorecase
改为false
即可。
草稿draft
draft
是草稿的意思。
hexo new draft newdraft
这样会在source/_draft
中新建一个newdraft.md
文件,如果你的草稿文件写的过程中,想要预览一下,那么可以使用hexo server --draft
在本地端口中开启服务预览。
如果你的草稿文件写完了,想要发表到post
中,hexo publish draft newdraft
,就会自动把newdraft.md
发送到post
中。
由于某些原因,博客主题改为了next。现在文章已经迁移完成,除了需要注意一下文件路径,以上的配置方法依然有效。
屏蔽点击事件
让博客变得简洁,在博客主js文件下加入下述代码。
next主题是next-boot.js
文件。
1 | // 屏蔽F12 |
Next主题自定义css
基于hexo-theme-next-8.0.2自带插件
现在正式改为了next主题,next的滚动条为原生默认的,不是很搭,自定义一下滚动条。
next的css样式文件为.styl
,我之前只接触过.css
,算是摸石头过河了。为了方便git拉取更新文件,最好将用户css样式放在自建的样式文件里,否则到时候冲突太多很麻烦。
1 | custom_file_path: |
这里style的路径从博客根目录开始:
既然是主题文件,我就直接放在主题文件夹下面的source里,以后想换其他主题也方便。
在css文件夹里新建_custom
,然后在_custom
文件夹里新建custom.styl
,将用户自定义css放在此文件里即可。
添加scrollbar伪选择器样式
1 | ::-webkit-scrollbar {//by mednight4 |
添加背景图片
分别给body和侧栏添加图片
1 | body { //by mednight4 |
图片的路径在/themes/hexo-theme-next-8.0.2/source/images
,也是放在主题文件夹的source里。
修改sidebar链接颜色
其实是修改左侧sidebar的a链接颜色,想直接在base.style里改,没找到。干脆在custom.styl
覆盖好了。
1 | .sidebar a:hover{ |