Hugo-
适用于:Linux
商品简介:hugo是由Go语言实现的静态网站生成器。主要用于个人Blog、项目文档、初创公司站点构建。
商品亮点:建站,go语言
商品说明
版本: V1.1 | 交付方式: 镜像 |
适用于: Linux | 上架日期: 2019-10-17 09:00:20 |
Hugo是由Go语言实现的静态网站生成器。
目录结构
blog
├── archetypes
├── config.toml
├── content
├── data
├── layouts
├── static
├── themes
└── public
archetypes
在通过hugo new xxx 创建内容页面的时候,默认情况下hugo会创建date、title等front matter,可以通过在archetypes目录下创建文件,设置自定义的front matter。
config.toml
所有的hugo站点都有一个全局配置文件,用来配置整个站点的信息,hugo默认提供了跟多配置指令。
content
站点下所有的内容页面,也就是我们创建的md文件都在这个content目录下面。
data
data目录用来存储网站用到一些配置、数据文件。文件类型可以是yaml|toml|json等格式。
layouts
存放用来渲染content目录下面内容的模版文件,模版.html格式结尾,layouts可以同时存储在项目目录和themes//layouts目录下。
static
用来存储图片、css、js等静态资源文件。
themes
用来存储主题,主题可以方便的帮助我们快速建立站点,也可以方便的切换网站的风格样式。
public
hugo编译后生成网站的所有文件都存储在这里面,把这个目录放到任意web服务器就可以发布网站成功
页面绑定
Page bundles
hugo中的内容组织是依赖Page Bundles来管理的。Page Bundles包括Leaf Bundle(没有子节点)和Branch Bundle(home page, section, taxonomy terms, taxonomy list)两类。
Section
section是基于content/目录下的组织结构定义的页面集合。
content/ 下的第一级子目录都是一个section。如果想让一个子目录成为section,需要在目录下面定义_index.md文件。 所有的section构成一个section tree。
front matter
front matter 用来配置文章的标题、时间、链接、分类等元信息,提供给模板调用
模版
Hugo以go语言的html/template库作为模版引擎,将内容通过template渲染成html,模版作为内容和显示视图之间的桥梁。
hugo由三种类型的模版:single、list and partial。
Hugo有一套自己的模版查找机制,如果找不到与内容完全匹配的模板,它将向上移动一级并从那里搜索。直到找到匹配的模板或用完模板来尝试。如果找不到模板,它将使用该站点的默认模板。
Single Template
single template 用于渲染页面内容。
List Template
list template 用于渲染一组相关内容,例如一个站点下所有内容,一个目录下的内容;
homepage 也就是_index.md,是一个特殊类型的list template,homepage实际上就是一个站点所有内容的入口。
partial Template
partial template 可以被其他模版引用,实际上可以理解为模版级别的组件,例如页面头部、页面底部等。
基础模版查询规则
基本模版是指baseof.html的查找规则
页面模版查询规则
kind
判断页面是single page 还是 list page?
如果是single page,会选择模版_default/single.html
如果是list page(section listings, home page, taxonomy lists, taxonomy terms),会选择模版_default/list.html
Output Format
根据输出格式的名称和后缀,选择匹配的模版。例如输出格式是rss,后缀是.html,首先看有没有匹配的index.rss.html格式的模版。
Language
根据站点设置的语言选择匹配的模版,比如,站点的语言为fr,模版匹配的优先级是:index.fr.amp.html > index.amp.html > index.fr.html
Layout
type