动机

使用Markdown撰写博客,并以静态页面形式发布。

选择hugo

现在jekyll似乎更加流行,但是jekyll是基于Ruby的,在windows下安装很繁琐。

而hugo是用go写的,windows版本只有一个exe,安装起来非常方便。

因此决定使用hugo作为站点生成器。

系统环境

  • Windows 8.1 x64(主流Windows系统应该都没有问题)
  • git(用来下载皮肤)

安装hugo

下载

通过Github的下载页面获得最新版本的hugo。

解压并配置PATH

  1. 解压到任意文件夹,例如:D:\soft\hugo
  2. 将该文件夹追加到系统环境变量的PATH变量下。

检验

在命令行下输入如下命令:

hugo version

如果配置成功,会显示当前hugo的版本号。

建立hugo工程

建立工作文件夹

例如:D:\soft\hugo\blog

进入该文件夹:

D:\>cd D:\soft\hugo\blog
D:\soft\hugo\blog>

建立站点

例如:blog.mute-g.com

D:\soft\hugo\blog>hugo new site blog.mute-g.com

确认目录结构已经建立

blog.mute-g.com
├─archetypes
├─content
├─data
├─layouts
├─static
└─themes

安装皮肤

选择皮肤

可以在官方皮肤市场选择皮肤,点进去后可以看到皮肤下载地址,一般都是一个git链接。

本次选择的皮肤是Cactus Plus

进入themes文件夹

D:\soft\hugo\blog\blog.mute-g.com>cd themes
D:\soft\hugo\blog\blog.mute-g.com\themes>

下载皮肤到此文件夹

git clone https://github.com/nodejh/hugo-theme-cactus-plus.git

定制皮肤

拷贝配置文件

在此款皮肤下有一个exampleSite文件夹,将里面的config.toml文件拷贝到hugo目录下。

修改配置项

打开config.toml,更改里面的配置项。

例如:“知名搜索公司”的Analytics服务ID、Disqus的shortname等等。

有些服务国内无法使用,不过此款皮肤内置提供了国内可以使用的替代品。

注意: 如果不是想托管在S3下,则皮肤定制到此就可以结束了。


设置页面生成形式

默认状态下,静态页面会以主题文件夹下带一个index.html的形式生成,但是由于我希望将静态网站托管在Amazon的S3服务下,需要页面以主题.html的形式生成,因此需要在配置文件内加入配置项:

uglyurls = true

修改页面模板

基于上诉理由,需要对页面模板进行一些修正。

  • 首先将themes\hugo-theme-cactus-plus\layouts\partials\nav.html

    themes\hugo-theme-cactus-plus\layouts\taxonomy\tag.terms.html拷贝到

    blog.mute-g.com\layouts下的对应文件夹内,拷贝完成后的目录结构应该如下:
blog.mute-g.com
└─layouts
├─partials
| └─nav.html
└─taxonomy
└─tag.terms.html
  • nav.html中三个链接的末尾加上.html,如下:
<a href='{{ .Site.BaseURL }}post.html'>
<a href='{{ .Site.BaseURL }}tags.html'>
<a href='{{ .Site.BaseURL }}about.html'>
  • tags的链接的末尾加上.html,如下:
<a href="/tags/{{ $name | urlize }}.html" rel="{{ len $taxonomy }}">

初始化

  • 回到站点根目录
D:\soft\hugo\blog\blog.mute-g.com>
  • 生成“关于”页
hugo new about/_index.md
  • 生成“标签”页
hugo new tags/_index.md
  • 启动服务器确认成果
hugo server

通过http://localhost:1313/访问

写一篇文章

新建一篇文章

hugo new post/hugo/get-start.md

编辑文章内容

打开post\hugo\get-start.md,可以看到如下内容:

+++

categories = ["博客搭建"]

date = "2017-07-14T15:52:54+09:00"

description = "从零开始搭建属于自己的静态网站"

tags = ["hugo"]

title = "利用hugo生成静态站点"

+++

在这一部分设置“分类”、“标题”、“标签”等等内容。

在下面的空白部分,就可以遵循Markdown语法撰写文章了。

发布站点

自动生成静态页面

在站点根目录下执行如下命令:

hugo

执行完毕后,会在hugo文件夹下自动生成一个public文件夹,里面就是自动生成好的站点了。

上传到托管服务器

public下面的所有内容上传到托管服务器,就可以访问自己的博客站点啦。

