使用hugo在github搭建个人博客(二)

Thu, Sep 3, 2015 in using tags

一、安装Hugo

Hugo的安装方式有两种,一种是直接下载编译好的Hugo二进制文件。

另一种方式是获取Hugo的源码,自己编译。

本文演示二进制安装:

Hugo二进制下载地址:https://github.com/spf13/hugo/releases

注意:下载下来后,解压,将解压后的文件夹名称和文件夹里面的.exe文件都改为同一个名称,否则hugo无法运行。(本文都改为hugo)

接下来配置path路径,右击计算机-属性-高级系统设置-高级-环境变量-系统变量,找到path,添加hugo路径,我把hugo文件夹放到了D盘下面,所以添加D:\hugo

此时点击hugo.exe,几秒之后会闪退,我们看打开的命令行,显示应该在cmd里面打开hugo.exe,

于是我们打开cmd,切换到hugo所在目录,输入hugo回车,此时出现error,不要慌,让我们看看错误内容,它提示我们应该建立一个站点了。

二、生成一个简单网站

于是我们来建立站点试试

输入下面的命令,回车

hugo new site blog

然后在hugo下会生成一个blog文件夹,里面会自动生成这样一个目录结构:

  • content/ 内容,存放你写的markdown文章

  • layouts/ 网站的模板文件

  • static/ 静态文件,图片,js, css

  • archetypes/ 针对类型的内容配置

  • config.toml 站点的配置文件,也可以用yaml, json格式


此时的blog什么都没有,让我们来加点东西

添加内容

进入blog目录

 cd blog

 hugo new post/first.md

执行完后,会在content/post目录自动生成一个MarkDown格式的first.md文件:

+++
date = "2015-07-14T07:32:44-07:23"
draft = true
title = "first"
+++
Content of the file goes here

+++可以替换为Jekyll一样的—

我们可以在正文处添加内容11111

注意: drafe是草稿,在运行之前要改为true,或者删除这一行,否则在启动server时若没有指定显示草稿,默认为在网页上不显示。

+++
date = "2015-07-14T07:32:44-07:23"
draft = true
title = "first"
+++
11111

现在我们让我们启动服务

hugo server

打开网页,输入127.0.0.1:1313或localhost:1313,然而什么都没有,那是因为还没有网站模板。

添加模板

让我们用git从github上面把hugo的主题下载到本地。

打开git-bash.exe,切换到blog目录

cd d:
cd hugo\blog
git clone --recursive https://github.com/spf13/hugoThemes themes

完成以后我们会看到blog目录下多了一个theme目录,里面每个文件夹都是一个主题。

随便打开一个主题,我们会发现共有的目录为:

  • images 存放此模板的网站效果图
  • layouts

    _default 存放默认页面,一般为single.html(正文页面),list.html(列表页面)

    partials 存放页面组件,例如head.html、footer.html等

  • 404.html 404出错页面

  • index.html 默认页面

通过浏览不同主题的images效果图,我最终选了hugo-multi-bootswatch这个主题,特别简洁。

我们可以通过修改config.toml来应用主题。

baseurl = "http://zwenjiao.github.io/" #替换为自己的网站链接
languageCode = "en-us"
title = "zwenjiao's blog"      #标题
theme="hugo-multi-bootswatch"    #主题

也可以在启动server时应用主题。

hugo server --theme=hugo-multi-bootswatch --buildDrafts --watch

代码说明:

* --theme 用于选择主题,如果在配置文件中选择了主题,这里就不需要使用了
* --buildDrafts 用于是否显示草稿文章
* --watch 用于实时监控变化,方便调试

此时我们可以看到网页已经有了效果。