URI: 
       page.md - hugo - [fork] hugo port for 9front
  HTML git clone https://git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
       page.md (2935B)
       ---
            1 ---
            2 title: page
            3 description: Provides global access to a Page object.
            4 categories: []
            5 keywords: []
            6 params:
            7   functions_and_methods:
            8     aliases: []
            9     returnType: 
           10     signatures: [page]
           11 aliases: [/functions/page]
           12 ---
           13 
           14 At the top level of a template that receives a `Page` object in context, these are equivalent:
           15 
           16 ```go-html-template
           17 {{ .Params.foo }}
           18 {{ .Page.Params.foo }}
           19 {{ page.Params.foo }}
           20 ```
           21 
           22 When a `Page` object is not in context, you can use the global `page` function:
           23 
           24 ```go-html-template
           25 {{ page.Params.foo }}
           26 ```
           27 
           28 > [!note]
           29 > Do not use the global `page` function in shortcodes, partials called by shortcodes, or cached partials. See [warnings](#warnings) below.
           30 
           31 ## Explanation
           32 
           33 Hugo almost always passes a `Page` as the data context into the top-level template (e.g., `baseof.html`). The one exception is the multihost sitemap template. This means that you can access the current page with the `.` in the template.
           34 
           35 But when you are deeply nested inside of a [content view](g), [partial](g), or [render hook](g), it is not always practical or possible to access the `Page` object.
           36 
           37 Use the global `page` function to access the `Page` object from anywhere in any template.
           38 
           39 ## Warnings
           40 
           41 ### Be aware of top-level context
           42 
           43 The global `page` function accesses the `Page` object passed into the top-level template.
           44 
           45 With this content structure:
           46 
           47 ```text
           48 content/
           49 ├── posts/
           50 │   ├── post-1.md
           51 │   ├── post-2.md
           52 │   └── post-3.md
           53 └── _index.md      <-- title is "My Home Page"
           54 ```
           55 
           56 And this code in the home template:
           57 
           58 ```go-html-template
           59 {{ range site.Sections }}
           60   {{ range .Pages }}
           61     {{ page.Title }}
           62   {{ end }}
           63 {{ end }}
           64 ```
           65 
           66 The rendered output will be:
           67 
           68 ```text
           69 My Home Page
           70 My Home Page
           71 My Home Page
           72 ```
           73 
           74 In the example above, the global `page` function accesses the `Page` object passed into the home template; it does not access the `Page` object of the iterated pages.
           75 
           76 ### Be aware of caching
           77 
           78 Do not use the global `page` function in:
           79 
           80 - Shortcodes
           81 - Partials called by shortcodes
           82 - Partials cached by the [`partialCached`] function
           83 
           84 Hugo caches rendered shortcodes. If you use the global `page` function within a shortcode, and the page content is rendered in two or more templates, the cached shortcode may be incorrect.
           85 
           86 Consider this section template:
           87 
           88 ```go-html-template
           89 {{ range .Pages }}
           90   <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
           91   {{ .Summary }}
           92 {{ end }}
           93 ```
           94 
           95 When you call the [`Summary`] method, Hugo renders the page content including shortcodes. In this case, within a shortcode, the global `page` function accesses the `Page` object of the section page, not the content page.
           96 
           97 If Hugo renders the section page before a content page, the cached rendered shortcode will be incorrect. You cannot control the rendering sequence due to concurrency.
           98 
           99 [`partialCached`]: /functions/partials/includecached/
          100 [`Summary`]: /methods/page/summary/