利用hugo生成静态站点的更多相关文章

  1. [golang][hugo]使用Hugo搭建静态站点

    使用Hugo搭建静态站点 hugo下载地址:https://github.com/gohugoio/hugo 模板列表:https://github.com/gohugoio/hugoThemes 开 ...

  2. SpringBoot 利用freemaker生成静态页面

    1. <!-- freemarker模板 --> <dependency> <groupId>org.springframework.boot</groupI ...

  3. react-static 基于react 渐进式静态站点生成框架

    react-static 是一个不错的基于react 开发的静态站点生成框架,可以用来替代create-react-app 包含的特性 100% react 很快的构建以及性能 自动代码以及数据分离 ...

  4. cmake利用toolchain.cmake生成makefile之后,make生成静态库失败问题

    问题描述 利用toolchian.cmake设置好编译器后,利用make指令生成静态库,出现以下问题 Error running link command: No such file or direc ...

  5. 利用PHP的ob函数实现生成静态化页面

    之前用过一些开源的CMS管理系统,当时就很好奇后台中的生成HTML静态文件是怎么实现的.今天和同事讨论了下,没想到同事之前做过这类的生成静态页面的功能,果断向他请教了下. 经他讲解后,才知道其实生成静 ...

  6. ASP.NET MVC 利用Razor引擎生成静态页

    实现原理及步骤: 1.通过ViewEngines.Engines.FindView查找到对应的视图,如果是部分视图,则用:ViewEngines.Engines.FindPartialView: 2. ...

  7. 浅谈php生成静态页面

    一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...

  8. PHP代码为什么不能直接保存HTML文件——&gt;PHP生成静态页面教程

    1.server会依据文件的后缀名去进行解析,假设是HTML文件则server不会进行语法解析.而是直接输出到浏览器. 2.假设一个页面中所有都是HTML代码而没有须要解析的PHP语法,则没有必要保存 ...

  9. 减少服务器压力php生成静态xml文件

    一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...

随机推荐

  1. Motion Detection Algorithms视频中运动检测算法源代码及演示代码

    原文地址:http://www.codesoso.com/code/Motion_Detection.aspx 本文实现了在连续视频数据流中几种不同的运动检测算法,他们都是基于当前帧图像和前一帧图像的 ...

  2. C++的引用与const指针的关系以及各种传递方式

    首先我们知道 const int *p 与 int const *p 是一样的,即 *p 是常量:而 int * const p 跟上面是不一样的,即 p 是常量:我们知道引用只是一个别名,与变量共享 ...

  3. connect: Network is unreachable解決方法

    connect: Network is unreachable解決方法   解決方式:請確認ifcfg-eth0檔案設定 指令如下:   vi /etc/sysconfig/network-scrip ...

  4. pcie dma的玩法

    There is some issue with the implement script. So I took the manual steps. 1. Created the pcie core ...

  5. love2d--glsl01简单的渲染

    love2d一个好玩的地方是支持glsl1.2,并修改简化,glsl1.2的文档 地址为:http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.2 ...

  6. excel鼠标拖选慢shift选择快的问题

    今天遇到个惊天大坑,关于excel的,最近,一直在调查这个东西,刚开始真的是毫无头绪,反正现在就是excel的值的copy会偶尔慢,慢的情况也是不明白,就是稀里糊涂的调查. 刚开始连100%再现这个b ...

  7. PLSQL 连接不上64位ORACLE数据库解决办法

    http://it.oyksoft.com/post/6003/ huan jing bian liang TNS_ADMIN  D:\OracleClient D:\OracleClient\TNS ...

  8. 史上最严管控,Android P非SDK接口管控特性解读及适配

    导读 在 Android P 版本中,谷歌加入了非 SDK 接口使用限制,无论是通过调用.反射还是JNI等方式,开发者都无法对非 SDK 接口进行访问,此接口的滥用将会带来严重的系统兼容性问题. 针对 ...

  9. Farey Sequence(欧拉函数)

    题意:给出式子F F中分子分母互质,且分子小于分母 例: F2 = {1/2} F3 = {1/3, 1/2, 2/3} F4 = {1/4, 1/3, 1/2, 2/3, 3/4} F5 = {1/ ...

  10. 禁止复制 + 锁右键 + 禁止全选(兼容IE Chrome等)

    function iEsc() { return false; }function iRec() { return true; }function DisableKeys() {    if (eve ...