0%

github,gitee的page与加速

Abstract:实现在github上搭建page.实现在github上的pull/push加速.实现gitee对github 的导入,使得gitee具有备份功能.

就是为github搭建代理,包括加速http和ssh.然后搭建github pages.

实现了之后,我问我自己为什么要选择jekyll呢,那是何等的折磨.搭建方案不重要,重要的是我的博客文字.

Keywords:github pages,hexo

参考文献

[1] 代理服务器与ssh和git - cc的小站 (kouyt5.github.io)

[2] Git Stash命令的使用 - 简书 (jianshu.com)

[3] Hexo 最常用的几个命令_到现在负的博客-CSDN博客

github的pull/push加速问题

私钥是否能通用,gitee和github能同时用一个公钥吗?

按照原理,我认为是可以的.因为仓库才能决定要发往哪个地方.

先尝试使用github专用的密钥

实验过程

1 测试了一下,git init.config文件只是有core,没有用户名邮箱之类的东西.

2 加入ssh-key,这是gitea使用的.测试git clone.

成功,但有问题.原因是没找到私钥github.原来是我写了两个Host,一个私钥是github,一个私钥是gitea的,虽然文件名字不带gitea.遂删除一个Host,继续测试.成功.

我想测试网速问题.但是通过ssh -T终端说but github does not provide shell access.先测试一下能不能push.不能push,原因是没有用户名和邮箱,添加上,测试.成功.但是网速273kb,有点慢,加点文件试一下,测试.938kb,还可以呀,关掉vpn,测试.成功,网速1m多,可以呀,还要啥自行车,为啥ssh连接github不用vpn也很快呢.哪个没有用户名的原因可能是我的gitea中邮箱是liji@gitea.com,而github是qq邮箱,所以才不让我用,所以我要把密钥改成gitee的.还是不行,是不是密钥都被污染了?重新生成新的密钥试一试,测试.

最终我放弃了.我就这样吧,每一个仓库我都用local的用户名和邮箱.不折腾了.

3 实验: ssh加速的github测试?

1)测试方案一

1
2
3
4
5
6
7
8
9
10
# 基于http的git和基于http或socks5的代理
git config --global http.proxy "http://127.0.0.1:1080"#换成自己代理的端口号
git config --global https.proxy "http://127.0.0.1:1080"
git config --global http.proxy "socks5://127.0.0.1:1080"
git config --global https.proxy "socks5://127.0.0.1:1080"
#基于ssh的git和基于http或socks5的代理
Host github.com
ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1080
Host github.com
ProxyCommand nc -v -x 127.0.0.1:1080 %h %p

结果都不行,这好像是Linux的

**注意[http] proxy=http://user:password@ip:1080**还好我们的没有用户名和密码限制,直接输入@后边的ip及之后内容就可以了.

  1. 测试2 [^1]
1
2
ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -H 127.0.0.1:10809 %h %p
ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -S 127.0.0.1:10808 %h %p

结果可以

条件 下载速度
ssh 无 1.30m/s
ssh socks5 1.15m/s
ssh http 1.34m/s

合着费了半天劲,没啥用呀.

4 实验: ssh实现github不用设置gitconfig或者用户名和邮箱也能push?

  1. 使用如下设置去push?
1
2
3
4
5
6
Host github.com
HostName github.com
#User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_github
#ProxyCommand nc -X 5 x 127.0.0.1:10808 %h %p

不行,改成User Smithol也不行.可能需要重新来.

  1. 如下设置去push
1
2
3
4
5
6
7
# github
Host github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_github
#ProxyCommand nc -X 5 x 127.0.0.1:10808 %h %p

不行,估计现在改了user git 会还是不行

  1. 如下设置去push
1
2
3
4
5
6
7
# github
Host github.com
HostName github.com
User Smithol
#PreferredAuthentications publickey
IdentityFile ~/.ssh/id_github
#ProxyCommand nc -X 5 x 127.0.0.1:10808 %h %p

不行

4)设置.gitconfig文件

1
2
3
[user]
name = li--ji#这是gitee中的名字
email = 1216990865@qq.com#gitee和github都用这个名字

设置完了居然就能push了.

5)在4)基础上去掉user呢.

结果是可以的,看来就是和.gitconfig有关.

6)如果.gitconfig改成没有邮箱呢?

不行

  1. 如下设置.gitconfig
1
2
3
4
[user]
#name = li--ji
email = adopemind@163.com
email = 1216990865@qq.com

可以的.但是感觉不太合适,命令行添加多个邮箱应该报错吧?

总之,也算是解决了不能push的问题.最终如下设置.gitconfig即可.

1
2
3
4
[user]
#name = li--ji
#email = adopemind@163.com
email = 1216990865@qq.com

我好像明白了,gitconfig可以不用正确的Email,或者name。这个只是说明是谁修改的,至于你叫啥啥来头,没必要。

1
2
3
[user]
name = liji
email = 1216990865@qq.com

git pull实验[2]及常用命令

改动后的文件会影响git的正常拉取(git提示先处理本地的改动才可以拉取)

1
2
git stash
git status

github page实现

1github寻找模板

在github上搜索jekyll,或jekyll pages,好看的就fork,最后pull到本地改成自己的.

2 不错的安装hexo的网站

用 Hexo 和 GitHub Pages 搭建博客 | 途探生灵 (ryanluoxu.github.io)

