使用hugo

用来做什么

hugo之所以开发很多个版本,是因为它能够在本地和服务器上运行。然而就国内的情况来看,大部分都放在虚拟主机上的网站,想在服务器上安装hugo并非中国国情,所以hugo最基础的使用还是本地开发,FTP上传比较实际。

所需的知识

hugo非常简单,也非常容易入门。拥有以下储备足矣。

  • html知识及css知识。
  • js及jquery。
  • 一个前端框架,比如bootstrap。
  • 编程基础,比如变量、作用域、函数、流程控制。
  • 良好的审美及文字编著能力。
  • 一定的作图能力。

够了,有上面这些足矣使用hugo了。以前所学的php、c#等等,可以忘了。

hugo的帮助

下面就要翻译hugo的帮助了,呵呵,说好了不翻译官方呢!

$ hugo help

是一个快速的……看多了恶心,不说了。

官方手册在:gohugo.io,中文支持在:www.zimustudio.com

用法:
  hugo [可选参数]
  hugo [可选命令]

允许的命令(还有不允许的?):
  server          运行hugo自己的web服务器,对于html有没有服务器真心无所谓,而有所谓的是它的实时监控和刷新功能。
  version         输出hugo版本号,改过后缀不记得了?这里看看呗
  config          输出站点配置信息
  check           检查内容资源
  benchmark       什么时间基准,没用过
  new             建立站点新内容
  undraft         改变内容的草稿状态,弄多了晕,标记草稿的内容默认不发布,直到您修改为不是草稿,我们吹牛从来不要草稿的。
  genautocomplete 生成自动化脚本,linux系统用的,咱也不玩
  gendoc          生成一个不知道什么的东西,反正我们用不到(其实是看不懂,哈哈!)。
  help            帮助文件,就是这篇难翻译的东西啦

允许的参数:
  -b, --基本路径,一般在配置文件设置好的,这里就不鸟它了。没设置或者临时更改可以用它。比如: http://www.zimustudio.com/
  -D, --把草稿也生成页面,说了我们不打草稿。
  -F, --buildFuture=false: 把未来版本的文件也一起生成。啥子未来文件?不懂也不想懂(不喜欢用)。
      --cacheDir="": 临时文件目录,默认在:$TMPDIR/hugo_cache/,其实我一点不关心它在那
      --config="": 配置文件(默认是:/config.yaml|json|toml)
  -d, --destination="": 写入的文件路径
      --disableRSS=false: 不建立RSS文件
      --disableSitemap=false: 不建立站点文件
      --editor="": 使用某个编辑器编辑内容文档,如果可用的话(windows就看做不可用就行)
  -h, --help=false: 帮助
      --ignoreCache=false: 忽略文件系统的可读性,仍然写入(人家不给写你写个屁啊,不要脸)
      --log=false: 允许日志。
      --logFile="": 日志目录(设置了目录就代表启用了日志)。
      --noTimes=false: 不同步文件的修改时间。
      --pluralizeListTitles=true: 单复数,中文没那个东西
  -s, --source="": 相对的文件路径。
      --stepAnalysis=false: 显示程序运行时间和内存消耗
  -t, --theme="": 使用的主题(在主题目录下的XXX: /themes/XXX/)
      --uglyUrls=false: 直接使用html,而不是目录结构。推荐这样子,对搜索引擎最好了。
  -v, --verbose=false: 啰嗦输出,就是一大堆文字的。
      --verboseLog=false: 啰嗦的日志,就是记录一大堆的啰嗦的文字
  -w, --watch=false: 监视文件系统,一有变动,立马更新网页和资源文件。这里不只监视模板和文字,你该css它也知道的。

常用示例

建立站点:hugo new site XXX
建立主题:hugo new theme XXX
建立新内容:hugo XXX\XXX.md
开服务器并监控:hugo server -w
生成成品:hugo

到您看到本站,使用hugo也就使用了上面五个命令而已。三个新建,一个监控和开服,一个生成。还有就是“CTR+C”结束监控。至于官网所说的其他,比如只开监控,取消更改后刷新,几乎没用。本人习惯是开发好了,输入hugo,上传;改css和模板时,输入hugo server -w,随时观察变化;完了再hugo一下,上传。

至于什么草稿、未来版本、单复数那些,对中文来说没用。没写好不hugo就行了,hugo了不上传也无妨,即时上传了不完美的也没关系,在不完美的原创也比再完美的采集强吧?

以上命令需要在某个路径下面,比如建站在站点site下面,而对站点的操作要在站点XXX下面。

信息存放

一个站会有除了内容之外的很多信息的,比如站点简介、ICP备案、联系方式,就算一篇文章,也会有很多的信息,比如是什么类型的文章,作者是谁,什么时候写的,关键词、分类是什么?

站点信息

站点信息存放于“config.toml”,如何修改它?参看配置站点篇。

文章信息

文章信息存放于文章文件的文件头。比如以下是本文的文件头

+++
date = "2015-11-20T09:49:13+08:00"
description = "用来做什么"
taxonomies = ""
title = "使用hugo"
type = ""
weight = "40"

+++

他们用三个“+++”,就是加号来开始和结束。这一过程就像是发表一篇博客,选择分类,填写标题等等的信息。可用的文件头参数参看文件头篇。

文章正文

文章正文与文件头同时存放于“md”为后缀的markdown文件中。他们分门别类的存放于站点目录下的“content”目录下,以文件夹的形式划分“章节”和类型。

额外的信息

hugo考虑到配置文件和md文件并不能存放全部的信息,故在站点根目录下建立了个“Data”文件夹,它可以单独存放数据文件,当然,你完全可以使用数据库在里面提供数据的查询响应,或者使用文件的形式存放数据。