Update MenuEntry properties documentation

Fixes https://github.com/gohugoio/hugoDocs/issues/423
This commit is contained in:
Kaushal Modi 2018-05-22 14:21:45 -04:00
parent 79109b6858
commit c0430f8f97
5 changed files with 109 additions and 122 deletions

View File

@ -36,47 +36,7 @@ A **menu** is a named array of menu entries accessible by name via the [`.Site.M
If you make use of the [multilingual feature](/content-management/multilingual/), you can define language-independent menus.
{{% /note %}}
A menu entry has the following properties (i.e., variables) available to it:
`.URL`
: string
`.Name`
: string
`.Menu`
: string
`.Identifier`
: string
`.Pre`
: template.HTML
`.Post`
: template.HTML
`.Weight`
: int
`.Parent`
: string
`.Children`
: Menu
Note that menus also have the following functions available as well:
`.HasChildren`
: boolean
Additionally, there are some relevant functions available to menus on a page:
`.IsMenuCurrent`
: (menu string, menuEntry *MenuEntry ) boolean
`.HasMenuCurrent`
: (menu string, menuEntry *MenuEntry) boolean
See the [Menu Entry Properties][me-props] for all the variables and functions related to a menu entry.
## Add content to menus
@ -139,7 +99,7 @@ The URLs must be relative to the context root. If the `baseURL` is `https://exam
{{% /note %}}
## Nesting
All nesting of content is done via the `parent` field.
The parent of an entry should be the identifier of another entry. The identifier should be unique (within a menu).
@ -159,3 +119,4 @@ See [Menu Templates](/templates/menu-templates/) for information on how to rende
[config]: /getting-started/configuration/
[multilingual]: /content-management/multilingual/
[sitevars]: /variables/
[me-props]: /variables/menus/

View File

@ -10,14 +10,18 @@ menu:
docs:
parent: "functions"
keywords: [menus]
signature: ["HasMenuCurrent"]
signature: ["PAGE.HasMenuCurrent MENU MENUENTRY"]
workson: [menus]
hugoversion:
relatedfuncs: []
relatedfuncs: ["IsMenuCurrent"]
deprecated: false
toc: false
draft: true
draft: false
aliases: []
---
Used in [menu templates](/templates/menu-templates/).
`.HasMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
returns `true` if the PAGE is the same object as the `.Page` in one of the
**children menu entries** under MENUENTRY in a given MENU.
You can find its example use in [menu templates](/templates/menu-templates/).

View File

@ -10,14 +10,18 @@ menu:
docs:
parent: "functions"
keywords: [menus]
signature: ["IsMenuCurrent"]
signature: ["PAGE.IsMenuCurrent MENU MENUENTRY"]
workson: [menus]
hugoversion:
relatedfuncs: []
relatedfuncs: ["HasMenuCurrent"]
deprecated: false
draft: true
draft: false
aliases: []
needsexample: true
---
Used in [menu templates](/templates/menu-templates/).
`.IsMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
returns `true` if the PAGE is the same object as the `.Page` in MENUENTRY in a
given MENU.
You can find its example use in [menu templates](/templates/menu-templates/).

View File

@ -1,39 +0,0 @@
`.URL`
: string
`.Name`
: string
`.Menu`
: string
`.Identifier`
: string
`.Pre`
: template.HTML
`.Post`
: template.HTML
`.Weight`
: int
`.Parent`
: string
`.Children`
: Menu
Note that menus also have the following functions available as well:
[`.HasChildren`](/functions/haschildren/)
: boolean
Additionally, there are some relevant functions available to menus on a page:
[`.IsMenuCurrent`](/functions/ismenucurrent/)
: (menu string, menuEntry *MenuEntry ) boolean
[`.HasMenuCurrent`](/functions/hasmenucurrent/)
: (menu string, menuEntry *MenuEntry) boolean

View File

@ -1,7 +1,7 @@
---
title: Menu Variables
linktitle: Menu Variables
description: A menu entry in a menu template has specific variables and functions to make menu management easier.
title: Menu Entry Properties
linktitle: Menu Entry Properties
description: A menu entry in a menu-template has specific variables and functions to make menu management easier.
date: 2017-03-12
publishdate: 2017-03-12
lastmod: 2017-03-12
@ -19,49 +19,106 @@ aliases: [/variables/menu/]
toc: false
---
The [menu template][] has the following properties:
.URL
: string
.Name
: string
.Title
: string
This is a link title, meant to be used in `title`-Attributes of the menu's `<a>`-tags.
By default it returns `.Page.LinkTitle`, as long as the menu entry was created
through the page's front matter and not through the site config.
Setting it explicitly in the site config or the page's front matter overrides this behaviour.
.Page
: [Page Object](/variables/page/)
The `.Page` variable holds a reference to the page.
It's only set when the menu entry is created from the page's front matter,
not when it's created from the site config.
A **menu entry** has the following properties available that can be used in a
[menu template][menu-template].
## Menu Entry Variables
.Menu
: string
: _string_ <br />
Name of the **menu** that contains this **menu entry**.
.URL
: _string_ <br />
URL that the menu entry points to. The `url` key, if set for the menu entry,
sets this value. If that key is not set, and if the menu entry is set in a page
front-matter, this value defaults to the page's `.RelPermalink`.
.Page
: _\*Page_ <br />
Reference to the [page object][page-object] associated with the menu entry. This
will be non-nil if the menu entry is set via a page's front-matter and not via
the site config.
.Name
: _string_ <br />
Name of the menu entry. The `name` key, if set for the menu entry, sets
this value. If that key is not set, and if the menu entry is set in a page
front-matter, this value defaults to the page's `.LinkTitle`.
.Identifier
: string
: _string_ <br />
Value of the `identifier` key if set for the menu entry. This value must be
unique for each menu entry. **It is necessary to set a unique identifier
manually if two or more menu entries have the same `.Name`.**
.Pre
: template.HTML
: _template.HTML_ <br />
Value of the `pre` key if set for the menu entry. This value typically contains
a string representing HTML.
.Post
: template.HTML
: _template.HTML_ <br />
Value of the `post` key if set for the menu entry. This value typically contains
a string representing HTML.
.Weight
: int
: _int_ <br />
Value of the `weight` key if set for the menu entry. If that key is not set,
and if the menu entry is set in a page front-matter, this value defaults to the
page's `.Weight`.
.Parent
: string
: _string_ <br />
Name (or Identifier if present) of this menu entry's parent **menu entry**. The
`parent` key, if set for the menu entry, sets this value. If this key is set,
this menu entry nests under that parent entry, else it nests directly under the
`.Menu`.
.Children
: Menu
: _Menu_ <br />
This value is auto-populated by Hugo. It is a collection of children menu
entries, if any, under the current menu entry.
[menu template]: /templates/menu-templates/
## Menu Entry Functions
Menus also have the following functions available:
[.HasChildren](/functions/haschildren/)
: _boolean_ <br />
Returns `true` if `.Children` is non-nil.
.KeyName
: _string_ <br />
Returns the `.Identifier` if present, else returns the `.Name`.
.IsEqual
: _boolean_ <br />
Returns `true` if the two compared menu entries represent the same menu entry.
.IsSameResource
: _boolean_ <br />
Returns `true` if the two compared menu entries have the same `.URL`.
.Title
: _string_ <br />
Link title, meant to be used in the `title` attribute of a menu entry's
`<a>`-tags. Returns the menu entry's `title` key if set. Else, if the menu
entry was created through a page's front-matter, it returns the page's
`.LinkTitle`. Else, it just returns an empty string.
## Other Menu-related Functions
Additionally, here are some relevant methods available to menus on a page:
.IsMenuCurrent
: _(menu string, menuEntry *MenuEntry ) boolean_ <br />
See [`.IsMenuCurrent` method](/functions/ismenucurrent/).
.HasMenuCurrent
: _(menu string, menuEntry *MenuEntry) boolean_ <br />
See [`.HasMenuCurrent` method](/functions/hasmenucurrent/).
[menu-template]: /templates/menu-templates/
[page-object]: /variables/page/