网站内容更新流程

一、基本原理

这个网站不是在服务器上直接编辑文章,而是在本地电脑维护源码。

完整流程是:

1
2
3
4
5
本地 Markdown 文章
-> Hexo 生成 public 静态网页
-> 上传 public 到云服务器 /var/www/html
-> Nginx 对外提供 https://mvwang.cn 访问
-> GitHub 备份源码

所以真正重要的是本地源码目录和 GitHub 备份。服务器上的 /var/www/html 是发布后的静态网页,不建议在那里直接改文章。

二、备案号是否要每篇填写

不用。

备案号属于网站全局信息,应该由主题模板或页脚统一显示。只要网站页脚已经有备案号,以后新增文章、页面、导航,都不需要在每篇文章里单独填写。

写文章时需要注意的是内容方向:网站备案名称是知识库,文章最好保持为学习笔记、知识整理、工具说明、生活百科、作品资料整理等表达方式。影视、软件、娱乐、体育等内容也可以写,但建议以资料整理、知识分享、使用经验、公开信息索引为主。

三、新建文章文件

本地网站源码目录:

1
C:\Users\Lenovo\Documents\搭建个人网站

普通文章放在:

1
C:\Users\Lenovo\Documents\搭建个人网站\source\_posts

可以复制模板:

1
C:\Users\Lenovo\Documents\搭建个人网站\source\_posts\_template-knowledge.md

也可以直接新建一个 Markdown 文件,例如:

1
C:\Users\Lenovo\Documents\搭建个人网站\source\_posts\python-file-notes.md

文件名建议使用英文、数字和短横线,少用空格,方便以后维护链接。

四、文章开头格式

每篇文章开头都要有一段 Front Matter:

1
2
3
4
5
6
7
8
9
10
11
12
---
title: Python 文件处理笔记
date: 2026-07-04 12:00:00
categories:
- 知识库
tags:
- Python
- 文件处理
excerpt: 记录 Python 读取、写入、遍历文件的常用方法。
---

这里开始写正文。

常用字段含义:

字段 作用
title 文章标题
date 发布时间
categories 分类
tags 标签
excerpt 首页或列表页摘要

正文使用 Markdown 写即可,例如标题、列表、代码块、表格都可以。

五、本地预览

打开 PowerShell,进入网站目录:

1
cd C:\Users\Lenovo\Documents\搭建个人网站

先清理并生成网页:

1
2
npm.cmd run clean
npm.cmd run build

如果要在本地浏览器预览:

1
npx.cmd hexo server

然后打开:

1
http://localhost:4000

确认页面正常后,在 PowerShell 里按 Ctrl + C 停止本地预览服务。

六、发布前校验

正式发布前先跑网站契约校验,防止把 WIKI 树、阅读入口、导出按钮、搜索等结构改坏:

1
2
3
4
5
6
cd C:\Users\Lenovo\Documents\搭建个人网站

powershell -ExecutionPolicy Bypass -File .\tools\validate-website-contract.ps1
npm.cmd run clean
npm.cmd run build
powershell -ExecutionPolicy Bypass -File .\tools\validate-website-contract.ps1 -Public

只有这些命令通过后,再发布到服务器。

七、发布到云服务器

服务器发布目录是:

1
/var/www/html

推荐使用当前 SSH 密钥发布:

1
ssh -i "$env:USERPROFILE\.ssh\id_ed25519_aliyun_wangping" -o BatchMode=yes wangping@47.94.4.109 "rm -rf ~/hexo-public && mkdir -p ~/hexo-public"

上传本地生成的 public 文件:

1
scp -i "$env:USERPROFILE\.ssh\id_ed25519_aliyun_wangping" -r public\* wangping@47.94.4.109:~/hexo-public/

同步到网站根目录:

1
ssh -i "$env:USERPROFILE\.ssh\id_ed25519_aliyun_wangping" wangping@47.94.4.109 "rsync -a --delete ~/hexo-public/ /var/www/html/ && echo DEPLOY_OK"

看到 DEPLOY_OK,说明服务器同步完成。

八、线上验证

发布后打开:

1
https://mvwang.cn

如果浏览器缓存导致看不到最新内容,可以加随机参数:

1
https://mvwang.cn/?v=123

也可以用 PowerShell 检查某篇文章是否上线:

1
(Invoke-WebRequest "https://mvwang.cn/?v=$(Get-Random)" -UseBasicParsing).StatusCode

看到 200 只代表页面能访问。最好再确认页面里确实出现了新文章标题或新内容。

九、备份到 GitHub

发布成功后,把源码提交到 GitHub。这样以后换电脑、误删目录或服务器出问题,都能从 GitHub 恢复。

1
2
3
4
5
6
$git = "$env:LOCALAPPDATA\GitHubDesktop\app-3.5.12\resources\app\git\cmd\git.exe"

& $git status --short
& $git add source/_posts
& $git commit -m "Add new article"
& $git push origin main

如果这次还改了导航、WIKI 树、图片或样式,也要把对应文件加入提交。

十、常用位置

位置 用途
source/_posts 普通文章
source/_drafts 草稿,不主动发布
source/images 图片资源
source/knowledge/index.md 知识库首页
source/nav/index.md 网站导航页
themes/landscape-custom/layout/_partial/wiki-sidebar.ejs 左侧 WIKI 树
_config.yml Hexo 基础配置
public Hexo 生成结果,不建议手写

十一、最短记忆版

1
2
3
4
5
6
7
8
写 Markdown
-> npm.cmd run clean
-> npm.cmd run build
-> 本地预览
-> 校验
-> 上传 public
-> 线上检查
-> GitHub 备份

日常维护时,优先改本地源码,不要直接改服务器 /var/www/html 里的 HTML 文件。