采用Gitee Pages + Gridea + 批处理 搭建个人主页(win10)
<p><strong>这样就可以啦!以后发博客只需要两步</strong></p><ol>
<li>Gridea编辑,预览同步(并不是真正同步,而是编译好静态网页)</li>
<li>运行批处理文件</li>
</ol>
<h1 id="1了解-gridea-的原理">1.了解 Gridea 的原理</h1>
<p>Gridea 是优秀的开源静态网页编译器。希望Gridea 越来越好,我们都能享受分享的快乐!</p>
<blockquote>
<p>如果打不开 Gridea,可以等一等,可能单纯就是<strong>卡掉了</strong></p>
</blockquote>
<p>我们主要可以利用相关主题,通过GUI快速进行部署</p>
<p>更多详细内容请见</p>
<p>Gridea.dev</p>
<h1 id="2注册gitee账号打开gitee-pages">2.注册Gitee账号,打开Gitee Pages</h1>
<p>在此不做详述,只需要参考任何一个 Hexo 或者 jekerll + Gitee 的教程即可</p>
<p>一个很棒的教程,和Hexo相关的之后我们交给 Gridea</p>
<blockquote>
<p>我们的目的只是用Gridea编译markdown 成为静态网页,并且添加链接等的功能</p>
<p>至于Git ,我们之后用命令实现</p>
</blockquote>
<p>注册好之后,其实我们并不需要令牌,请保证仓库是公开的,另外注意<code>个人信息安全</code></p>
<h1 id="3充分利用gridea-特性完成静态网页生成">3.充分利用Gridea 特性,完成静态网页生成</h1>
<h2 id="一个细节问题如何选择主题">一个细节问题:如何选择主题</h2>
<p>主题在这里下载</p>
<p>选择主题之后大家可以自行配置,这并不影响主页的部署/</p>
<h2 id="关于服务器设置">关于服务器设置</h2>
<ol>
<li><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724161534.png" alt="" loading="lazy"></li>
<li><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724170100.png" alt="" loading="lazy"></li>
</ol>
<p>选择Github,可以按照自己的情况进行修改</p>
<blockquote>
<p>至于为什么这样设置,本人不是特别清楚</p>
<p>我的想法是尽可能和github 对照着来,因为其实本质上我们都是要利用一个远端仓库,相关链接的作用,好像是体现在超链接上面</p>
<p><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724162155.png" alt="" loading="lazy"></p>
<p><code>这里推荐 VSCode</code></p>
</blockquote>
<h2 id="gridea-生成静态网页">Gridea 生成静态网页</h2>
<p>编辑好之后如果我们点击了 <code>Test Connection</code>,肯定是连不上的</p>
<blockquote>
<p><strong>在这里建议大家不要过多的点击Test Connection,主要尝试 Sync 和 Preview就好,因为Test 貌似会建立一个.git 文件夹</strong><br>
如果大家可以连上,那么我的这篇博客也就没什么意义了<br>
希望Gridea 继续加油,早日实现对国内Gitee的支持,coding pages 的Page 域名已经是随机分配的了,所以没有采用</p>
</blockquote>
<p><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724162357.png" alt="" loading="lazy"></p>
<p><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724162329.png" alt="" loading="lazy"></p>
<p><strong>莫慌</strong>,Preview成功预览之后,点击 Sync</p>
<p><img src="https://img-blog.csdnimg.cn/20200724170115672.png" alt="" loading="lazy"></p>
<p>报错是正常的,如果连上了,也恭喜你呀哈哈</p>
<p><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724162616.png" alt="" loading="lazy"></p>
<h1 id="核心经验分享bat--git">核心经验分享:bat + git</h1>
<p>这时候,我们可以关掉Gridea了</p>
<p><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724162907.png" alt="" loading="lazy"></p>
<p>橙色圈出来的是需要涉及到的部分,蓝色的部分是我自己的文件,其他文件应该是相同的</p>
<blockquote>
<p>这里最重要的就是 output文件</p>
<p>可以打开看一下,里面已经有了.git ,还有很多css + html</p>
<p><img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724163037.png" alt="" loading="lazy"></p>
</blockquote>
<h3 id="放弃掉gridea-产生的git用-gitee替换github">放弃掉Gridea 产生的.git,用 <code>gitee</code>替换<code>github</code></h3>
<p>这样做的主要目的是防止之后需要出现的pull 等操作,否则比较麻烦</p>
<p>替换的代码可以用任何一种语言。我尝试过bat,但是很奇怪地非常慢……</p>
<p>这里给出python 代码,遍历所有文件,并且替换字符串,路径设置为对应的 <code>output</code></p>
<pre><code class="language-python">import os
path = 'E:\\gridea_source\\output'
exclude_path = '.git'
ori = 'XXX.github.io'
tar = 'XXX.gitee.io'
def get_filelist(dir):
filelist = []
for home, dirs, files in os.walk(path):
dirs[:] = == '.']
print(dirs)
for filename in files:
# 文件名列表,包含完整路径
filelist.append(os.path.join(home, filename))
# 文件名列表,只包含文件名
# Filelist.append( filename)
return filelist
if __name__ == "__main__":
filelist = get_filelist(dir)
print("#files = "+str(len(filelist)))
try:
for file in filelist:
with open(file, 'w+') as f:
f.write(f.read().replace(ori, tar))
input("OK")
except Exception as e:
print(str(e))
input("Error")
# 别忘了关闭文件
f.flush()
f.close()
</code></pre>
<p>之后采用 <code>pyinstaller</code>编译为 exe,方便调用</p>
<blockquote>
<p><code>pyinstaller</code>编译为 exe采用命令 <code>pyinstaller -F replace.py(对应的python文件名)</code></p>
<p>编译好之后,其他文件夹删掉就可以,只留下.exe</p>
</blockquote>
<h3 id="批处理拉取远程仓库更新文件">批处理拉取远程仓库,更新文件</h3>
<p>首先,我们在<code>output</code>同级建立一个 <code>COMMIT</code> 文件夹</p>
<pre><code class="language-bash">cd "./COMMIT"
git init
git remote add origin https://gitee.com/ZXYFrank/ZXYFrank.git
git fetch
git reset --hard origin/master
git branch --set-upstream-to=origin/master master
</code></pre>
<p>采用以上命令拉取远程仓库到 <code>COMMIT</code></p>
<pre><code class="language-bash">start "../replace.exe"
</code></pre>
<p>然后运行一下编译好的exe,换掉含有 github的链接</p>
<pre><code class="language-bash">cd "../output"
rd /s/q .git
cd ".."
xcopy /e/c/h/z/y "./output" "./COMMIT"
</code></pre>
<p>采用删掉output 当中的git文件,(剩下的就是干货了),用 <code>xcopy</code>复制到<code>COMMIT</code>里面</p>
<pre><code class="language-bash">cd /d "./COMMIT"
rem pushing
git add .
set /p id= "Enter Message: "
git commit -m "%id%"
git push -u origin master
echo "Don't forget to deploy!"
pause
</code></pre>
<p>之后切换到 COMMIT,开始经典commit push 操作</p>
<p>代码合起来之后,保存成 .bat,之后运行就好</p>
<pre><code class="language-bash">cd "./COMMIT"
git init
git remote add origin https://gitee.com/ZXYFrank/ZXYFrank.git
git fetch
git reset --hard origin/master
git branch --set-upstream-to=origin/master master
start "../replace.exe"
rem delete git
cd "../output"
rd /s/q .git
cd ".."
xcopy /e/c/h/z/y "./output" "./COMMIT"
cd /d "./COMMIT"
rem pushing
git add .
set /p id= "Enter Message: "
git commit -m "%id%"
git push -u origin master
echo "Don't forget to deploy!"
pause
</code></pre>
<h3 id="一定别忘了部署">一定别忘了部署!</h3>
<blockquote>
<p>另外提醒大家一下,部署好之后如果效果没有发生变化,可以清空一下浏览器的缓存(尤其是Cookie)<br>
<img src="https://gitee.com/ZXYFrank/picgo/raw/master/img/20200724164523.png" alt="" loading="lazy"></p>
</blockquote>
<p><strong>这样就可以啦!以后发博客只需要两步</strong></p>
<ol>
<li>Gridea编辑,预览同步(并不是真正同步,而是编译好静态网页)</li>
<li>运行批处理文件</li>
</ol>
<p>欢迎大家交流!也希望 Gridea 尽早支持 Gitee,有更多好平台可以供我们使用!</p>
<p>欢迎大家来我的博客</p>
<h5 id="references">references</h5>
<p>使用Gitee+Hexo搭建个人博客</p>
<p>搭建Gridea+gitee+Valine评论+Valine-Admin评论后台的个人博客</p>
</div>
<div id="MySignature" role="contentinfo">
本博文本意在于记录个人的思考与经验,部分博文采用英语写作,可能影响可读性,请见谅
<p>本文来自博客园,作者:ZXYFrank,转载请注明原文链接:https://www.cnblogs.com/zxyfrank/p/gridea-win10.html</p><br><br>
来源:https://www.cnblogs.com/zxyfrank/p/gridea-win10.html
頁:
[1]