gohugo.org
gohugo.org copied to clipboard
今天有时间,翻译了Menus的一部分
题外话:翻译的很差,自己都有点不好意识,看来看懂和翻译还是有很大差距的
Hugo有一个简单但是强大的菜单系统,它允许你对你所需要放置的内容进行
微调却毋须花费大量工作 小提示:如果你仅仅需要的是一个十分简单的菜单,请查看下文“懒人博客的菜
单” Hugo菜单的一些特点:
- 在一个或者多个菜单放置内容
- 可处理无限嵌套的菜单
- 无需附加任何内容就可以创建菜单项
- 区分出活跃元素和活跃分支
菜单是什么?
菜单是一个基于.Site.Menus
字段在站点上可进入的菜单项的数组。举个例子
,如果你我有一个main菜单,那我可以通过.Site.Menus.main
访问
要是你使用多语言特性
,你可以自主地定义菜单语言
一个菜单一般有如下属性:
- URL(网址) string类型
- Name(名称) string类型
- Menu(菜单) string类型
- Identifier(标识符) string类型
- Pre template.HTML(PreHtml模板)
- Post template.HTML(PostHtml模板)
- Weight(翻译) int类型
- Parent string类型
- Children Menu(子菜单) 和下面的功能:
- HasChildren(是否有子菜单) bool类型 另外,也有一些在页面上的相关功能:
- IsMenuCurrent (menu string, menuEntry *MenuEntry ) bool
- HasMenuCurrent (menu string, menuEntry *MenuEntry) bool
将内容添加到菜单
Hugo支持两种不同的添加内容到扉页(首页)的方法
简单用法:
如果你想做的仅仅是添加条目到一个菜单,这个简单的方法会很适合你
单个菜单项
---
menu: "main"
---
多个菜单项:
---
menu: ["main", "footer"]
---
高级用法:
如果你对你的菜单需要更多的配置,这个方法会很适合你,上面列出的所有的
菜单属性你都可以自己定义
---
menu:
main:
parent: 'extras'
weight: 20
---
(非内容性)条目添加到菜单
你同样能添加一个没有任何链接的菜单项,这放置在站点配置文件中,下面是
一个config.toml的例子
[[menu.main]]
name = "about hugo"
pre = "<i class='fa fa-heart'></i>"
weight = -110
identifier = "about"
url = "/about/"
[[menu.main]]
name = "getting started"
pre = "<i class='fa fa-road'></i>"
weight = -100
url = "/getting-started/"
同样的,假如你用的是config.yaml,下面是一个等效的例子
---
menu:
main:
- Name: "about hugo"
Pre: "<i class='fa fa-heart'></i>"
Weight: -110
Identifier: "about"
URL: "/about/"
- Name: "getting started"
Pre: "<i class='fa fa-road'></i>"
Weight: -100
URL: "/getting-started/"
---
注意:URL必须是相对路径,如果baseURL
是http://example.com/mysite/
,那么菜单中的URL必须不能包含上下文跟路径mysite
。使用相对路径会优先
于baseURL,如果URL是http://subdomain.example.com/
,那么输出将会
是http://subdomain.example.com
嵌套
所有的嵌套的内容是在parent
字段中定义的
一个条目的父节点应该是另一个条目的标识符,一个标识符应该是独一无二的(在一个菜单中)
下面的比较是用来确定一个标识符:
Name > LinkTitle > Title.
翻译的不错👍