diff --git a/layouts/_default/llms.txt b/layouts/_default/llms.txt new file mode 100644 index 00000000..32642e73 --- /dev/null +++ b/layouts/_default/llms.txt @@ -0,0 +1,41 @@ +{{- /* Recursive printer for sections */ -}} +{{- define "llms_print_section" -}} +{{- $section := .section -}} +{{- $depth := .depth -}} +{{- if or (gt (len $section.RegularPages) 0) (gt (len $section.Sections) 0) -}} +{{- $hashes := strings.Repeat (add $depth 1) "#" }} + +{{ printf "%s %s" $hashes $section.Title }} + +{{- /* Pages in this section */ -}} +{{- range $p := $section.RegularPages }} + {{- if and (not $p.Params.searchHidden) (ne $p.Layout `archives`) (ne $p.Layout `search`) }} +- [{{ $p.Title }}]({{ $p.Permalink }}) + {{- end -}} +{{- end -}} + +{{- /* Recurse into subsections */ -}} +{{- range $s := $section.Sections -}} +{{- template "llms_print_section" (dict "section" $s "depth" (add $depth 1)) -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{- /* Main template starts here */ -}} +# {{ site.Title }} + +{{- /* Pages not in any section */ -}} +{{- $orphans := where site.RegularPages "Section" "" -}} +{{ if gt (len $orphans) 0 }} + +{{- range $p := $orphans -}} + {{ if and (not $p.Params.searchHidden) (ne $p.Layout `archives`) (ne $p.Layout `search`) (not $p.IsHome) }} +- [{{ $p.Title }}]({{ $p.Permalink }}) + {{- end -}} +{{- end -}} + +{{- end -}} + +{{- range site.Sections -}} +{{- template "llms_print_section" (dict "section" . "depth" 1) -}} +{{- end }}