blob: cf2afc98f1d3a8486517f1fedf9353c1ccf58903 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
{{ define "main" }}
<article>
{{ .Content }}
</article>
{{/* Define a section to pull recent posts from. For Hugo 0.20 this will default to the section with the most number of
pages. */}}
{{ $mainSections := .Site.Params.mainSections | default (slice "post") }}
{{/* Create a variable with that section to use in multiple places. */}}
{{ $section := where .Site.RegularPages "Section" "in" $mainSections }}
{{/* Check to see if the section is defined for ranging through it */}}
{{ $section_count := len $section }}
{{ if ge $section_count 1 }}
{{/* Derive the section name */}}
{{ $section_name := index (.Site.Params.mainSections) 0 }}
<div>
{{/* Use $section_name to get the section title. Use "with" to only show it if it exists */}}
{{ with .Site.GetPage "section" $section_name }}
<h1>
Recent {{ .Title }}
</h1>
{{ end }}
{{ $n_posts := $.Param "recent_posts_number" | default 3 }}
<section>
{{/* Range through the first $n_posts items of the section */}}
{{ range (first $n_posts $section) }}
<div>
{{ partial "summary.html" . }}
</div>
{{ end }}
</section>
{{ if ge $section_count (add $n_posts 1) }}
<section>
<h1>More</h1>
{{/* Now, range through the next four after the initial $n_posts items. Nest the requirements, "after" then "first"
on the outside */}}
{{ range (first 4 (after $n_posts $section)) }}
<h2>
<a href="{{ .Permalink }}">
{{ .Title }}
</a>
</h2>
{{ end }}
{{/* As above, Use $section_name to get the section title, and URL. Use "with" to only show it if it exists */}}
{{ with .Site.GetPage "section" $section_name }}
<a href="{{ .Permalink }}">All {{.Title }}</a>
{{ end }}
</section>
{{ end }}
</div>
{{ end }}
{{ end }}
|