Litao

这个站点是怎么搭的

How This Site Is Built

这个站点是 Jekyll 生成的静态页面,托管在 GitHub Pages 上,用的是 Pages 的原生构建,没有配 GitHub Actions。整站没有任何服务端逻辑。域名走 Cloudflare,访问统计用的是 Cloudflare Web Analytics——它由边缘节点注入,仓库里没有相关代码,也不使用 cookie,只记录页面维度的访问量。写作流程是在编辑器里写 Markdown,git push,GitHub 自动构建并发布。

暂时不做评论区。理由不是技术上做不到,而是我想先把写作本身跑顺。多媒体内容一律外链——视频挂在别的平台,大文件放 Releases,站点本身只有文字和少量压缩过的图片。这样加载快,也不会因为某个第三方服务停摆而坏掉。

正文用 Source Serif 4 配思源宋体系统,两者本是同一设计体系,中英混排时横竖笔画的粗细能对上。中文段落两端对齐,西文段落左对齐——汉字等宽,两端对齐不会出现西文那种断裂的空隙。

想订阅的话,页脚有 RSS。

下面是完整的搭建和日常维护记录。原先散在几个文档里,现在归到一处。

从零建一个

仓库命名。 新建一个公开仓库,名字必须严格是 你的用户名.github.io——用户名是 litao,仓库名就得是 litao.github.io。这是 GitHub 识别「个人主站」的唯一命名方式,差一个字符都不行。

上传文件。 把项目全部文件放进仓库根目录。网页上传走「Add file → Upload files」;命令行:

git init
git add .
git commit -m "初始站点"
git branch -M main
git remote add origin https://github.com/你的用户名/你的用户名.github.io.git
git push -u origin main

打开 Pages。 仓库 → Settings → Pages,三项设成:Source 选 Deploy from a branch,Branch 选 main,Folder 选 / (root)。保存后等一两分钟,https://你的用户名.github.io 就能访问了。

配置

_config.yml 顶部那几个字段是唯一需要动的地方:

  • title / title_en——你的名字。两者相同时,英文那行会自动隐藏。
  • tagline / tagline_en——首页正中的定位语,中英各一行。
  • email——页脚的联系邮箱。
  • url——https://你的用户名.github.io

然后把 about.md 里的占位内容换成自己的介绍。改完 _config.yml 要重新推送才生效。

日常写作

文件命名。_posts/ 下新建文件,名字必须是 年-月-日-英文短名.md。命名或日期格式不对,文章不会显示——这是最常见的「我明明推上去了怎么没有」的原因。

Front matter 模板:

---
title: "中文标题"
title_en: "English Title"
summary: "首页列表里显示的一两句话。可以不写。"
date: 2026-09-15
lang: zh
---

正文从这里开始。

langzhen,填 zh 会自动两端对齐。

常用元素。 脚注是正文里写 [^标签]、文末写 [^标签]: 内容,序号和位置自动排;引用块行首加 >

图片压成 WebP 放进 assets/img/,全宽图控制在 100KB 以内,压缩用 Squoosh 就够。引用方式:

![说明](/assets/img/文件名.webp)

视频不要上传进仓库,嵌一个播放器:

<div class="embed">
<iframe src="https://www.youtube-nocookie.com/embed/视频ID" title="标题" loading="lazy" allowfullscreen></iframe>
</div>

.embed 会保持 16:9 比例,loading="lazy" 减少首屏压力。讲稿 PDF、数据集这类大文件放 GitHub Releases 或 Zenodo,文章里外链引用。

字体与本地预览

西文正文是 Source Serif 4,中文用系统宋体(Mac 上通常是 Songti SC)。Windows 下宋体屏显偏细,把 _config.yml 里的

typeface: serif

改成 sans,中文就切到黑体(苹方 / 思源黑体 / 微软雅黑)。

本地预览是可选的,不预览直接推上去看效果也行。要在本地跑:

gem install bundler
bundle install
bundle exec jekyll serve

然后访问 http://localhost:4000

几件需要记住的事

仓库是公开的,源文件对所有人可见,别提交私人内容。更要紧的是:Git 删除文件不会抹掉历史记录,敏感内容一旦提交过,就可能长期可见——发现提交错了,改文件是不够的。

容量上,站点上限约 1GB,月流量软限制约 100GB,所以媒体一律外链。

插件目前只用 GitHub Pages 白名单内的三个(feed、sitemap、seo-tag),所以能原生构建;哪天需要白名单外的插件,就得改成 GitHub Actions 构建流程,这是个不小的切换。想加邮件订阅的话,在 _includes/footer.html 里放个表单就行,不影响现有结构。