listFiles template function

It’s not Go code, it’s Go template syntax.

Anyway, you’d do something like this:

<ul>
{{range $i, $file := (listFiles "/articles")}}
	{{$md := (include (print "/articles/" $file) | splitFrontMatter)}}
	{{$slug := $file | trimSuffix ".md"}}
	{{$pubDate := toDate $md.Meta.pubDate}}
	<li>
		<a href="#{{$slug}}">{{$md.Meta.title}}</a>
		<time datetime="{{$pubDate | htmlDate}}">{{$pubDate | date "01-02-2006"}}</time>
	</li>
{{end}}
</ul>
{{range $i, $file := (listFiles "/articles")}}
	{{$md := (include (print "/articles/" $file) | splitFrontMatter)}}
	{{$slug := $file | trimSuffix ".md"}}
	<section id="{{ $slug }}">{{ markdown $md.Body }}</section>
{{end}}

Untested, YMMV. You’d need to define pubDate in your front matter in each file.

2 Likes