Traversing Local Files
Traversing Local Files
Hugo includes a way to traverse local files. This is done using the ‘readDir’ function.
Using readDir
readDir takes a single string input that is relative to the root directory of the site. It returns an array of os.FileInfo
Let’s create a shortcode to build a file index with links using readDir.
‘fileindex.html’
<table style="width=100%">
<th>Size in bytes</th>
<th>Name</th>
{{$dir := .Get "dir"}}
{{ $url := .Get "baseurl" }}
{{ $files := readDir $dir }}
{{ range $files }}
<tr>
<td>{{.Size}}</td>
<td>
<a href="{{$url}}{{.Name | urlize }}"> {{.Name}}</a>
</td>
</tr>
{{ end }}
</table>
Now lets use it to list the css files used on this site
{{< fileindex dir="static/css" baseurl="/css/" >}}
Is rendered as:
Size in bytes | Name |
---|---|
4096 | font-awesome |