Caddy Server是用Go语言写的HTTP Server,Hugo是用Go语言写的静态网站生成器。这两个都是Go语言生态的一部分,把这两个整合在一起会有什么样的效果呢?通常我们使用Hugo的工作流是首先在本地编辑源文件,然后把从源文件生成的静态网站之后再把生成的页面上传到服务器上。有了Caddy Server的帮助,我们可以直接在服务器上编辑Hugo的源文件。

我们先介绍如何在本地做这个尝试。首先要下载Caddy Server,到download页面,可以看到左边有几个选项,分别是PLATFORM、PLUGINS和LICENSE。一般PLATFORM会自动帮你选择好,我们需要做的是选好PLUGINS。点击“Add Plugins”,在右边弹出的窗口里面把“http.hugo"这个选项给钩上。LICENSE我们选择免费的“Personal(free)”,这样就可以点击“Download”下载了。

Caddy Server使用Go编写,所以下载下来的直接就是一个可执行文件,双击就可以执行了,默认在localhost:2015提供服务。可是你用浏览器打开一看,发现打开的页面里面只显示“404 ……”错误。不要紧张,这说明Caddy工作正常,只是没有配置好而已。

Caddy Server使用一个叫Caddyfile的文件来进行配置。我们在一个Hugo项目的根目录创建Caddyfile,内容如下:

root public
hugo

上面的Caddyfile包含两个指令(directive),第一个是root,意思是把Caddy的根目录设在当前的public目录,也就是Hugo生成网站页面所在的目录;第二个是hugo,意思是执行Caddy的http.hugo插件(还记得前面我们下载Caddy Server的时候是带有http.hugo插件的吗?如果没有带上http.hugo,这条指令就用不了)

在cadday里面一切都是plugin,就连HTTP Server也是以plugin的形式存在的。Plugin需要和Caddy Server编译在一起才能起作用。

我们在当前目录运行caddy,就可以在默认的地址localhost:2015看到hugo生成的网站。

Caddy的“http.hugo”使用了另一个插件“http.filemanager“的功能。你可以在localhost:2015/admin下打开“http.filemanager“界面,需要登录名和密码,默认是admin和admin。登录之后就是一个文件管理器,显示的是Hugo项目所在的文件目录。因为集成了CodeMirror编辑器,可以在/admin下面直接编辑markdown文件,保存之后改动会立即生效。

其他参考连接:

(完)