This is a related post to a question someone raised 4 months ago, but could someone please explain to me why ranging subdirectories is so complicated in Hugo? Is this something that is being worked on and is just a case of Hugo still being relatively new? I need to get clear on simple functionality such as this before I can be confident about moving several projects over to Hugo.
Directory Structure
- content
- dir1
- dir2
-dir3
Expected ranging loop to target directory 3
<div class="row">
{{ range .Site.Pages.dir1.dir2.dir3 . }}
<div class="col">
{{.URL}}
<div>
{{ end }}
<div>
I personally think this is the most straightforward way to range a subdirectory but this does not currently work. I’ve had to use data json or more complex combination of where and frontmatter to achieve this which I don’t think is a very elegant solution.
.Site.Data does not look into the content/ dir… that dir is strictly for site content.
I think the problem is that you have certain assumptions… you just need to take it slow and read the docs and ask the right questions with a better tone.
Sorry I made a typo, it was .Site.Pages.dir1.dir2.dir3 what I was meant to write not .Site.Data...
My use case is this, I want to range query all the content in the dir3 subdirectory and pull {{.URL}} or {{.Title}} etc from content in this subdirectory (dir3) only.
My understanding is that .Site.Pages refers to the all the Pages in the site. Well if I want to refer to the pages in ONLY certain subdirectories wouldn’t .Site.Pages.dir1.dir2.dir3 be the right way to go about it? But this does not work.
The directory structure in content/is not available to the user (i.e. templates) for direct parsing. That directory structure is read by hugo and converted to sections, leaf/branch bundles, etc.
You can then use the section variables to do the kind of stuff you want. I believe that this comes close: