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

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

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

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

1.安装与使用hugo

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

官方链接:Introduction to Hugo

创建站点

hugo new site siteProjectName

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

hugo new about.md

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

hugo new post/first.md

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

hugo server --buildDrafts

hugo --buildDrafts

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

2.配置Git

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

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

/ush/share/nginx/html

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

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到仓库了,会自动触发该脚本

#!/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文件夹,初始化后添加远程仓库

cd public

git init

git add .

git commit -m "Initial commit"

git remote add origin root@IPAddress:/root/blog.git

git push origin master

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

git remote set-url origin ssh://root@IPAddress:Port/root/blog.git

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

echo ".DS_Store" >> .gitignore

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

git add -A

git commit -m "messages"

git push origin master

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

git push --set-upstream origin master

之后使用git push即可