我的博客配置
启
果然,第一篇肯定要讲一讲自己是如何配置的我的博客。
从 WordPress
研究到ZBlog
,最后还是选了老朋友 Hexo
(毕竟可以GitHub Page
)
主题选择
主题想着比较清爽,看的舒服就好了。这里选择了 hexo-theme-icarus。
基础配置
由于需要自动化部署,配置、文章、资源数据都需要在存放在GitHub
仓库中。
一共使用四个仓库,分别存放配置、样式、文章/资源数据,这些通过git submodule
将他们关联起来,还需要一个仓库专门用来存放GitHub Page
的数据。
1 | git init |
为了保证每次部署的统一,我fork一份主题(当然也可以使用npm install
的方案)
因为配置中存了accesskey
所以权限是设为私有了:)
优化
自动部署 x Workflow
Workflow
是 GitHub
推出的自动化流,可以简单的理解能在收到push
,pull
等请求后会自动执行一段或多段代码(类似执行docker
的build
)
通过简单的配置,就可以自动化的在云端生成并部署博客,这是我的配置:
1 | # This is a basic workflow to help you get started with Actions |
其中需要配置 PAT
在 Personal access tokens 生成一个,并配置到 settings/secrets/actions
即可。
整体耗时如下,可以看出使用了Cache
服务,整体能在一分钟内完成部署,效率还是很快的~
加速,还是加速!
服务是部署在GitHub Page
上的,美中不足是带宽比较小。为了阅读体验使用CDN来加速资源加载。
Cloudflare
本来打算使用阿里云DNS可以控制内外域名解析,使用Gitee作为国内节点(可惜 Gitee 要收费),Github作为国外节点。最后决定使用 Cloudflare
做全站的加速。
阿里云OSS
既然要用CDN,那就要把所有的外部资源统统整上CDN
。(反正流量也不大,花不了多少钱。
这里使用了 hexo-deployer-cos-cdn 进行魔改,可以自定义跳过部分文件,让CDN
仅作为附件的纯净CDN
。
相应使用CDN也需要调整图片路径,这里使用了魔改后的 hexo-asset-path ,与自己编写的 hexo-dom-modify 来修改js
、css
的地址。
简洁
因为图片资源使用了CDN,所以不想图片数据也上传到Github Page
中,所以我写了一个部署中间件,hexo-delete-sth,可以在部署的流程中,指定删除文件。避免空目录和你不想要的文件进入第二次部署上传。
所以,这是我的最后部署配置
1 | deploy: |
公式SSR
可能很少写公式,但是这功能我觉得很重要。hexo-filter-mathjax-ssr。它可以在渲染时把公式转为svg
格式,这样就不需要前端加载mathjax
组件;也不会让读者看到转瞬即逝的丑陋代码,并且也能在Typora
中带来统一的体验。
给个渲染例子:
行内 的渲染!
独立居中!
Loading
如果你网速比较慢,你可以看到一直可爱的小水母(其实是乌贼),他的原图如下,但是蓝色加载动画在纯白背景中显得非常的突兀(这不得魔改一把?)
通过简单的PS技巧修改而成(手有PS走遍天下都不怕)。
也将他的大小压到了 28KB
写作
最后来说说协作体验,能坚持博客,一定要写的舒服!
虽然Markdown
只要用个记事本就可以完成撰写,但是图片等附件还是需要你慢慢的拖和改。
经过摸索,我使用Typora
可以在普通模式中像飞书文档一样编写,也可以通过CTRL + /
进入源码模式进行精细的编辑(能双栏同时滚动就更好了)。
并没有做过多的配置,就配置了一项
这样就可以使用剪贴板来粘贴图片,再配合上Hexo
的post_asset_folder: true
既能在Typora
中正常浏览,渲染也不会出现问题。
终
第一篇比较正式的博文,拖了好久终于写完了,感谢阅读~
Keep learning,keep sharing!