博客网站更新总结-2023

网站颜色

网站颜色,配色搭配应该是有科学理论,研究支撑的。(一个相关案例: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-prefetchpreconnectpreload
  • 字体(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样式的锚点图标。

文章页toc功能

文章章节前的锚点

Github action

hexo博客的部署方式千千万,借助Github action可能算非常优雅的一种。hexo代码托管在Github,Obsidian拟写新博文后,自动发布到Github,触发Github action,完成构建hexo,生成静态文件,同步到对应的目标。这对应的目标可以是S3对象云存储(比如腾讯云COS,阿里云OSS等),也可以是云服务器,FTP空间,甚或serveless服务等等。

目前我用到的Github action命令和步骤有:

  1. actions/checkout@v2(检出代码);
  2. actions/setup-node@master(安装node.js);
  3. c-hive/gha-yarn-cache@v1(缓存生成的hexo静态文件);
  4. easingthemes/ssh-deploy@main(通过ssh将静态文件发布到到服务器)。

第4步,除了通过SSH发布到服务器,还可以发布到对象云存储(deploy to COS),FTP空间等,对应的Github action命令可以自行搜索。

另外借助Github action,网站还能同时托管于netlify,vercel这样的serveless平台。利用dnspod分区解析功能,使国内用户访问位于国内服务器的网站,国外用户访问托管于serveless平台的网站。网站数据完全一致。

hexo博客发布流程

《元画全集》及其目录索引 《宋画全集》及其目录索引

  评论