shithub: hugo

Download patch

ref: 1d4dde7ac3842796916277d579b2627d93a624ec
parent: ca7007bf26c9d81ef218f0a274fe3a9a77b1b188
author: Will Stevens <[email protected]>
date: Wed Oct 8 08:05:22 EDT 2014

added docs for 'intersect' and 'in' template functions

--- a/docs/content/templates/functions.md
+++ b/docs/content/templates/functions.md
@@ -72,6 +72,32 @@
        {{ .Content}}
     {{ end }}
 
+### in
+Checks if an element is in an array (or slice) and returns a boolean.  The elements supported are strings, integers and floats (only float64 will match as expected).  In addition, it can also check if a substring exists in a string.
+
+e.g.
+    {{ if in .Params.tags "Git" }}Follow me on GitHub!{{ end }}
+or
+    {{ if in "this string contains a substring" "substring" }}Substring found!{{ end }}
+
+### intersect
+Given two arrays (or slices), this function will return the common elements in the arrays.  The elements supported are strings, integers and floats (only float64).
+
+A useful example of this functionality is a 'similar posts' block.  Create a list of links to posts where any of the tags in the current post match any tags in other posts.
+
+e.g.
+    <ul>
+    {{ $page_link := .Permalink }}
+    {{ $tags := .Params.tags }}
+    {{ range .Site.Recent }}
+        {{ $page := . }}
+        {{ $has_common_tags := intersect $tags .Params.tags | len | lt 0 }}
+        {{ if and $has_common_tags (ne $page_link $page.Permalink) }}
+            <li><a href="{{ $page.Permalink }}">{{ $page.Title }}</a></li>
+        {{ end }}
+    {{ end }}
+    </ul>
+
 
 ## Math