published on

Hugo+Caddy

#环境配置 > Hugo : hugo的下载地址(github)
Caddy : 官网下载,需要选择http.git,web.hook插件
推荐下载新版本,原因为apt的较老,当然能运作也无伤大雅

#Hugo的配置 我们假设已经安装无误了,那么我们将开始建立静态网站

hugo new site newsite
//会生成一个叫 newsite 的文件夹,存放你的站点里面有一些文件夹,但是,是空的
hugo new post/first.md
//这时会在content目录下生成 post/first.md 这个文件,编辑它,格式是Markdown,前面draft一行,删去为正式的文章
hugo server
//这时hugo已经在本地运行了,浏览器访问 http://localhost:1313 可以看到效果,但是,是白的对吗:-)

我们要想看到内容就要为 hugo 选择一款主题,可以自己写也可以在Hugo主题这里选择,然后按照上面的操作保存下来。
假设我们的主题名称是 base16

hugo server --theme=base16          //调试使用
或
hugo --destination=newsite/public --theme=base16        //静态生成

这时网站已经有了第一篇博客,就是 first.md 经过渲染得到的。渲染后的静态网页会放在 public 文件夹,但是注意到如果使用hugo的调试模式,并不会保存渲染后的静态网页。
我们可以在后面加上 –baseURL=” 指定 baseURL,也可以在 config.toml 中修改。理论上是修改为你的域名但是我确实设置为’/‘后正常的,同时在config.toml中添加 “relativeurls = true” 使用相对路径规避一些问题。
在指定了主题后,我们再次打开调试模式就能看到内容了。至此本地的任务完成了。

考虑在根目录使用git同步,假设你已经同步到了你的remote git server 然后也有了token,这里我使用的github,上传的时候使用ssh方式push,同样的,pull也是ssh方式,这样可以使用私有库。

服务器端

此处po上CaddyFile代码

  clearain.cn {
	tls email@example.cn
	root /var/www/Blog/public
	gzip
	git {
		repo github.com/Your_account/blog.git
		branch master
		path /var/www/Blog
		then hugo --destination=/var/www/Blog/public --theme=hugo-base16-theme
    #这里是在获得push信号后自动使用hugo渲染,要指明目标文件夹和主题
    #注意git的话,不要把有改动的文件夹添加进来
		hook /webhookgit Here_is_your_token
		hook_type github
	}
}

如上,完成。若是有其他的问题,,,百度怎么样,比如hook的token和ssh密钥。:-D