一、基本原理
这个网站不是在服务器上直接编辑文章,而是在本地电脑维护源码。
完整流程是:
1 | 本地 Markdown 文章 |
所以真正重要的是本地源码目录和 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 | --- |
常用字段含义:
| 字段 | 作用 |
|---|---|
title |
文章标题 |
date |
发布时间 |
categories |
分类 |
tags |
标签 |
excerpt |
首页或列表页摘要 |
正文使用 Markdown 写即可,例如标题、列表、代码块、表格都可以。
五、本地预览
打开 PowerShell,进入网站目录:
1 | cd C:\Users\Lenovo\Documents\搭建个人网站 |
先清理并生成网页:
1 | npm.cmd run clean |
如果要在本地浏览器预览:
1 | npx.cmd hexo server |
然后打开:
1 | http://localhost:4000 |
确认页面正常后,在 PowerShell 里按 Ctrl + C 停止本地预览服务。
六、发布前校验
正式发布前先跑网站契约校验,防止把 WIKI 树、阅读入口、导出按钮、搜索等结构改坏:
1 | cd C:\Users\Lenovo\Documents\搭建个人网站 |
只有这些命令通过后,再发布到服务器。
七、发布到云服务器
服务器发布目录是:
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 | $git = "$env:LOCALAPPDATA\GitHubDesktop\app-3.5.12\resources\app\git\cmd\git.exe" |
如果这次还改了导航、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 | 写 Markdown |
日常维护时,优先改本地源码,不要直接改服务器 /var/www/html 里的 HTML 文件。