mirror of
				https://github.com/imfing/hextra.git
				synced 2025-10-31 16:04:55 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {{- /*
 | |
| Extracts all headings from a page and adds them to the scratchpad.
 | |
| 
 | |
| The keys can be obtained from the scratchpad by using the "keys" key.
 | |
| The titles can be obtained from the scratchpad by using the "titles" key.
 | |
| 
 | |
| The scratchpad must be initialized with empty slices before calling this function for the keys "keys" and "titles"
 | |
| 
 | |
| @param {any} target The element to extract headings from.
 | |
| @param {any} scratch The scratchpad to add the keys and titles to.
 | |
| 
 | |
| @example {{ partial "utils/extract-headings.html" (dict "target" $h1 "scratch" $s) }}
 | |
| */ -}}
 | |
| 
 | |
| {{- range $heading := index .target.Headings -}}
 | |
|   {{- if and (eq $heading.Level 0) (not $heading.Title) -}}
 | |
|     {{- $.scratch.Add "keys" (slice $heading.Title) -}}
 | |
|   {{- else -}}
 | |
|     {{- $key := (printf "%s#%s" $heading.ID $heading.Title) -}}
 | |
|     {{- $.scratch.Add "keys" (slice $key) -}}
 | |
|   {{- end -}}
 | |
| 
 | |
|   {{- $title := (printf "<h%d>%s" $heading.Level $heading.Title) | htmlUnescape -}}
 | |
|   {{- $.scratch.Add "titles" (slice $title) -}}
 | |
| 
 | |
|   {{- partial "utils/extract-headings.html" (dict
 | |
|     "target" $heading
 | |
|     "scratch" $.scratch
 | |
|     )
 | |
|   }}
 | |
| {{- end -}}
 | 
