+ {{ range after 1 (where .Site.RegularPages "Type" "in"
+ .Site.Params.mainSections) }}
+
+ {{ .Render "card" }}
+
+ {{ end }}
+
+```
+
+And pass it off to a Render function which references a view. In this case `card` is a template in `./layouts/_default/card.html`.
+
+If you want a different view depending on the content being rendered, you should create the `card.html` for each content you want it to be applied to.
+
+So if we wanted to use `card.html` for post and it be different to the default view, we should create `./layouts/post/card.html`.
+
+Hugo knows the content type and location when using a render, and will use it if it exists, and default to the view in `./layout/_default` if not.
+
+This only works in a list context - i.e in your `html` template you should use `range` or some other command that gets you a list context.
+
+#### Not using render functions
+
+If you don't need to use render functions, say you want to grab the content and not pass it to a view html template you can always do it inline:
+
+```html
+{{- range first 1 (where .Site.RegularPages "Type" "in"
+.Site.Params.mainSections) -}} {{ $page := . }}
+
+
+ {{- with $page.Params.images -}}
+ {{- $images := . -}}
+```
+
+### html snippets for templates
+
+#### Get authors from front matter
+
+`{{ .Params.authors }}`
+
+#### Iterate through a list
+
+```hugo
+{{ range $term.Params.name }}
+{{ end }}
+```
+
+#### Get n'th item
+
+`{{ index $term.Params.name 0 }}`
+
+#### Get the corresponding page in a bundle from an author
+
+You can access paramters in other pages from a different page by using `$.Site.GetPage` to find the page. You can find the page using front matter from the current page you are in as a variable.
+
+```hugo
+{{- with $.Site.GetPage (printf "/authors/%s" (. | urlize)) -}}
+{{- $term := . -}}
+```
+
+You can get the permalink of this page to use in the html
+
+`{{ $term.RelPermalink }}`
+
+We use this to get the image of an author in a branch bundle.
+
+#### Get a resource (image etc) from a parameter
+
+`{{- with .Resources.GetMatch (index $term.Params.images 0) -}}`
+`{{ end }}`
+
+You can resize the image
+
+`{{- $image := .Resize "64x" -}}`
+
+And then use the permalink to display in html
+
+`{{ $image.RelPermalink }}`
+
+#### Set parameter
+
+`{{ $term := . }}`
+
+#### Access all pages in a branch bundle
+
+If you're writing a `terms.html` you can find all page in the bundle with
+
+```hugo
+{{ range .Data.Pages }}
+{{ end }}
+```
+
+### Creating a search index using Scratch
+
+
+
+
+You can dynamically create a whole index of all blog posts or any content in a json file with Hugo.
+
+You should first add `JSON` to the `[outputs]` stanza in your `config.toml` file:
+
+```toml
+[outputs]
+ home = ["HTML", "RSS", "JSON"]
+ page = ["HTML", "RSS"]
+```
+
+Then in `./layouts/_default` create an `index.json` file.
+
+We can utilise the Hugo command scratch, which creates a temporary scratch pad to store variables, to create a json object for the whole site:
+
+```json
+{{- $.Scratch.Add "index" slice -}}
+{{- range .Site.RegularPages -}}
+ {{- $.Scratch.Add "index" (dict "title" .Title "subtitle" .Params.subtitle "description" .Params.description "tags" .Params.tags "images" .Params.images "content" .Plain "permalink" .Permalink) -}}
+{{- end -}}
+{{- $.Scratch.Get "index" | jsonify -}}
+```
+
+### SEO
+
+To optimise Hugo for SEO we can follow this guide:
.
+
+#### Structured data
+
+Structured data is provided in your html base template that allows Google to know more about the content it is showing. Structured data shows the ratings in a review, or the calories in a recipe on the card itself in the search results.
+
+There is a standard from Schema that shows all possible rules you can use:
.
+
+Google also has documentation for certain types. A blog post or article can be found here: .
+
+We use this guide to set the structured data: for a Hugo article.
+
+Create a `schema.html` file in `./layouts/partials/`.
+
+An example file for an article is: .
+
+#### Generic meta tags
+
+The following should go in your `` block:
+
+```html
+
+
+
+```
+
+#### Title
+
+You should set a title for your pages.
+
+You should have a unique title for each page. This will be used to create a dynamic title for SEO like `My first blog post | panaetius.io`.
+
+```hugo
+
+{{ $scratch := newScratch }}
+{{ with .Params.Title }}
+{{ $scratch.Set "title" . }}
+{{ $scratch.Add "title" " | " }}
+{{ end }}
+{{ $scratch.Add "title" .Site.Title }}
+
+
+
+
+
+
+```
+
+If the `Title` has been set on a page, it will use this then append the site title, else it will just the site title.
+
+#### Description
+
+
+
+You should set a description on your posts and other pages.
+
+This description should be no more than 155 characters and a few sentences. It should succintly and accurately describe your page and its content. E.g if you're writing a tutorial you would say so explicitly and give a brief idea of what it is.
+
+```hugo
+
+{{ if .Description }}
+{{ $scratch.Set "description" .Description}}
+{{ else if .Site.Params.description }}
+{{ $scratch.Set "description" .Site.Params.description }}
+{{ end }}
+
+
+
+
+
+```
diff --git a/blog/themes/hugo-theme-chunky-poster b/blog/themes/hugo-theme-chunky-poster
index 9f430f3..a2b62a3 160000
--- a/blog/themes/hugo-theme-chunky-poster
+++ b/blog/themes/hugo-theme-chunky-poster
@@ -1 +1 @@
-Subproject commit 9f430f33f81f97d1604a2a304cbbfadc72389507
+Subproject commit a2b62a370ba07825ad3c7a915de24a78ed35e6f2
diff --git a/tasks.todo b/tasks.todo
index 05bb74e..3b0626c 100644
--- a/tasks.todo
+++ b/tasks.todo
@@ -14,23 +14,30 @@ Tasks:
✔ Add image to homepage + document @done (5/5/2020, 4:09:20 AM)
✔ Add image to post + document @done (5/5/2020, 7:32:50 PM)
+ Colour:
+ ☐ Add colour to default `` like Forestry