本博客使用hexo+github搭建
- 申请一个github账号
- 安装了node.js、npm,并了解相关基础知识
- 安装了git for windows(或者其它git客户端)
新建一个名为你的用户名.github.io的仓库
ssh-keygen -t rsa -C "邮件地址"
$ git config --global user.name "username"// 你的github用户名,非昵称
$ git config --global user.email "xxx@qq.com"// 填写你的github注册邮箱
$ npm install -g hexo
$ cd /d/Code/hexo/
$ hexo init
$ cd /d/Code/hexo/
$ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia
$ hexo g # 生成
$ hexo s # 启动服务
$ hexo d #提交
格式
https://raw.githubusercontent.com/{user}/{repo}/master/{folderpath}/{filename}
示例
https://raw.githubusercontent.com/PGzxc/CDN/master/blog-Interview/flutter-01-widget-life.webp
格式
https://cdn.jsdelivr.net/gh/{user}/{repo}/{folderpath}/{filename}
示例
https://cdn.jsdelivr.net/gh/PGzxc/CDN/blog-hmos/harmonyos-lesson1-xmind.png
示例
https://jsd.onmicrosoft.cn/gh/PGzxc/CDN/blog-hmos/harmonyos-lesson1-xmind.png
npm install hexo-offline --save
// hexo-offline v2 配置示例
module.exports = {
// 是否启用插件
enable: true,
// 缓存的文件匹配规则(支持 glob)
caches: [
'**/*.css',
'**/*.js',
'**/*.woff2',
'**/*.woff',
'**/*.ttf',
'**/*.svg',
'**/*.png',
'**/*.jpg',
'**/*.gif',
'**/*.webp',
'**/*.ico'
],
// 忽略缓存的文件
ignores: [
'**/drafts/**'
],
// Workbox 配置(生成的 Service Worker 逻辑)
workbox: {
globPatterns: ['**/*.{js,css,html,png,jpg,jpeg,svg,woff2}'],
maximumFileSizeToCacheInBytes: 5 * 1024 * 1024 // 5MB
},
// 额外要缓存的外部资源(可选)
external: [
'/lib/fontawesome/css/all.min.css',
'/lib/animate/animate.min.css',
'/lib/gitalk/gitalk.css',
'/lib/gitalk/gitalk.min.js'
]
}
1.目录结构
- 中文: source/ → 生成到 public/
- 英文: source-en/ → 生成到 public/en/
- 日文: source-ja/ → 生成到 public/ja/
2.配置文件
- _config.yml :默认配置(中文)
- _config.en.yml :英文配置覆盖
- _config.ja.yml :日文配置覆盖
3.语言切换 :
- 在页面底部添加语言切换按钮
- 实现路径保存功能,切换语言时保持当前页面路径
1. 创建文章 :
- 中文: hexo n 文章标题 → 生成到 source/_posts
- 英文: hexo n --config _config.yml,_config.en.yml 文章标题 → 生成到 source-en/_posts
- 日文: hexo n --config _config.yml,_config.ja.yml 文章标题 → 生成到 source-ja/_posts
2.本地预览 :
- 启动服务器: npm start (默认使用中文配置)
- 访问地址:
- 中文: http://localhost:7700/
- 英文: http://localhost:7700/en/
- 日文: http://localhost:7700/ja/
3.构建部署 :
- 构建所有语言: npm run generate:all
- 构建单个语言:
- 中文: npm run generate:zh
- 英文: npm run generate:en
- 日文: npm run generate:ja
- 部署:推送代码到 GitHub,触发 GitHub Actions 自动部署
1、npm 脚本
# 构建所有语言版本
npm run generate:all
# 构建单个语言版本
npm run generate:zh # 中文
npm run generate:en # 英文
npm run generate:ja # 日文
# 本地预览
npm start
2、Hexo 命令 :
# 清理缓存
hexo clean
# 生成中文版本
hexo generate
# 生成英文版本
hexo generate --config _config.yml,_config.en.yml
# 生成日文版本
hexo generate --config _config.yml,_config.ja.yml
# 本地服务器
hexo server
3、GitHub Actions :
- 自动构建所有语言版本并部署到 GitHub Pages
- 访问地址:
--中文: https://pgzxc.github.io/
--英文: https://pgzxc.github.io/en/
--日文: https://pgzxc.github.io/ja/
- 支持 OpenAI(GPT-4o / GPT-4.1 / gpt-4o-mini)作为主翻译服务
- 支持 DeepL API 用于日文翻译优化
- 支持百度翻译 API
- 根据要求,不使用 Google Translate API
- 暂时不翻译文章文件,因为文章太多渲染时间过长
- 已翻译的文件不会重复翻译,只翻译新的或更新的文件
- 自动创建目标语言目录结构
- 支持通过 npm run translate 命令执行翻译操作
- 日文翻译自动使用 DeepL 进行优化
- 脚本成功运行,生成了英文和日语版本的导航、友链和简历文件
- 由于没有设置 API 密钥,当前翻译内容为原文,但脚本逻辑正确
- 当您设置了正确的 API 密钥后,脚本会进行实际的翻译
1. 在 scripts/translate.js 文件中设置您的 API 密钥
2. 运行 npm run translate 命令执行翻译操作
3. 运行 hexo generate 命令生成静态文件
4. 运行 hexo server 命令启动服务器,测试多语言切换功能