
本博客由使用 Gridea 创建,记录一下搭建过程,主要介绍如何同步到 github 和 gitee。
为什么选择 Gridea
现在主流的静态博客有Jekyll、Hugo、Hexo,之所以选择Gridea,两个原因:
- 简单实用,自带客户端,直接下载一个桌面程序安装,配置、预览、同步,就搞定了。
- 有评论功能,只需要简单配置就能加上评论功能。有了评价,博客才有了灵魂。
如何安装
安装的事情太简单了,不想重复,浪费时间。按照参考的链接很容易就上手了。以下只分享一些比较特别的内容。
同步到github
由于国内众所周知的原因,访问github有一定概率的困难。使用 Gridea 的客户端即使测试连接成功,同步文件到 github 上也是经常性失败的。
同步文件到 github 有两种方法:
- 找梯子翻出去,免费的不好用,收费的,嗯,不舍得
- 使用 Github Destop 同步。没搞清楚为什么 Gridea 同步失败,而使用 Github Destop 同步成功的概率非常大。
如何使用 Destop 同步,可参考 关于同步那些事(国内 github 和 gitee)
大致步骤是:
- 删除 output 目录下所有文件
- 使用 Destop 克隆 github 项目到 output 目录
- 在Gridea中点同步,生成文件到 output 目录
- 使用 Destop 同步到 github
同步到gitee
Gridea 本身不支持gitee,需要自己手动同步,为了简化步骤,写成一个脚本,一键同步到 gitee。
主要参考的文章是 采用 Gitee Pages + Gridea + 批处理 搭建个人主页 (win10)
以下分享几段完整的代码。
gitee_init.bat
在站点源文件路径(我的目录是 C:\Users\Administrator\Documents\Gridea)下,创建一个gitee_init.bat,用于初始化 gitee 项目的目录。
cd /d %~dp0
:: 清空,删除再创建目录
rd output_gitee
md output_gitee
:: 进入目录,初始化目录,拉取项目文件
cd output_gitee
git init
git remote add origin https://gitee.com/qinwanlin/qinwanlin.git
git fetch
git reset --hard origin/master
git branch --set-upstream-to=origin/master master
pause
replace.py
因为需要把所有文件中的 github 的域名替换为 gitee 的域名,所以写了一个 python 的脚本,最后编译为 exe 备用。创建一个replace.py的文件。
import os
import sys
path = '.\output_gitee'
ori = 'qinwanlin.github.io'
tar = 'qinwanlin.gitee.io'
def get_filelist(dir):
filelist = []
for home, dirs, files in os.walk(path):
dirs[:] = [d for d in dirs if not d[0] == '.']
print(home + " : " + str(dirs))
for filename in files:
# 文件名列表,包含完整路径
filelist.append(os.path.join(home, filename))
return filelist
def replace(file_path, old_str, new_str):
try:
f = open(file_path,'r+',encoding='utf-8')
alltext = f.read().replace(old_str, new_str)
f.seek(0)
f.truncate()
f.write(alltext)
f.close()
print("replace success: " + file_path)
except Exception as e:
print("replace error : " + file_path)
if __name__ == "__main__":
if len(sys.argv) < 4 :
print("replace dir github_url gitee_url \n")
exit()
path = sys.argv[1]
ori = sys.argv[2]
tar = sys.argv[3]
print(path)
print(ori)
print(tar)
filelist = get_filelist(dir)
print("file count = " + str(len(filelist)))
try:
for file in filelist:
replace(file, ori, tar)
except Exception as e:
print(str(e))
gitee_push.bat
再创建一个 gitee_push.bat 的文件,以后同步文件,就需要点运行一下就可以了。
cd /d %~dp0
:: 拷贝文件
xcopy .\output .\output_gitee /e/c/y
:: 替换地址
replace.exe .\output_gitee qinwanlin.github.io qinwanlin.gitee.io
:: 替换Client ID
replace.exe .\output_gitee 0e579c516c3dcxxxxxxxxxxx d2c9e0edd275537086391bcd1975f92b7db79ffa69yyyyyyyyyyyyy
:: 替换Client Secret
replace.exe .\output_gitee c45605c3d9d96dbf3dab0xxxxxxxxx 2aa3a353f7363fc1e1afacb07871c4dfd7ad88969d942yyyyyyyyyyyyyyyyyy
:: 同步到gitee
cd output_gitee
git add .
git commit -m "Gridea push"
git push -u origin master
echo "请到gitee上点更新pages"
pause
主题
本博客使用的主题是 Concise https://www.jianshu.com/p/78e3ee0d8781,并做了小部分修改。
参考
- Gitee pages 官方指导 https://gitee.com/help/articles/4136#article-header0
- Gridea 官方文档 https://gridea.dev/docs/
- Gridea 上手教程 https://zhuanlan.zhihu.com/p/71681116
- 在 Gridea 中配置 Gitalk 评论系统 https://wherelse.cc/post/config-gitalk-in-the-gridea/
- Hexo 接入码云评论系统 https://blog.csdn.net/adobeid/article/details/82261930
阅读量
loading...