我正在使用 Hugo 构建一个网站。但是在设置嵌套菜单时遇到了一些问题。
我正在使用 Tokiwa 主题进行项目开发。 这里 是我的仓库链接。
我想在网站的主页添加一个下拉菜单,用于显示子文件夹。以下是imperial-library 网站的示例,您可以单击“游戏书籍”,然后会打开一个列表,显示该选项的所有可用主题。例如(全部、竞技场...)如果您单击其中一个主题,它将带您进入一个页面,列出所有条目及其简短描述。您可以单击相应的条目以查看该文章。
在我的项目中,我的目录结构为:
内容 -> 写作(写作包含诗歌和故事的子文件夹)
因此,在主页上,我希望某人能够单击“写作”,然后它会展开显示“诗歌”和“故事”。然后,您可以单击其中任何一个以查看格式如下的列表页面:
诗歌1的描述 - 诗歌1的链接
诗歌2的描述 - 诗歌2的链接
诗歌3的描述 - 诗歌3的链接
我还希望将此功能添加到除写作之外的其他主题中。
我的 config.toml 文件具有以下内容:
sectionPagesMenu = "main"
[menu]
[[menu.main]]
identifier = "writing"
name = "writing"
url = "/writing"
weight = 1
[[menu.main]]
identifier = "post"
name = "post"
url = "/post"
weight = 2
[[menu.main]]
identifier = "poems"
name = "poems"
url = "/category/poems"
parent = "writing"
weight = 1
[[menu.main]]
identifier = "stories"
name = "stories"
url = "/category/stories"
parent = "writing"
weight = 2
在我的layouts/index.html中
{{ define "menu-item" }}
{{ $page := .page }}
{{ with .entry }}
{{ if .HasChildren }}
<li class="{{ if $page.HasMenuCurrent "main" . }}active{{ end }}">
<a href="{{ .URL }}">{{ .Name }}</a>
<ul class="sub-menu">
{{ range .Children }}
{{ template "menu-item" (dict "entry" . "page" $page) }}
{{ end }}
</ul>
</li>
{{ else }}
<li class="{{ if $page.IsMenuCurrent "main" . }}active{{ end }}">
<a href="{{ .URL }}">{{ .Name }}</a>
</li>
{{ end }}
{{ end }}
{{ end }}
<ul>
{{ $page := . }}
{{ range .Site.Menus.main }}
{{ template "menu-item" (dict "entry" . "page" $page) }}
{{ end }}
</ul>
我也尝试了根据hugo文档中的此示例进行操作。
当前,我的网站在使用主题时会正确显示,并且当我点击链接时,URL似乎是正确的,例如writing/poems/poem1。 然而,文件夹的显示方式不正确。
我还在hugo论坛上发了这个问题,但没有得到确切的答案。 我浏览了许多关于"hugo论坛上嵌套菜单"的主题,但仍无法完全弄清楚这个问题。
谢谢。