建站过程

Last

注意

本文并非教程,请谨慎参考!

前言

  • 先前在有了“自建个人博客”的念头后便在 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 # 安装博客所需的其他依赖

安装主题

修改主题背景

获取背景图片

light

dark

转换图片格式

  • 使用 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
2
3
4
5
6
git init
git add .
git commit -m "my first blog commit"
git remote add origin "https://github.com/..."
git branch -M main
git push -u origin main

Netlify

  • Netlify  是一个提供静态资源网络托管的综合平台,提供 CI 服务,能够将托管 GitHub,GitLab 等网站上的 Jekyll,Hexo,Hugo 等代码自动编译并生成静态网站。

新建 Netlify 站点

(略)

提示

为了使 Netlify 端的网站每次部署都自动清除缓存并重新生成网站,可在 package.json 中添加以下配置:

1
2
3
4
5
6
7
8
9
{
// ...
"scripts": {
// ...
"server": "hexo server",
"netlify": "npm run clean && npm run build" // 添加此行
}
// ...
}

然后在导入 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 templateAlt + i

  • 这样就可以快速插入 front-matterfolding 等等模板。

.gitignore

  • 如果不想将 Obsidian 库文件本身上传至 Github,则需要在 .gitignore 中加上:
    1
    .obsidian/

Twikoo 评论系统

shuoshuo 模块

  • 尝试使用 leancloud 创建动态说说模块,然而凡是有关添加内建用户的页面都会产生报错 Class does not exist.
  • 于是便选择本地部署方式创建说说模块,参照 Redefine 使用指南

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