由于最近企鹅搞了学生优惠,于是昨晚上传资料认证,今天一早拿到了优惠卷,又买了一个VPS和域名,今天就完全在玩耍新玩具了,最后得出一个结论

国内的VPS除了ssh连接速度稍快外没有其他任何的优势,国内的域名服务也是一样坑爹

扯远了,刚刚弄好了静态博客,地址是moe.wbuntu.com,以后会把技术外的东西写在这里

通过这次折腾,我们可以学习到,跑通流程,她喵的是很重要的,标题这么长不是闹着玩的

1.安装与使用hugo

使用brew安装或者在官方页面下载编译后的二进制文件,或者直接从源码编译,官方教材十分完善

官方链接:Introduction to Hugo

创建站点

1
hugo new site siteProjectName

cd进入创建的文件夹,接下来的hugo命令都需要在这个站点文件夹中运行,否则会报错,hugo命令根据当前文件夹中的config.toml配置

1
hugo new about.md

默认在content文件夹下创建新文件,生成站点的about页面

1
hugo new post/first.md

默认在content文件夹的子目录post下创建新文件,生成对应文章

1
2
hugo server --buildDrafts
hugo --buildDrafts

如同字面意思,从md生成html,不过前者为本地调试使用,后者根据config.toml中定义的baseUrl生成页面,也可以手动指定其他选项,或者直接在config.toml中配置,具体参见官方教程

2.配置Git

我希望我可以在本地写完博客,然后推送到服务器显示

首先需要一个静态网页服务器,可以选择使用Nginx,安装后,默认网页服务器文件夹是**/ush/share/nginx/html**

然后配置Git服务器端,建立一个新工程

1
2
3
4
5
6
7
8
apt-get install git-core -y
cd ~
mkdir blog.git
cd blog.git
git init --bare
cd hooks
touch post-receive
vi post-receive

在post-receive中输入以下内容,当push到仓库了,会自动触发该脚本

1
2
3
4
5
6
7
8
#!/bin/sh 
GIT_REPO=/root/blog.git
TMP_GIT_CLONE=/tmp/blog
NGINX_HTML=/usr/share/nginx/html
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${NGINX_HTML}/*
cp -rf ${TMP_GIT_CLONE}/* ${NGINX_HTML}

记得添加可执行权限

然后每次推送时,会先清空html目录,然后将最新内容拷贝进去

3.本地推送设置

本地推送的文件夹为站点工程文件夹下的public文件夹,初始化后添加远程仓库

1
2
3
4
5
6
cd public
git init
git add .
git commit -m "Initial commit"
git remote add origin [email protected]:/root/blog.git
git push origin master

如果VPS的ssh不是默认的22,可以直接设置

1
git remote set-url origin ssh://[email protected]:Port/root/blog.git

如果需要忽略文件,可以按以下格式添加

1
echo ".DS_Store" >> .gitignore

如果更新了文章,要进行再次推送时,先

1
2
3
git add -A
git commit -m "messages"
git push origin master

也可以设置默认推送的分支

1
git push --set-upstream origin master

之后使用git push即可