mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	
		
			
	
	
		
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								aliases:
							 | 
						||
| 
								 | 
							
								- /doc/debugging/
							 | 
						||
| 
								 | 
							
								- /layout/debugging/
							 | 
						||
| 
								 | 
							
								date: 2015-05-22
							 | 
						||
| 
								 | 
							
								linktitle: Debugging
							 | 
						||
| 
								 | 
							
								menu:
							 | 
						||
| 
								 | 
							
								  main:
							 | 
						||
| 
								 | 
							
								    parent: layout
							 | 
						||
| 
								 | 
							
								prev: /templates/404
							 | 
						||
| 
								 | 
							
								title: Template Debugging
							 | 
						||
| 
								 | 
							
								weight: 110
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Template Debugging
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Here are some snippets you can add to your template to answer some common questions.
							 | 
						||
| 
								 | 
							
								These snippets use the `printf` function available in all Go templates.  This function is
							 | 
						||
| 
								 | 
							
								an alias to the Go function, [fmt.Printf](http://golang.org/pkg/fmt/).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### What type of page is this?
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Does Hugo consider this page to be a "Node" or a "Page"? (Put this snippet at
							 | 
						||
| 
								 | 
							
								the top level of your template. Don't use it inside of a `range` loop.)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    {{ printf "%T" . }}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### What variables are available in this context?
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can use the template syntax, `$.`, to get the top-level template context
							 | 
						||
| 
								 | 
							
								from anywhere in your template.  This will print out all the values under, `.Site`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    {{ printf "%#v" $.Site }}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This will print out the value of `.Permalink`, which is available on both Nodes
							 | 
						||
| 
								 | 
							
								and Pages.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    {{ printf "%#v" .Permalink }}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This will print out a list of all the variables scoped to the current context
							 | 
						||
| 
								 | 
							
								(a.k.a. The dot, "`.`").
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    {{ printf "%#v" . }}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								When writing a [Homepage](/templates/homepage), what does one of the pages
							 | 
						||
| 
								 | 
							
								you're looping through look like?
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								{{ range .Data.Pages }}
							 | 
						||
| 
								 | 
							
								    {{/* The context, ".", is now a Page */}}
							 | 
						||
| 
								 | 
							
								    {{ printf "%#v" . }}
							 | 
						||
| 
								 | 
							
								{{ end }}
							 | 
						||
| 
								 | 
							
								```
							 |