diff --git a/content/functions/union.md b/content/functions/union.md
new file mode 100644
index 000000000..3ff433d8b
--- /dev/null
+++ b/content/functions/union.md
@@ -0,0 +1,33 @@
+---
+title: union
+linktitle: union
+description: Given two arrays or slices, returns a new array that contains the elements or objects that belong to either or both arrays/slices.
+godocref:
+date: 2017-03-12
+publishdate: 2017-03-12
+lastmod: 2017-03-12
+categories: [functions]
+tags: [filtering,lists]
+signature:
+workson: []
+hugoversion: 0.20
+relatedfuncs: [intersect,where]
+deprecated: false
+aliases: []
+---
+
+Given two arrays (or slices) A and B, this function will return a new array that contains the elements or objects that belong to either A or to B or to both. The elements supported are strings, integers, and floats (only float64).
+
+```golang
+{{ union (slice 1 2 3) (slice 3 4 5) }}
+
+
+{{ union (slice 1 2 3) nil }}
+
+
+{{ union nil (slice 1 2 3) }}
+
+
+{{ union nil nil }}
+
+```
\ No newline at end of file
diff --git a/content/functions/where.md b/content/functions/where.md
index df6b75d80..b2ce54a06 100644
--- a/content/functions/where.md
+++ b/content/functions/where.md
@@ -49,19 +49,36 @@ It can also be used with the logical operators `!=`, `>=`, `in`, etc. Without an
The following logical operators are vailable with `where`:
-* `=`, `==`, `eq`: True if a given field value equals a matching value
-* `!=`, `<>`, `ne`: True if a given field value doesn't equal a matching value
-* `>=`, `ge`: True if a given field value is greater than or equal to a matching value
-* `>`, `gt`: True if a given field value is greater than a matching value
-* `<=`, `le`: True if a given field value is lesser than or equal to a matching value
-* `<`, `lt`: True if a given field value is lesser than a matching value
-* `in`: True if a given field value is included in a matching value. A matching value must be an array or a slice
-* `not in`: True if a given field value isn't included in a matching value. A matching value must be an array or a slice
-* `intersect`: True if a given field value that is a slice / array of strings or integers contains elements in common with the matching value. It follows the same rules as the intersect function.
+`=`, `==`, `eq`
+: `true` if a given field value equals a matching value
+
+`!=`, `<>`, `ne`
+: `true` if a given field value doesn't equal a matching value
+
+`>=`, `ge`
+: `true` if a given field value is greater than or equal to a matching value
+
+`>`, `gt`
+: `true` if a given field value is greater than a matching value
+
+`<=`, `le`
+: `true` if a given field value is lesser than or equal to a matching value
+
+`<`, `lt`
+: `true` if a given field value is lesser than a matching value
+
+`in`
+: `true` if a given field value is included in a matching value; a matching value must be an array or a slice
+
+`not in`
+: `true` if a given field value isn't included in a matching value; a matching value must be an array or a slice
+
+`intersect`
+: `true` if a given field value that is a slice/array of strings or integers contains elements in common with the matching value; it follows the same rules as the [`intersect` function][intersect].
## Using `where` with `intersect`
-```golang
+```html
{{ range where .Site.Pages ".Params.tags" "intersect" .Params.tags }}
{{ if ne .Permalink $.Permalink }}
{{ .Render "summary" }}
@@ -69,17 +86,37 @@ The following logical operators are vailable with `where`:
{{ end }}
```
+You can also put the returned value of the `where` clauses into a variable:
+
+{{% code file="where-intersect-variables.html" %}}
+```html
+{{ $v1 := where .Site.Pages "Params.a" "v1" }}
+{{ $v2 := where .Site.Pages "Params.b" "v2" }}
+{{ $filtered := $v1 | intersect $v2 }}
+{{ range $filtered }}
+{{ end }}
+```
+{{% /code %}}
+
## Using `where` with `first`
-```golang
+The following grabs the first five content files in `post` using the [default ordering](/templates/ordering-and-grouping/) for lists (i.e., `weight => date`):
+
+{{% code file="where-with-first.html" %}}
+```html
{{ range first 5 (where .Data.Pages "Section" "post") }}
{{ .Content }}
{{ end }}
```
+{{% /code %}}
## Nesting `where` Clauses
-**Needs Example**
+You can also nest `where` clauses to drill down on lists of content by more than one parameter. The following first grabs all pages in the "blog" section and then ranges through the result of the first `where` clause and finds all pages that are *not* featured:
+
+```
+{{ range where (where .Data.Pages "Section" "blog" ) ".Params.featured" "!=" "true" }}
+```
## Unset Fields
@@ -92,9 +129,10 @@ Only the following operators are available for `nil`
* `=`, `==`, `eq`: True if the given field is not set.
* `!=`, `<>`, `ne`: True if the given field is set.
-```golang
+```html
{{ range where .Data.Pages ".Params.specialpost" "!=" nil }}
{{ .Content }}
{{ end }}
```
+[intersect]: /functions/intersect/
\ No newline at end of file
diff --git a/content/getting-started/installing.md b/content/getting-started/installing.md
index c4f503b0a..9ecbb21e3 100644
--- a/content/getting-started/installing.md
+++ b/content/getting-started/installing.md
@@ -458,6 +458,7 @@ you need to install the Python-based Pygments program. The procedure is outlined
Now that you've installed Hugo, read the [Quick Start guide][quickstart] and explore the rest of the documentation. If you have questions, ask the Hugo community directly by visiting the [Hugo Discussion Forum][forum].
[brew]: https://brew.sh/
+[Chocolatey]: https://chocolatey.org/
[highlight shortcode]: /content-management/shortcodes/#highlight
[forum]: https://discuss.gohugo.io
[installgit]: (http://git-scm.com/)
diff --git a/content/hosting-and-deployment/hosting-on-firebase.md b/content/hosting-and-deployment/hosting-on-firebase.md
new file mode 100644
index 000000000..26cbbc5d0
--- /dev/null
+++ b/content/hosting-and-deployment/hosting-on-firebase.md
@@ -0,0 +1,17 @@
+---
+title: Hosting on Firebase
+linktitle: Hosting on Firebase
+description: You can use Firebase's free tier to host your static website; this also gives you access to Firebase's NOSQL API.
+date: 2017-03-12
+publishdate: 2017-03-12
+lastmod: 2017-03-12
+categories: [hosting and deployment]
+tags: [hosting,firebase]
+authors: []
+weight: 40
+draft: true
+toc: true
+aliases: []
+wip: true
+---
+
diff --git a/layouts/partials/content-footer.html b/layouts/partials/content-footer.html
index 1cb493b1d..fa4d5a5b5 100644
--- a/layouts/partials/content-footer.html
+++ b/layouts/partials/content-footer.html
@@ -3,7 +3,7 @@
{{$section := .Section}}
{{ if .NextInSection }}
-
+