建站过程
注意
本文并非教程,请谨慎参考!
前言
- 先前在有了“自建个人博客”的念头后便在 b 站搜索教程了解,然而那时候找到的大部分教程均为“购买云端服务器” + “购买国内域名(需要备案)”。这两个步骤在我看来都太过麻烦,遂选择放弃。
- 此后,在机缘巧合之下于 b 站发现了 up 主爱扑bug的熊的一部教程,这部教程提供的个人博客建站方案是:Hexo + Github + Netlify + Cloudflare。无需服务器,且流程看上去十分简便,令我十分心动,于是心动不如行动,立即开工。
Hexo
- Hexo 是一个快速、简洁且高效的博客框架,使用 Markdown 语言。
安装 Hexo
1 | npm install -g hexo-cli |
- 其中
-g
参数表示全局安装
注意:
在 Archlinux 上使用 npm 时,为了不污染系统环境,需要提前设置 npm 的 prefix 来更改安装位置。详见:Archwiki
初始化博客
1 | hexo init <blog-name> # <blog-name> 为博客目录名,若有空格则需要双引号 |
1 | cd <blog-name> && npm install # 安装博客所需的其他依赖 |
安装主题
- 本站使用 Redefine 主题,作者是 EvanNotFound,赞美他。
- 该主题的文档十分详尽,安装及使用教程均有教程。
- 我的配置文件可在 Github 找到。
修改主题背景
获取背景图片
- 在 pinterest 上找到了下面两张壁纸:
转换图片格式
使用 Convertio 将 jpg/png 格式的图片转换成 webp 格式。
另:也可以使用
ffmpeg
完成格式转换:1
ffmpeg -i input.jpg output.webp
转换格式的目的在于压缩图片大小,加快网站加载速度。
上传图片至图床
- 笔者使用的是 sm.ms 图床。
- 图片上传完成后需修改主题配置文件,将背景图片链接由本地路径改为图床提供的外链。
标签页图标和头像同理。
修改其他默认配置
- 修改时区:
1 | timezone: "Asia/Shanghai" |
- 若不修改,所有文章的 update time 都会以 UTC +00:00 时区显示。
- 由于创建时间被写入了 front-matter 中,会出现修改时间比创建时间更早的情况。
上传 Hexo 项目至 Github
1 | git init |
Netlify
- Netlify 是一个提供静态资源网络托管的综合平台,提供 CI 服务,能够将托管 GitHub,GitLab 等网站上的 Jekyll,Hexo,Hugo 等代码自动编译并生成静态网站。
新建 Netlify 站点
(略)
提示
为了使 Netlify 端的网站每次部署都自动清除缓存并重新生成网站,可在 package.json
中添加以下配置:
1 | { |
然后在导入 Github 仓库时,将 Build Command 改为 npm run netlify
。
域名
感谢 EvanNotFound 的推荐,该站的域名 bloglast.top 购买于 namesilo,无需实名和备案。- 域名已转移。
CDN
咕咕Obsidian
- 由于使用 nvim 来编辑中文内容异常难受,遂使用 Obsidian 进行博客的本地编辑书写。
建立仓库 & 排除其他文件
- 打开 Obsidian,选择
Open Folder as Vault
,打开 Hexo 博客根目录。 - 为减轻 Obsidian 的索引负担,需要将除博客内容之外的其他组件排除。建立仓库后,在设置中的
Files & Links
找到Excluded Files
,添加:1
2
3
4- node_modules/
- scaffolds/
- themes/
- public/
模板
启用 Obsidian 的核心插件
Templates
,即可选择本地 md 文件作为模板快速插入。例如:
folding.md:1
2
3{% folding $color::info %}
{% endfolding %}设置 Obsidian 的快捷键:
Templates: Insert template
为Alt + i
。这样就可以快速插入
front-matter
,folding
等等模板。
.gitignore
- 如果不想将 Obsidian 库文件本身上传至 Github,则需要在
.gitignore
中加上:1
.obsidian/
Twikoo 评论系统
详见 Twikoo 快速上手 以及 云函数部署。
在
_config.redefine.yml
中启用,并填上服务部署地址。
shuoshuo 模块
- 尝试使用 leancloud 创建动态说说模块,然而凡是有关添加内建用户的页面都会产生报错
Class does not exist.
。 - 于是便选择本地部署方式创建说说模块,参照 Redefine 使用指南。
APlayer 插件
- 在
_config.redefine.yml
中开启 APlayer 插件,详见 APlayer。 - 获取音乐播放外链的方式参照 获取网易云音乐播放外链。
- Title: 建站过程
- Author: Last
- Created at : 2023-08-05 01:27:24
- Link: https://blog.imlast.top/2023/08/04/建站过程/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments