内容组织

内容的目录结构

内容

内容存放于站点目录下的 content 目录下。

内容就是一个“markdown”文件,它的后缀名为“md”,它由hugo自己生成,并且可以设置模板来预先定义一些md的文件头和内容。

目录层次

章节section

章节是目录名字,也就是content下面的 目录 ,当然你可以有很深层次的目录嵌套。

一个站点的结构,好比一棵树,文章是叶子,章节就是树干和树枝。

在站点里面,两个重点:一个是内容本身;另外一个就是管理各个内容间关系的 导航和链接 ,随着内容的增长,链接的管理甚至比内容本身更为复杂和繁琐。

类型type

如果章节好比以教室划分的班级,类型就是填写在文件头里面的数据,区别班级里一个的学生是男是女。

可以这样理解,类型表示一个树枝上面的叶子、果实。

类型理论上是划分文章分类的,实际上我们可以设置它的模板、视图、和内容模板。

小节slug

小节也是在文件头里面设置的。小节好比叶子的叶柄,它一般属于叶子,它连接到枝干上。

URL地址

内容对应生成的页面

基础地址

在hugo生成最后的站点页面的时候,会取一个基本的地址作为连接的前面部分。基础地址在站点配置文件中设置。

例如本站的基本地址:

baseurl = "http://www.zimustudio.com/"

章节类型小节

无论章节还是类型,他们的目录层次直接添加在基本地址后面,章节为XXX,小节为YYY的文章最终地址就是:

http://www.zimustudio.com/XXX/YYY

如果文章名为a.md,那么他的地址就是

http://www.zimustudio.com/XXX/YYY/a

要是看结构,我们就会发现所有的这些都是一个目录,最后在a文件夹下面会有一个index.html的文件就是a.md内容最终的显示

http://www.zimustudio.com/XXX/YYY/a/index.html

文件名

对于默认的index.html文件和很深的无意义的目录结构,我们可以在配置文件里面设置

uglyURLs = true

这样子的上面的例子的路径就会变成

http://www.zimustudio.com/XXX/YYY/a.html

似乎这样对搜索引擎更加友善一些。

中文不宜

因为服务器不支持中文地址和文件名(当然不是全部都不支持,也有支持的),所以为了安全,为了种种,内容所属的章节、类型、小节、文件名都不要出现中文。

这将是hugo入中国的第一个门槛和难缠的地方。不过好多编程语言都支持中文参数和函数名,也不见有人用吧。

借鉴drupal对中文标题的处理经验,有两个方法,第一就是文件名使用编号表示,第二就是把汉字翻译为拼音。

虽然读书的时候不会读的字拼音代替是个笑话,但使用拼音确实是一个很好的注意,或许将来hugo能够把中文路径自动翻译为拼音,或者您自己下载hugo源码修改,暂且这样先。

为何分门别类

看官方的文档,对内容的组织可能会成为第一个入门拦路虎。文章有个类型,文章还有个分类术语,一些国产CMS也叫做分类。

按照抽象的概念,类型就是定义文章的类型,比如你是一篇博客,还是一篇论文,博客和论文是不一样的。

分类术语是为第一维的分类“博客、论文”进行的多维划分,比如毕业论文、职称论文等等,他们可能又不一样。

又有章节、小节……是不是彻底的晕菜了呢?

分门别类,是对内容的一种管理方式和手段。你要根据你的需要选择一种或者几种,或者一种都不用。如果您的站点比较小,内容比较少,不用或简单的用两个是最佳的选择,怎样分类已经超出了本手册,甚至CMS的范畴了,那属于内容管理的范畴了。

对于内容管理,知识管理,说实话我也从来没有看懂过,也不知道什么样的内容划分方式是最佳。要是您的网站只有一个单页面,划分这些做什么呢?

对于国内的很多CMS来说,在分类类型这些管理上,确实的“过度”设计了,drupal、wp这些老外的东西就很好,会分想分你就分一个。不会不想就不分,默认就是不分。hugo也一样。

总结

章节就是 目录 ,小节在 文件头 里面定义,内容所处的目录,以及它的小节属性,就决定了最终文章页面的链接。

默认的路径方式可以改为“a.html”这样的文件形式,您是否会觉得很多个文件夹里面装着单个的index.html感觉很怪。