快到考试周了,虽然没怎么复习,但依旧忙里偷闲,先是为原先的 VPS 发工单续了个费,再是昨天买了一年10元月付的腾讯云学生主机,初始化又搞了半天。昨天将近凌晨还打了把 CF[1] ,十分不幸,我居然被 div2 C 题给杀了,完了之后跟同学一讲,原来是读错题了🤔🤔🤔。然后这几天还折腾了几下优化博客的体验,期末考怕是要凉了。
好了,言归正传,讲一下怎么给博客加上一些效果,让博客看起来更好看,和加上评论功能。
添加 js 效果
首先是给博客加上一些小动画,像这里的点击爱心效果和背景的效果,其实引入一个js就可以做到。问题就是怎么引入了。
我先按网上的教程做,找 HEXO\themes\[theme name]\layout\ 下的文件,教程里说是 "_layout.swig" 文件。我一看,全是 .ejs 文件。好吧不影响,这个其实是因为主题不一样的原因。我用的是 clean-blog ,而好像大部分人用的都是 Next 。接下来 notepad++ 打开 layout.ejs 先,仔细观察格式,其实还是比较好理解的:
1 | <!DOCTYPE html> |
注意到,在 </body>
前加入了两行 script ,这两个就是这些小动画的 js 啦。如果你要引用的话,直接打开这个 love.js 和这个 canvas-nest.min.js ,保存到本地,再复制到 HEXO\themes\[theme name]\source\js\ 下,最后在上文目录中类似 *layout* 的文件下找个合适的地方粘贴:
1 | <script type="text/javascript" src="/js/love.js"></script> |
其中第二行的 color 和 opacity 可以自己设置,分别是背景线条的颜色RGB和不透明度。
实在找不到怎么办?
CMD: hexo s
。对就是生成预览网站,然后直接修改 theme 文件并保存,刷新一下 localhost:4000 就可以直接预览效果,善用 F12 可以定位你做的修改在网页里的哪个位置(虽然可能需要一些网页调试基本知识了 ,推荐使用更为方便的Typecho )。
接下来就是给文本框框加上一个半透明的背景和阴影了。
修改博客 CSS
Clean-Blog 原本的背景是白色,所以文本是没有背景色的。现在一加上背景效果,就比较干扰阅读,所以这里就需要修改CSS文件。
打开 HEXO\themes\[theme name]\source\css\ ,发现有许多 .styl 文件,其一般的结构是一个 style.styl 中又引用了许多别的 styl 文件,主要在 base.styl 里,那么首先就修改 base.styl 。
观察文件结构,发现还是比较规则的,与 css 文件很类似。需要注意的是作为缩进字符必须统一,例如原本是两个空格就用两个空格缩进,原本是 Tab 就用 Tab ,不然生成网页会报错(这点和 python 蛮像的)。主要是 Notepad++ 可能在换行的时候会自动把几个空格变成一个 Tab ,最好还是手动删了再输比较好。
首先 hexo s
打开本地服务器方便实时查看修改状态,先来给主页的 post 预览加上一个白色底框。在浏览器中打开网页按下 F12 定位到文章预览框 class="post-preview"
,接下来只要定位 post-preview 就行了。
在 base.styl 中找到
1 | .post-preview |
找不到就直接手打,注意缩进
在 .post-preview 后加一行代码,变成
1 | .post-preview |
其中四个数字分别是颜色 RGB 和不透明度,按自己喜好调整,保存 styl 文件刷新预览服务器页面即可看到效果。(还想再方便点?直接 F12 修改 css 。)
如果需要加上阴影,那么就:
1 | .post-preview |
rgba 参数意义同上, 5px 表示阴影厚度。
另外,如果需要调整框的大小,则需要:
1 | .post-preview |
具体意义参考 css 教程。
好了,现在文章预览有底框了,可是文章还没有底框,怎么办呢。
先进 F12 看看在哪个 css 里加框框,感觉在 container div 里的 row div 里加比较好看,于是在 base.styl 里找,不太找得到,找 article.styl ,有了,开头前几行就是,于是编辑为:
1 | article |
这样,效果就有了。
接下来觉得标题和底栏也需要一个半透明背景。先找标题,通过 F12 定位,发现有两种 class ,一个叫 site-heading ,一个叫 post-heading ,其实好办,打开 base.styl ,加入:
1 | .site-heading |
这样就有了个黑色的底板,能看得清字了。
同理,找 footer ,发现是在一个 container 的 div 里套着的一个 row 的 div 再套一个 div ,直接在里加入:
1 | .row |
刷新,结果不尽人意。平白多了一堆灰框,不太好看。原因是所有 class 为 row 的全都加上了这个属性。那么怎么办呢?
html 中的相应代码是
1 | <footer> |
所以需要修改为:
1 | footer |
保存,即可。
到这里博客就好看多了,最后来讲讲怎么加上评论功能。
加入评论功能
之前用 Pacman 主题时用的评论功能在我转到 Clean-Blog 主题的时候就给去掉了,现在这个主题能用的只有 disqus 和 facebook 的评论系统,然而都需要科学上网才能使用。尽管现在我的博客是挂在外国(毕竟便宜,8块多一个月),但我还是懒得实现类似反代之类的操作。毕竟都选择静态博客了,再嵌入个 php 就有点懒得麻烦。
这里就用到了 Valine ,具体怎么配置可以点进去看一下,这里讲一下我的配置过程。
首先需要一个 Leancloud 账号,作为处理评论的后台。注册完之后验证好邮箱就可以用了。首先创建一个应用,名字随意,接着到应用 设置 ,应用 Key 里把 App ID 和 App Key 复制下来,再到 安全中心 修改 Web 安全域名 ,改成这样:
1 | http://your.site |
当然了,不要把注释也打进去。
接着就是在 HEXO 里配置了。关键代码比较少,如果不弄什么方便控制的功能的话在特定的地方粘贴一下就可以了,许多主题现在已经可以直接安装 Valine 了,然而 Clean-Blog 没有。这里讲一下怎么把评论直接放到网页里。
先打开 HEXO\themes\[theme name]\layout\ ,找到头部的配置文件,我的是 _partial\head.ejs 。
在 </head>
之前加入
1 | <script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script> |
接下来找文章放评论模块的地方,一般都是有独立的文件的,实在找不到就在文章布局文件的结尾放。
打开 _partial\comments.ejs ,在结尾加入:
1 | <hr /> |
其中 <APP_ID>
与 <APP_KEY>
填之前保存下来的, placeholder
填在留言框中出现的占位符, verify
是验证码,其实就是一个简单的四则运算求答案,可以改成 false 关掉。
到这里就差不多了,但如果你还想改下评论框的 css 样式的话,打开 HEXO\themes\[theme name]\source\css\ 里的 base.styl ,添加并编辑:
1 | #vcomments |
即可。
CF: Codeforces,才不是某 TX 游戏。 ↩