hexo博客仓库更名备份记录

旧站点 数年前部署在github上,hexo发布后是编译过的html文件,源文件.md和配置文件等并不上传到github。年代久远,之前电脑及文件均已无法找到,无法再更新,重新部署记录。

基本思路

  • github新建一个私有仓库,备份源文件等;
  • github新建一个公开仓库,发布博客文件。

准备工作

  • 密钥ssh-keygen -t rsa -b 4096 -C “your_email@example.com
  • 登录github,Repositories,heiok.github.io改名为oldsite,Settings,Pages,Custom domain,删除域名绑定;
  • 新建私有仓库hexo,新建公开仓库heiok.github.io(域名绑定);
  • 测试ssh -T git@github.com

博客发布

  • 安装 npm install -g cnpm –registry=https://registry.npmmirror.com

  • 插件 cnpm install hexo-deployer-git –save

  • 设置 hexo/_config.yml

    1
    2
    3
    4
    5
    6
    # Deployment
    ## Docs: https://hexo.io/docs/one-command-deployment
    deploy:
    type: git
    repo: git@github.com:heiok/heiok.github.io.git
    branch: main
  • 发布

    1
    2
    3
    hexo clean   // 清除缓存
    hexo g // 生成静态网页
    hexo d // 开始部署

备份推送

如果远程仓库已经有内容,先拉取远程内容解决冲突后再推送:

1
2
3
4
5
6
7
git pull origin main --rebase
git init
git remote add origin git@github.com:heiok/hexo.git
git checkout -b main
git add .
git commit -m "blog source files backup"
git push origin main

旧站处理

站点改名为oldsite后,原站点CSS样式需要处理。

1
2
3
4
5
6
7
git clone git@github.com:heiok/oldsite.git
find . -name "*.html" -exec sed -i 's|href="/css|href="/oldsite/css|g' {} \;
find . -name "*.html" -exec sed -i 's|src="/js|src="/oldsite/js|g' {} \;
find . -name "*.html" -exec sed -i 's|href="/\([^o][^/]*\)|href="/oldsite/\1|g' {} \;
find . -name "*.html" -exec sed -i 's|href="/"|href="/oldsite"|' {} \;
find . -name "*.html" -exec sed -i 's|src="/images/|src="/oldsite/images/|g' {} \;
find . -name "*.html" -exec sed -i 's|content="/images/|content="/oldsite/images/|g' {} \;