网站颜色
网站颜色,配色搭配应该是有科学理论,研究支撑的。(一个相关案例:The best website color schemes — and how to choose your own)但是个人博客,时间精力有限,且不是专业人员,网站配色只能根据自己的感觉来。
我的博客目前主要颜色搭配:
- OrangeRed FF4500 RGB (255,69,0)
- Gray20 333333 RGB (51,51,51)
- Gray80 CCCCCC RGB (204,204,204)
值得一提的是橙红色,个人很喜欢,给人热情充满活力的感觉,用来提醒和强调。
代码优化,加速
- 删除代码里的空格,代码说明等;
- 没用的功能代码删除之;
- 减少域名解析计,静态文件(css,js之类)能不用第三方CDN静态资源库的,尽量不用。放在本地;
- 博客图片之类的放对象云存储,不开启CDN,个人博客访问量没那么大,实时在线人不会太多,完全没必要CDN;
- 第三方CDN静态资源库尽量从一个收录资源比较多的平台取(目前用Staticfile CDN,放弃用字节CDN,字节CDN使用的域名太多,解析费时);
- head头部加快第三方资源解析,使用dns-prefetch,preconnect,preload;
- 字体(LXGW WenKai Screen)仍然使用第三方CDN
(Staticfile cdn居然会出现字体跨域问题(见CDN缓存错误缓存了CORS响应头),先暂时用回elemecdn的。),目前似乎没更好的办法; - 网站logo,icon采用svg格式(见本站友情链接信息)。
功能新增,优化
静态博客点赞功能
给博客文章增加点赞功能,风格完全copy自Github(参考自项目emaction)。给静态博客添加点赞功能是一个比较麻烦的事情,emaction完全模仿和复制了GitHub 的点赞功能,数据存储在Cloudflare D1,能用于任何html页面。如果想自己部署,可以参考此文:自部署 GitHub 风格的 Reactions 点赞功能。
back-to-top按钮
对于长博文,back-to-top按钮功能很有必要。使用的这个主题很古老,没有back-to-top按钮,一直想新加上。网上实现back-to-top功能的代码很多,核心大多是js+css,但试验多次,本地可以,但是放入我目前使用的这个主题就是不行。不知什么原因,只能放弃。
某次试验,偶然查看chrome控制台,发现报错–”Uncaught ReferenceError: $ is not defined”,百度之,说最大可能是引用的各个js的调用顺序有误。我这个back-to-top除了本身的js,还有调用jquery.min.js,而我把jquery.min.js放在了最后。调整js调用顺序以后,back-to-top功能果然正常了。
back-to-top按钮风格样式参考自hexo-theme-polarbear。
优化twikoo
twikoo默认站长标识是文字,修改成图标。将默认文字颜色调成白色,然后增加background url属性。带有 标识的留言回复为博主本人。
twikoo目前版本还在持续更新中,老版本对于日常使用已经足够,不想经常更新,故将版本号信息隐藏。
阅读书单
最近折腾Obsidian及hexo一文介绍过将微信读书的读书笔记,阅读书目同步回Obsidian,然后借助Dataview展示,最后通过GitHub Publisher发布到hexo博客,呈现现在这个样子–阅读书目。Obsidian微信读书插件,及Dataview插件都还有继续学习,深挖的必要,阅读书目的展示形式还可以优化,如何更好的利用来写读书笔记,总结。
TOC
借助markdown语法简便的语法,很方便的给长文添加toc功能,并且模仿Github,章节标题前采用Github样式的锚点图标。
Github action
hexo博客的部署方式千千万,借助Github action可能算非常优雅的一种。hexo代码托管在Github,Obsidian拟写新博文后,自动发布到Github,触发Github action,完成构建hexo,生成静态文件,同步到对应的目标。这对应的目标可以是S3对象云存储(比如腾讯云COS,阿里云OSS等),也可以是云服务器,FTP空间,甚或serveless服务等等。
目前我用到的Github action命令和步骤有:
- actions/checkout@v2(检出代码);
- actions/setup-node@master(安装node.js);
- c-hive/gha-yarn-cache@v1(缓存生成的hexo静态文件);
- easingthemes/ssh-deploy@main(通过ssh将静态文件发布到到服务器)。
第4步,除了通过SSH发布到服务器,还可以发布到对象云存储(deploy to COS),FTP空间等,对应的Github action命令可以自行搜索。
另外借助Github action,网站还能同时托管于netlify,vercel这样的serveless平台。利用dnspod分区解析功能,使国内用户访问位于国内服务器的网站,国外用户访问托管于serveless平台的网站。网站数据完全一致。
评论