Single templates

{{ define "inactiveBrick" }}
{{ end }} {{ define "raisedBrick" }}
{{ end }} {{ define "speakerBrick" }}
{{ end }} {{ define "markBrick" }}
X
{{ end }}

Now for BrickData taking parametrized template name

{{ define "brick" }} {{ if eq .TemplateType "inactiveBrick" }} {{ template "inactiveBrick" .ColorClass }} {{ else if eq .TemplateType "raisedBrick" }} {{template "raisedBrick" .ColorClass }} {{ else if eq .TemplateType "speakerBrick"}} {{ template "speakerBrick" .ColorClass }} {{ else if eq .TemplateType "markBrick" }} {{ template "markBrick" .ColorClass }} {{ end }} {{end}}

Now for a person

expected to be called with personData

{{ define "personBlocks" }}
{{ range .BricksForPerson }} {{ template "brick" . }} {{ end }}

{{ .Name }}

{{ end }}

And now i'll want to get all persons for a room

expected be called with room *roomTableData

{{ define "roomPeople" }}
{{ with .ArrowData }} {{ if .IsVisible }} {{ end }} {{ end }} {{ range .Persons }} {{ template "personBlocks" . }} {{ end }}
{{end}}