• GitHub
  • Star
    FUNCTIONS

    index

    Looks up the index(es) or key(s) of the data structure passed into it.

    Syntax

    index COLLECTION INDEXES
    index COLLECTION KEYS

    The index functions returns the result of indexing its first argument by the following arguments. Each indexed item must be a map or a slice, e.g.:

    {{ $slice := slice "a" "b" "c" }}
    {{ index $slice 1 }} => b
    {{ $map := dict "a" 100 "b" 200 }}
    {{ index $map "b" }} => 200
    

    The function takes multiple indices as arguments, and this can be used to get nested values, e.g.:

    {{ $map := dict "a" 100 "b" 200 "c" (slice 10 20 30) }}
    {{ index $map "c" 1 }} => 20
    {{ $map := dict "a" 100 "b" 200 "c" (dict "d" 10 "e" 20) }}
    {{ index $map "c" "e" }} => 20
    

    Example: Load Data from a Path Based on Front Matter Params

    Assume you want to add a location = "" field to your front matter for every article written in content/vacations/. You want to use this field to populate information about the location at the bottom of the article in your single.html template. You also have a directory in data/locations/ that looks like the following:

    .
    └── data
        └── locations
            ├── abilene.toml
            ├── chicago.toml
            ├── oslo.toml
            └── provo.toml
    

    Here is an example of the data inside data/locations/oslo.toml:

    website = "https://www.oslo.kommune.no"
    pop_city = 658390
    pop_metro = 1717900
    

    The example we will use will be an article on Oslo, whose front matter should be set to exactly the same name as the corresponding file name in data/locations/:

    title = "My Norwegian Vacation"
    location = "oslo"
    

    The content of oslo.toml can be accessed from your template using the following node path: .Site.Data.locations.oslo. However, the specific file you need is going to change according to the front matter.

    This is where the index function is needed. index takes 2 parameters in this use case:

    1. The node path
    2. A string corresponding to the desired data; e.g.—
    {{ index .Site.Data.locations “oslo” }}
    

    The variable for .Params.location is a string and can therefore replace oslo in the example above:

    {{ index .Site.Data.locations .Params.location }}
    => map[website:https://www.oslo.kommune.no pop_city:658390 pop_metro:1717900]
    

    Now the call will return the specific file according to the location specified in the content’s front matter, but you will likely want to write specific properties to the template. You can do this by continuing down the node path via dot notation (.):

    {{ (index .Site.Data.locations .Params.location).pop_city }}
    => 658390
    
    • About Hugo
      • Overview
      • Hugo's Security Model
      • Hugo and GDPR
      • What is Hugo
      • Hugo Features
      • The Benefits of Static
      • License
    • Getting Started
      • Get Started Overview
      • Quick Start
      • Install Hugo
      • Basic Usage
      • Directory Structure
      • Configuration
      • External Learning Resources
    • Hugo Modules
      • Hugo Modules Overview
      • Configure Modules
      • Use Hugo Modules
      • Theme Components
    • Content Management
      • Content Management Overview
      • Organization
      • Page Bundles
      • Content Formats
      • Front Matter
      • Build Options
      • Page Resources
      • Image Processing
      • Shortcodes
      • Related Content
      • Sections
      • Content Types
      • Archetypes
      • Taxonomies
      • Summaries
      • Links and Cross References
      • URL Management
      • Menus
      • Static Files
      • Table of Contents
      • Comments
      • Multilingual and i18n
      • Syntax Highlighting
    • Templates
      • Templates Overview
      • Introduction
      • Template Lookup Order
      • Custom Output Formats
      • Base Templates and Blocks
      • List Page Templates
      • Homepage Template
      • Section Templates
      • Taxonomy Templates
      • Single Page Templates
      • Content View Templates
      • Data Templates
      • Partial Templates
      • Shortcode Templates
      • Local File Templates
      • 404 Page
      • Menu Templates
      • Pagination
      • RSS Templates
      • Sitemap Template
      • Robots.txt
      • Internal Templates
      • Alternative Templating
      • Template Debugging
    • Functions
      • Functions Quick Reference
      • .AddDate
      • .Format
      • .Get
      • .GetPage
      • .HasMenuCurrent
      • .IsMenuCurrent
      • .Param
      • .Render
      • .RenderString
      • .Scratch
      • .Unix
      • absLangURL
      • absURL
      • after
      • anchorize
      • append
      • apply
      • base64
      • chomp
      • complement
      • cond
      • countrunes
      • countwords
      • dateFormat
      • default
      • delimit
      • dict
      • echoParam
      • emojify
      • eq
      • errorf and warnf
      • fileExists
      • findRE
      • first
      • float
      • ge
      • getenv
      • group
      • gt
      • hasPrefix
      • highlight
      • hmac
      • htmlEscape
      • htmlUnescape
      • hugo
      • humanize
      • i18n
      • Image Functions
      • in
      • index
      • int
      • intersect
      • isset
      • jsonify
      • lang.Merge
      • lang.NumFmt
      • last
      • le
      • len
      • lower
      • lt
      • markdownify
      • Math
      • md5
      • merge
      • ne
      • now
      • os.Stat
      • partialCached
      • path.Base
      • path.Dir
      • path.Ext
      • path.Join
      • path.Split
      • plainify
      • pluralize
      • print
      • printf
      • println
      • querify
      • range
      • readDir
      • readFile
      • ref
      • reflect.IsMap
      • reflect.IsSlice
      • relLangURL
      • relref
      • relURL
      • replace
      • replaceRE
      • safeCSS
      • safeHTML
      • safeHTMLAttr
      • safeJS
      • safeURL
      • seq
      • sha
      • shuffle
      • singularize
      • slice
      • slicestr
      • sort
      • split
      • string
      • strings.Count
      • strings.HasSuffix
      • strings.Repeat
      • strings.RuneCount
      • strings.TrimLeft
      • strings.TrimPrefix
      • strings.TrimRight
      • strings.TrimSuffix
      • substr
      • symdiff
      • templates.Exists
      • time
      • title
      • transform.Unmarshal
      • trim
      • truncate
      • union
      • uniq
      • upper
      • urlize
      • urls.Parse
      • where
      • with
    • Variables
      • Variables Overview
      • Site Variables
      • Page Variables
      • Shortcode Variables
      • Pages Methods
      • Taxonomy Variables
      • File Variables
      • Menu Entry Properties
      • Hugo Variables
      • Git Variables
      • Sitemap Variables
    • Hugo Pipes
      • Hugo Pipes Overview
      • Hugo Pipes Introduction
      • SASS / SCSS
      • PostProcess
      • PostCSS
      • JavaScript Building
      • Babel
      • Asset minification
      • Asset bundling
      • Fingerprinting and SRI
      • Resource from Template
      • Resource from String
    • CLI
    • Troubleshooting
      • Troubleshoot
      • FAQ
      • Build Performance
    • Tools
      • Developer Tools Overview
      • Migrations
      • Starter Kits
      • Frontends
      • Editor Plug-ins
      • Search
      • Other Projects
    • Hosting & Deployment
      • Hosting & Deployment Overview
      • Hugo Deploy
      • Host-Agnostic Deploys with Nanobox
      • Host on AWS Amplify
      • Host on Netlify
      • Host on Render
      • Host on Firebase
      • Host on GitHub
      • Host on GitLab
      • Hosting on KeyCDN
      • Host on Bitbucket
      • Deployment with Wercker
      • Deployment with Rsync
    • Contribute
      • Contribute to Hugo
      • Development
      • Documentation
      • Themes
    • Maintenance
    “index” was last updated: June 4, 2020: Capitalization and Redirecting URL fixes (bb4d0e703)
    Improve this page
    By the Hugo Authors
    Hugo Logo
    • File an Issue
    • Get Help
    • Discuss Source Code
    • @GoHugoIO
    • @spf13
    • @bepsays

    Netlify badge

    ?
    ?

    Hugo Sponsors

    Logo for Forestry.io
    Logo for Linode
    Logo for eSolia
    ?

    The Hugo logos are copyright ? Steve Francia 2013–2020.

    The Hugo Gopher is based on an original work by Renée French.

    • News
    • Docs
    • Themes
    • Showcase
    • Community
    • GitHub
    • About Hugo
    • Getting Started
    • Hugo Modules
    • Content Management
    • Templates
    • Functions
    • Variables
    • Hugo Pipes
    • CLI
    • Troubleshooting
    • Tools
    • Hosting & Deployment
    • Contribute
    • Maintenance
    光棍影院-电影大全 - 高清在线观看 - 海量高清视频免费在线观看