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.