发文章完整指南:图片、push、commit 一次讲清
这篇是给未来的自己看的。以后想发文章,打开这篇照着走。
整条链路
其实就四步:
写 Markdown → 放图片 → commit → push → 等一分钟上线
没有数据库,没有 CMS 后台,没有构建配置。Jekyll 在 GitHub Pages 上自动跑,推什么上去就是什么。
一、建文件
在 _posts/ 下新建一个 .md 文件。文件名必须带日期:
_posts/2026-09-12-go-microservices.md
日期决定排序和链接。标题部分用英文小写 + 短横线,会得到干净的 URL:/writing/go-microservices。别用中文或空格,链接会变得又长又乱。
二、写 frontmatter
文件最开头两行 --- 之间是配置:
---
layout: post
title: "文章标题"
date: 2026-09-12
category: 笔记
tags:
- Go
- 微服务
summary: 一句话摘要,显示在首页卡片和 RSS 里。
cover: /assets/images/posts/我的封面.png
---
| 字段 | 必填 | 干什么 |
|---|---|---|
layout |
是 | 固定写 post。删了文章页就没样式——这是个踩过的坑 |
title |
是 | 文章标题 |
date |
是 | 发布日期,YYYY-MM-DD |
category |
否 | 分类,显示成一个标签 |
tags |
否 | 标签列表 |
summary |
否 | 首页卡片和分享卡片的摘要 |
cover |
否 | 封面图路径,不写用站点默认图 |
三、图片
这是最容易搞错的一步。
放哪
图片和文章一起放仓库里,统一丢这个目录:
assets/images/posts/
封面图和正文插图都放这。
怎么传
网页拖拽(最省事):仓库页面 → Add file → Upload files → 拖进去 → Commit。
本地放文件夹:把图片复制到本地仓库的 assets/images/posts/,和文章一起 push(见下一步)。
怎么引用
正文里用 Markdown 图片语法,路径最前面必须带 /:

封面在 frontmatter 里写 cover 字段:
cover: /assets/images/posts/go-cover.png
三个必踩的坑
- 少写斜杠:
assets/images/xxx.png(没有开头的/)会 404 - 大小写不一致:文件是
go-cover.png,引用写成go-cover.PNG也会 404 - 图没传就引用:先确认图片真的在仓库里,再引用,否则永远是个裂图
四、commit 和 push
文章写好了,图片也放了,接下来提交到 GitHub。
命令行(推荐)
git add .
git commit -m "post: 发了一篇 Go 微服务的文章"
git push origin main
三条命令各干什么:
git add .— 把所有改动(新文章 + 新图片)加进暂存区git commit— 固化成本地的一次提交git push— 推到 GitHub,这一步之后网站才更新
网页编辑
不想碰命令行也行:
- 仓库 → Add file → Create new file
- 文件名填
_posts/2026-09-12-标题.md(一定要带_posts/前缀) - 粘正文
- 图片单独用 Upload files 传
- Commit changes
push 之后
GitHub Pages 自动构建,通常一分钟内线上就能看到。构建日志在仓库的 Actions 标签页。
如果 push 后页面还是旧的,等一两分钟再刷新。构建不是瞬间的。
补充
文章目录
想在正文里插一段自动目录,在目标位置加:
* TOC
{:toc}
kramdown 会根据 ## 标题自动生成。
本地预览
日常直接 push 看线上就够了。想本地跑:
gem install jekyll bundler
jekyll serve
打开 http://localhost:4000。
总结
1. 建文件 _posts/日期-标题.md
2. 写配置 frontmatter(title / date / tags…)
3. 放图片 assets/images/posts/xxx.png
4. 引用图 
5. commit git add . && git commit -m "..."
6. push git push origin main
六步。没有第七步。