Files
hugo-PaperMod/layouts/_default/llms.txt
Aditya Telange 3bb0ca281f Add support for llms.txt
The llms.txt file is an industry standard that helps LLMs index content more efficiently

hugo.yml =>
```yml
outputFormats:
  llms:
    mediaType: "text/plain"
    baseName: "llms"
    isPlainText: true
    notAlternative: true

outputs:
  home:
    - HTML
    - RSS
    - JSON
    - llms
```
2026-01-25 20:55:47 +05:30

42 lines
1.2 KiB
Plaintext

{{- /* 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 }}