3 最终选择了chirpy jekyll主题

cotes2020/jekyll-theme-chirpy: A minimal, responsive, and powerful Jekyll theme for presenting professional writing (github.com)

遇到的问题

1)原始主题在linux系统中完成,而且删除index.html文件,不然page老是显示这个界面

  1. 可能会用到docker.将s2020020922加入docker组
1
2
3
4
5
sudo groupadd docker     #添加docker用户组
addgroup xingxing docker #将xingxing用户添加到docker
newgrp docker #更新用户组;这个很重要.
docker ps #测试docker命令是否可以使用sudo正常使用
groups xingxing #查看xingxing用户所属于的组.

4 哦,我亲爱的hexo

由于chirpy老是没法添加分类,这就很烦。我决定放弃jekyll,选择大众化的hexo,还是稳定的好呀,烂大街也没事,重要的是内容.

1)安装git和node.js,node是js的运行环境.

2)安装Hexo

1
2
3
4
5
6
7
8
npm config set registry https://registry.npm.taobao.org #国内镜像,在用户下的.npmrc中.
npm i hexo-cli -g
hexo init . #.是当前文件夹,不是当前文件就指定文件
npm install
# 新建博客
hexo new "博客名" #可以取_post中自己建立md文件
hexo g # 生成静态网页 ,generate
hexo s# 打开本地服务器,serve

其他常用命令

1
2
hexo clean #清除db.json,public.网络异常时就使用这个重新生成网页.
hexo new page aboutme # 新建一个标题为 aboutme 的页面,默认链接地址为 主页地址/aboutme/

目录结构

1
2
3
4
5
6
7
8
.
├── _config.yml # 网站配置信息
├── package.json # 应用程序信息
├── scaffolds # 模板文件夹.新建文章时,hexo根据scaffolds建立文件
├── source # 存放用户资源
| ├── _drafts
| └── _posts
└── themes # 主题文件夹,可更换主题.
  1. 与github连接

就是把public文件夹上传到Page的仓库.

方法一:把Page的git放在public文件夹,push文件

方法二: 如下

1
2
3
4
5
6
7
8
9
npm install hexo-deployer-git --save #安装此库
#修改_config.yml.对 Hexo 根目录 _config.yml 的修改,需要重启本地服务器后才能预览效果
deploy:
type: git
repo: git@github.com:xxx/xxx.github.io.git
branch: main
#现在是main了.xxx是github用户名.
#deploy
hexo d

4)自动部署hexo

参考文献

[1] GitHub Actions 来自动部署 Hexo - 知乎 (zhihu.com)

目的是使用github的actions,要创建.github/workflows/deploy.yml,有时间再看,想起了被jekyll支配的恐惧.

  1. 更换主题

为 Hexo 博客更换主题 - 知乎 (zhihu.com)

当然是next了.

有人使用了git submodule add https://github.com/theme-next/hexo-theme-next themes/next,可我不需要,我的hexo项目中就没有.git文件,也就不能submodule了.

所以我是在theme文件下用git clone git@github.com:Smithol/hexo-theme-next.git ./next

_config.ymltheme添加theme:next就可以使用next主题了

  1. next 中 为tags等添加page

参考文献:[1] Hexo博客NexT主题下添加分类、标签、关于菜单项_野猿新一-CSDN博客_next 标签

[2] 为 Hexo 博客更换主题 - 知乎 (zhihu.com)

1
2
3
4
hexo new page "tags"
#source/tags/index.md 添加
type: "tags"

  1. next添加标签云

参考文献

参考文献: Hexo博客Next主题建立标签云hexo-tag-cloud及效果展示_AomanHao的博客-CSDN博客

修改内容可以去github找hexo-tag-cloud.

8)常见问题

参考文献

hexo next 主题优化 | 这里可能有你遇到所有问题的答案 - 少数派 (sspai.com)

这篇文章解决了很多问题.

1
2
3
4
文章部分显示
修改头像
修改站点icon
搜索功能
  1. next 自带的标签云

自带的标签云太小了。在theme/next/_config.yml修改tagcloud.

1
2
3
4
5
6
tagcloud:
min: 20 # Minimun font size in px
max: 30 # Maxium font size in px
start: "#666" # Start color (hex, rgba, hsla or color keywords)
end: "#111" # End color (hex, rgba, hsla or color keywords)
amount: 200

#666即#6666666.颜色0-255即00-ff.

  1. 官方文档yyds

参考文献

nexT官方文档: 开始使用 - NexT 使用文档 (iissnan.com)

  1. 博客名字颜色

参考文献

【Hexo】Next主题标题颜色设置 | 橘子树下 (nokiasonic.github.io)

找到\themes\next\source\css\_common\outline\header\site-meta.styl文件。编辑修改.brand{}color参数配置为#fc6423(橘色)

12)喜欢的博客主题

Cofess - Web Developer & Designer

cofess (Sunny) (github.com)

我的jekyll呀

CodeSwift

  1. 添加图片

参考文献

hexo博客中插入的图片不显示_煜成’Studio的博客-CSDN博客_hexo 图片不显示

HEXO插入图片(详细版) - 简书 (jianshu.com)

1
2
3
4
npm install https://github.com/CodeFalling/hexo-asset-image --save #download
打开/node_modules/hexo-asset-image/index.js,替换一些东西
_config.yml文件,post_asset_folder: true
文件路径:./111/222.png