diff --git a/.gitignore b/.gitignore index 3cb9c3f4c..f7877f45c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ themes/hugodocs/pipeline/node_modules my-notes.md -notes-for-reviewers.md \ No newline at end of file +notes-for-reviewers.md +features-log.md \ No newline at end of file diff --git a/content/about-hugo/benefits-of-static.md b/content/about-hugo/benefits-of-static.md index 87d36c91e..905aa868e 100644 --- a/content/about-hugo/benefits-of-static.md +++ b/content/about-hugo/benefits-of-static.md @@ -5,7 +5,7 @@ description: Learn why static site generators have become such a popular option date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [ssg,static site generator] +tags: [ssg,static,performance, security] weight: 20 draft: false slug: @@ -26,7 +26,7 @@ Not running a website generator on your HTTP server has many benefits. The most sending files. So good that you can effectively serve the same number of pages with a fraction of the memory and CPU needed for a dynamic site. -## Additional Resources +## Resources on Static Site Generators * ["An Introduction to Static Site Generators", David Walsh][] * ["Static Site Generators", O-Reilly][] diff --git a/content/about-hugo/hugo-features.md b/content/about-hugo/hugo-features.md index e649bac32..2b1d50de2 100644 --- a/content/about-hugo/hugo-features.md +++ b/content/about-hugo/hugo-features.md @@ -36,7 +36,7 @@ notesforauthors: ## Content * Native Markdown support, as well as other languages through *external helpers* (see [supported formats][]) -* Support for TOML, YAML and JSON metadata in [front matter][] +* Support for TOML, YAML, and JSON metadata in [front matter][] * Customizable [homepage][] * Multiple [content types][] * Automatic and user defined [content summaries][] @@ -54,7 +54,6 @@ notesforauthors: See what's coming next in the [Hugo roadmap][]. -[pagevars]: /variables-and-params/page-variables/ [Ace]: /templates/ace-templating/ [aliases]: /content-management/url-management/#aliases [Amber]: https://github.com/eknkc/amber @@ -74,6 +73,7 @@ See what's coming next in the [Hugo roadmap][]. [LiveReload]: /getting-started/using-hugo/ [Mac OSX]: /getting-started/install-of-pc/ [organization for your projects]: /getting-started/directory-structure/ +[pagevars]: /variables-and-params/page-variables/ [Permalink]: /content-management/url-management/#permalinks [Powerful theming]: /themes/ [Pretty URLs]: /content-management/url-management/ diff --git a/content/about-hugo/why-i-built-hugo.md b/content/about-hugo/why-i-built-hugo.md index 0051b0b23..1227c6540 100644 --- a/content/about-hugo/why-i-built-hugo.md +++ b/content/about-hugo/why-i-built-hugo.md @@ -19,7 +19,7 @@ WordPress sites rendered slowly and required I be online to write posts. WordPre I looked at existing static site generators like [Jekyll][], [Middleman][], and [Nanoc][]. All had complicated installation dependencies and an unacceptably long time to render my blog with hundreds of posts. I wanted a framework that would give me rapid feedback while making changes to the templates, and the 5-minute-plus render times were just too slow. In general, the static site generators were very blog-minded and didn't provide for other content types and flexible URLs. -I wanted to develop a fast and full-featured website framework without any dependencies. The [Go language][] seemed to have all the features I needed in a language. I began developing Hugo in Go and fell in love with the language. I hope you will enjoy using Hugo (and [contributing to it][]) as much as I have writing it. +I wanted to develop a fast and full-featured website framework without any dependencies. The [Go language][] seemed to have all the features I needed. I began developing Hugo in Go and fell in love with the language. I hope you will enjoy using Hugo (and [contributing to it][]) as much as I have writing it. ―Steve Francia ([@spf13][]) diff --git a/content/content-management/menus.md b/content/content-management/menus.md index cc6fdcfec..e1377d7f6 100644 --- a/content/content-management/menus.md +++ b/content/content-management/menus.md @@ -13,15 +13,14 @@ slug: aliases: [/extras/menus/] toc: false needsreview: true -notesforauthors: --- - Hugo has a simple yet powerful menu system that permits content to be placed in menus with a good degree of control without a lot of work. - -*TIP:* If all you want is a simple menu for your sections, see [Section Menu for "the Lazy Blogger"](#section-menu-for-the-lazy-blogger). +{{% note "Lazy Blogger"%}} +If all you want is a simple menu for your sections, see [Section Menu for "the Lazy Blogger"](#section-menu-for-the-lazy-blogger). +{{% /note %}} Some of the features of Hugo Menus: @@ -154,87 +153,6 @@ In this example, the top level of the menu is defined in the config file and all content entries are attached to one of these entries via the `parent` field. -## Rendering menus +## Rendering Menus -Hugo makes no assumptions about how your rendered HTML will be -structured. Instead, it provides all of the functions you will need to be -able to build your menu however you want. - - -The following is an example: - - - - - -> **Note**: use the `absLangURL` or `relLangURL` if your theme makes use of the [multilingual feature](/content-management/multilingual-mode/). In contrast to `absURL` and `relURL` it adds the correct language prefix to the url. [Read more](/functions/). - -## Section Menu for "the Lazy Blogger" - -To enable this menu, add this to your site config, i.e. `config.toml`: - -``` -SectionPagesMenu = "main" -``` - -The menu name can be anything, but take a note of what it is. - -This will create a menu with all the sections as menu items and all the sections' pages as "shadow-members". The _shadow_ implies that the pages isn't represented by a menu-item themselves, but this enables you to create a top-level menu like this: - -``` - - -``` - -In the above, the menu item is marked as active if on the current section's list page or on a page in that section. - -The above is all that's needed. But if you want custom menu items, e.g. changing weight or name, you can define them manually in the site config, i.e. `config.toml`: - -``` - [[menu.main]] - name = "This is the blog section" - weight = -110 - identifier = "blog" - url = "/blog/" - -``` - -**Note** that the `identifier` must match the section name. \ No newline at end of file +See [Menu Templates](/templates/menu-templates/). diff --git a/content/developer-tools/syntax-highlighting.md b/content/developer-tools/syntax-highlighting.md index 5f67a2b4d..cf80e93ed 100644 --- a/content/developer-tools/syntax-highlighting.md +++ b/content/developer-tools/syntax-highlighting.md @@ -10,8 +10,9 @@ categories: [developer tools] weight: draft: false slug: -aliases: [/extras/highlighting/] +aliases: [/extras/highlighting/,/extras/highlight/] toc: true +needsreview: true notesforauthors: --- diff --git a/content/functions/_index.md b/content/functions/_index.md index 29ff1c0f5..dbe9a210f 100644 --- a/content/functions/_index.md +++ b/content/functions/_index.md @@ -1,5 +1,5 @@ --- -title: Functions +title: Functions Quick Reference linktitle: Overview description: Comprehensive list of Hugo templating functions, including basic and advanced usage examples. date: 2017-02-01 diff --git a/content/functions/index-function.md b/content/functions/index-function.md index bfcc3daf9..85c6c16bb 100644 --- a/content/functions/index-function.md +++ b/content/functions/index-function.md @@ -2,7 +2,7 @@ title: index linktitle: index description: -godocref: +godocref: https://golang.org/pkg/text/template/#hdr-Functions date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -14,6 +14,10 @@ aliases: [] notesforauthors: --- +From the godocs: + +> Returns the result of indexing its first argument by the following arguments. Thus "index x 1 2 3" is, in Go syntax, x[1][2][3]. Each indexed item must be a map, slice, or array. + ## Example ## Advanced Example diff --git a/content/getting-started/_index.md b/content/getting-started/_index.md index 722dff87e..e5103f7fd 100644 --- a/content/getting-started/_index.md +++ b/content/getting-started/_index.md @@ -15,7 +15,7 @@ toc: false notesforauthors: --- -The Hugo docs were completely reworked from the ground up in anticipation of v0.19. Included in the reboot was the concept of using a [single example site][] for code blocks and demo content in the documentation. Once you finish the [quick start][], be sure to read up on how [the Hugo docs have been optimized for rapid learning][]. +The Hugo docs were completely reworked from the ground up in anticipation of v0.19. Included in the reboot was the concept of leveraging a [single example site][] from which to pull code blocks and demo content in the documentation. Once you finish the [quick start][], be sure to look into how [the Hugo docs have been optimized for rapid learning][]. [quick start]: /getting-started/quick-start/ [single example site]: /getting-started/using-the-hugo-docs/ diff --git a/content/getting-started/basic-usage.md b/content/getting-started/basic-usage.md index 8efc179f1..34949078c 100644 --- a/content/getting-started/basic-usage.md +++ b/content/getting-started/basic-usage.md @@ -1,7 +1,7 @@ --- title: Basic Usage linktitle: Basic Usage -description: +description: Hugo's CLI is fully featured but simple. You do not need a high level of expertise on the command line to get up and running. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -9,10 +9,254 @@ categories: [getting started] tags: [usage,livereload,command line] weight: 40 draft: false -slug: -aliases: [/overview/usage/,/extras/livereload/,/getting-started/using-hugo/] -toc: false +aliases: [/overview/usage/,/extras/livereload/,/getting-started/using-hugo/,/doc/usage/] +toc: true +needsreview: true notesforauthors: --- -## LiveReload \ No newline at end of file +Once you have [installed Hugo][install] is in your `PATH` (or provide a path to it). Test this by: + +```bash +hugo help +hugo is the main command, used to build your Hugo site. + +Hugo is a Fast and Flexible Static Site Generator built with love by spf13 and friends in Go. + +Complete documentation is available at http://gohugo.io/. + +Usage: + hugo [flags] + hugo [command] + +Available Commands: + benchmark Benchmark Hugo by building a site a number of times. + config Print the site configuration + convert Convert your content to different formats + env Print Hugo version and environment info + gen A collection of several useful generators. + import Import your site from others. + list Listing out various types of content + new Create new content for your site + server A high performance webserver + undraft Undraft changes the content's draft status from 'True' to 'False' + version Print the version number of Hugo + +Flags: + -b, --baseURL string hostname (and path) to the root, e.g. http://spf13.com/ + -D, --buildDrafts include content marked as draft + -E, --buildExpired include expired content + -F, --buildFuture include content with publishdate in the future + --cacheDir string filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ + --canonifyURLs if true, all relative URLs will be canonicalized using baseURL + --cleanDestinationDir Remove files from destination not found in static directories + --config string config file (default is path/config.yaml|json|toml) + -c, --contentDir string filesystem path to content directory + -d, --destination string filesystem path to write files to + --disable404 Do not render 404 page + --disableRSS Do not build RSS files + --disableSitemap Do not build Sitemap file + --enableGitInfo Add Git revision, date and author info to the pages + --forceSyncStatic Copy all files when static is changed. + --i18n-warnings Print missing translations + --ignoreCache Ignores the cache directory + -l, --layoutDir string filesystem path to layout directory + --log Enable Logging + --logFile string Log File path (if set, logging enabled automatically) + --noChmod Don't sync permission mode of files + --noTimes Don't sync modification time of files + --pluralizeListTitles Pluralize titles in lists using inflect (default true) + --preserveTaxonomyNames Preserve taxonomy names as written ("Gérard Depardieu" vs "gerard-depardieu") + --quiet build in quiet mode + --renderToMemory render to memory (only useful for benchmark testing) + -s, --source string filesystem path to read files relative from + --stepAnalysis display memory and timing of different steps of the program + -t, --theme string theme to use (located in /themes/THEMENAME/) + --uglyURLs if true, use /filename.html instead of /filename/ + -v, --verbose verbose output + --verboseLog verbose logging + -w, --watch watch filesystem for changes and recreate as needed + +Additional help topics: + hugo check Contains some verification checks + +Use "hugo [command] --help" for more information about a command. +``` + +## Common Usage Example + +The most common use is probably to run `hugo` with your current directory being the input directory: + +```bash +hugo +0 draft content +0 future content +99 pages created +0 paginator pages created +16 tags created +0 groups created +in 120 ms +``` + +This generates your web site to the `public/` directory, ready to be deployed to your web server. + +## Instant feedback as you develop your web site + +If you are working on things and want to see the changes immediately, by default Hugo will watch the filesystem for changes, and rebuild your site as soon as a file is saved: + +```bash +hugo -s ~/Code/hugo/docs +0 draft content +0 future content +99 pages created +0 paginator pages created +16 tags created +0 groups created +in 120 ms +Watching for changes in /Users/spf13/Code/hugo/docs/content +Press Ctrl+C to stop +``` + +Hugo can even run a server and create a site preview at the same time! Hugo implements [LiveReload](#LiveReload) technology to automatically reload any open pages in all JavaScript-enabled browsers, including mobile. This is the easiest and most common way to develop a Hugo web site: + +```bash +hugo server -ws ~/Code/hugo/docs +0 draft content +0 future content +99 pages created +0 paginator pages created +16 tags created +0 groups created +in 120 ms +Watching for changes in /Users/spf13/Code/hugo/docs/content +Serving pages from /Users/spf13/Code/hugo/docs/public +Web Server is available at http://localhost:1313/ +Press Ctrl+C to stop +``` +Hugo may not be the first static site generator to utilize LiveReload +technology, but it’s the first to do it right. + +The combination of Hugo’s insane build speed and LiveReload make +crafting your content pure joy. Virtually instantly after you hit save +your rebuilt content will appear in your browser. + +## LiveReload + +Hugo comes with [LiveReload](https://github.com/livereload/livereload-js) built in. There are no additional packages to install. A common way to use Hugo while developing a site is to have Hugo run a server and watch for changes: + +```bash +hugo server +``` + +This will run a full functioning web server while simultaneously watching your file system for additions, deletions, or changes within the following + +* `/static/*` +* `/content/*` +* `/data/*` +* `/layouts/*` +* `/themes//*` +* `config` + +Whenever you make changes, Hugo will simultaneously rebuild the site and continue to serve content. As soon as the build is finished, LiveReload tells the browser to silently reload the page. + +Most Hugo builds are so fast that you may not notice the change unless looking directly at the site in your browser. This means that keeping the site open on a second monitor (or another half of your current monitor) allows you to see the most up-to-date version of your website without the need to leave your text editor. + +{{% note "Closing `` Tag"%}} +You must have a closing `` tag for LiveReload to work. +Hugo injects the LiveReload ` + + + +To reference a partial template stored in a subfolder, e.g. `/layouts/partials/post/tag/list.html`, call it this way: + + {{ partial "post/tag/list" . }} + +Note that the subdirectories you create under /layouts/partials can be named whatever you like. + +For more examples of referencing these templates, see +[single content templates](/templates/content/), +[list templates](/templates/list/) and +[homepage templates](/templates/homepage/). + + +## Variable scoping + +As you might have noticed, `partial` calls receive two parameters. + +1. The first is the name of the partial and determines the file +location to be read. +2. The second is the variables to be passed down to the partial. + +This means that the partial will _only_ be able to access those variables. It is +isolated and has no access to the outer scope. From within the +partial, `$.Var` is equivalent to `.Var` + +## Cached Partials + +The `partialCached` template function can offer significant performance gains +for complex templates that don't need to be rerendered upon every invocation. +The simplest usage is as follows: + + {{ partialCached "footer.html" . }} + +You can also pass additional parameters to `partialCached` to create *variants* of the cached partial. +For example, say you have a complex partial that should be identical when rendered for pages within the same section. +You could use a variant based upon section so that the partial is only rendered once per section: + + {{ partialCached "footer.html" . .Section }} + +If you need to pass additional parameters to create unique variants, +you can pass as many variant parameters as you need: + + {{ partialCached "footer.html" . .Params.country .Params.province }} + +Note that the variant parameters are not made available to the underlying partial template. +They are only use to create a unique cache key. + ## Built-in Partials * Google Analytics diff --git a/content/templates/rss-templates.md b/content/templates/rss-templates.md index 33be2e700..916bd5957 100644 --- a/content/templates/rss-templates.md +++ b/content/templates/rss-templates.md @@ -12,5 +12,109 @@ draft: false slug: aliases: [/templates/rss/] toc: false -notesforauthors: ---- \ No newline at end of file +needsreview: true +--- + +## RSS Template Lookup Order + +Like all other templates, you can use a single RSS template to generate all of your RSS feeds, or you can create a specific template for each individual feed. + +*Unlike other Hugo templates*, Hugo ships with its own [RSS 2.0 template](#the-embedded-rss-xml:eceb479b7b3b2077408a2878a29e1320). In most cases this will be sufficient, and an RSS template will not need to be provided by the user. But you can provide an rss template if you like, as you can see in the next section. + +RSS pages are of the type `Page` and have all the [page variables](/layout/variables/) available to use in the templates. + +## Which Template will be rendered? +Hugo uses a set of rules to figure out which template to use when rendering a specific page. + +Hugo will use the following prioritized list. If a file isn’t present, then the next one in the list will be used. This enables you to craft specific layouts when you want to without creating more templates than necessary. For most sites only the `\_default` file at the end of the list will be needed. + +### Main RSS + +* /layouts/rss.xml +* /layouts/\_default/rss.xml +* [Embedded rss.xml](#the-embedded-rss-xml:eceb479b7b3b2077408a2878a29e1320) + +### Section RSS + +* /layouts/section/`SECTION`.rss.xml +* /layouts/\_default/rss.xml +* /themes/`THEME`/layouts/section/`SECTION`.rss.xml +* /themes/`THEME`/layouts/\_default/rss.xml +* [Embedded rss.xml](#the-embedded-rss-xml:eceb479b7b3b2077408a2878a29e1320) + +### Taxonomy RSS + +* /layouts/taxonomy/`SINGULAR`.rss.xml +* /layouts/\_default/rss.xml +* /themes/`THEME`/layouts/taxonomy/`SINGULAR`.rss.xml +* /themes/`THEME`/layouts/\_default/rss.xml +* [Embedded rss.xml](#the-embedded-rss-xml:eceb479b7b3b2077408a2878a29e1320) + + +## Configuring RSS + +If the following values are specified in the site’s config file (`config.toml`), then they will be included in the RSS output. Example values are provided. + + languageCode = "en-us" + copyright = "This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License." + + [author] + name = "My Name Here" + + +## The Embedded rss.xml +This is the default RSS template that ships with Hugo. It adheres to the [RSS 2.0 Specification][RSS 2.0]. + + + + {{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }} + {{ .Permalink }} + Recent content {{ with .Title }}in {{.}} {{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + + {{ range first 15 .Data.Pages }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} + {{ .Permalink }} + {{ .Content | html }} + + {{ end }} + + + +**Important**: _Hugo will automatically add the following header line to this file on render… please don't include this in the template as it's not valid HTML._ + +```css + +``` + +## Referencing your RSS Feed in `` + +In your `header.html` template, you can specify your RSS feed in your `` tag like this: + +```html +{{ if .RSSLink }} + + +{{ end }} +``` + +... with the autodiscovery link specified by the line with `rel="alternate"`. + +The `.RSSLink` will render the appropriate RSS feed URL for the section, whether it's everything, posts in a section, or a taxonomy. + +**N.b.**, if you reference your RSS link, be sure to specify the mime type with `type="application/rss+xml"`. + +```html +{{ .SomeText }} +``` + +[RSS 2.0]: http://cyber.law.harvard.edu/rss/rss.html "RSS 2.0 Specification" \ No newline at end of file diff --git a/content/templates/shortcode-templates.md b/content/templates/shortcode-templates.md index a22c1ebb5..5013bf939 100644 --- a/content/templates/shortcode-templates.md +++ b/content/templates/shortcode-templates.md @@ -11,7 +11,6 @@ tags: [shortcodes] draft: false aliases: [] toc: true -notesforauthors: --- ## Creating Custom Shortcodes @@ -28,7 +27,7 @@ You can create the following types of shortcodes * Positional parameters * Named parameters -* Both positional or named parameters (i.e, "flexible") +* Positional *or* named parameters (i.e, "flexible") * Single-word shortcodes * Nested diff --git a/content/templates/single-page-templates.md b/content/templates/single-page-templates.md index 51c3a6994..51c423444 100644 --- a/content/templates/single-page-templates.md +++ b/content/templates/single-page-templates.md @@ -10,9 +10,150 @@ tags: [] categories: [templates] draft: false slug: -aliases: [] +aliases: [/layout/content/] toc: false -notesforauthors: +needsreview: true --- -## Lookup Order for Single Page Templates \ No newline at end of file +The primary view of content in Hugo is the single view. Hugo, for every +Markdown file provided, will render it with a single template. + +## Lookup Order for Single Page Templates + +Hugo uses a set of rules to figure out which template to use when +rendering a specific page. + +Hugo will use the following prioritized list. If a file isn’t present, +then the next one in the list will be used. This enables you to craft +specific layouts when you want to without creating more templates +than necessary. For most sites, only the `_default` file at the end of +the list will be needed. + +Users can specify the `type` and `layout` in the [front-matter](/content/front-matter/). `Section` +is determined based on the content file’s location. If `type` is provided, +it will be used instead of `section`. + +### Single Page + +* /layouts/`TYPE`/`LAYOUT`.html +* /layouts/`SECTION`/`LAYOUT`.html +* /layouts/`TYPE`/single.html +* /layouts/`SECTION`/single.html +* /layouts/_default/single.html +* /themes/`THEME`/layouts/`TYPE`/`LAYOUT`.html +* /themes/`THEME`/layouts/`SECTION`/`LAYOUT`.html +* /themes/`THEME`/layouts/`TYPE`/single.html +* /themes/`THEME`/layouts/`SECTION`/single.html +* /themes/`THEME`/layouts/_default/single.html + +## Example Single Template File + +Content pages are of the type "page" and have all the [page variables](/layout/variables/) and [site variables](/templates/variables/) available to use in the templates. + +In the following examples we have created two different content types as well as a default content type. + +The default content template to be used in the event that a specific template has not been provided for that type. The default type works the same as the other types, but the directory must be called "\_default". + + ▾ layouts/ + ▾ _default/ + single.html + ▾ post/ + single.html + ▾ project/ + single.html + + +### post/single.html +This content template is used for [spf13.com](http://spf13.com/). It makes use of [partial templates](/templates/partials/) + + {{ partial "header.html" . }} + {{ partial "subheader.html" . }} + {{ $baseURL := .Site.BaseURL }} + +
+

{{ .Title }}

+
+
+ {{ .Content }} +
+
+
+ + + + {{ partial "disqus.html" . }} + {{ partial "footer.html" . }} + + +### project/single.html + +This content template is used for [spf13.com](http://spf13.com/). It makes use of [partial templates](/templates/partials/) + + + {{ partial "header.html" . }} + {{ partial "subheader.html" . }} + {{ $baseURL := .Site.BaseURL }} + +
+

{{ .Title }}

+
+
+ {{ .Content }} +
+
+
+ + + + {{if isset .Params "project_url" }} +
+ Fork me on GitHub +
+ {{ end }} + + {{ partial "footer.html" . }} + +Notice how the project/single.html template uses an additional parameter unique to this template. This doesn't need to be defined ahead of time. If the key is present in the front matter than it can be used in the template. To easily generate new content of this type with these keys ready use [content archetypes](/content/archetypes/). + diff --git a/content/templates/sitemap-template.md b/content/templates/sitemap-template.md index fc3217efc..a3595b4e5 100644 --- a/content/templates/sitemap-template.md +++ b/content/templates/sitemap-template.md @@ -1,6 +1,6 @@ --- title: Sitemap Template -linktitle: +linktitle: Sitemap description: date: 2017-02-01 publishdate: 2017-02-01 @@ -10,7 +10,61 @@ tags: [sitemap, xml] categories: [templates] draft: false slug: -aliases: [] +aliases: [/layout/sitemap/,/templates/sitemap/] toc: false -notesforauthors: ---- \ No newline at end of file +needsreview: true +--- + +A single Sitemap template is used to generate the `sitemap.xml` file. +Hugo automatically comes with this template file. **No work is needed on +the users' part unless they want to customize `sitemap.xml`.** + +A sitemap is a `Page` and have all the [page variables](/layout/variables/) available to use in this template along with Sitemap-specific ones: + +`.Sitemap.ChangeFreq` +: The page change frequency + +`.Sitemap.Priority` +: The priority of the page + +`.Sitemap.Filename` +: The sitemap filename + +If provided, Hugo will use `/layouts/sitemap.xml` instead of the internal one. + +## Hugo’s sitemap.xml + +This template respects the version 0.9 of the [Sitemap Protocol](http://www.sitemaps.org/protocol.html). + +```xml + + {{ range .Data.Pages }} + + {{ .Permalink }}{{ if not .Lastmod.IsZero }} + {{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}{{ end }}{{ with .Sitemap.ChangeFreq }} + {{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }} + {{ .Sitemap.Priority }}{{ end }} + + {{ end }} + +``` + +{{% note %}} +Hugo will automatically add the following header line to this file +on render. Please don't include this in the template as it's not valid HTML. + +`` +{{% /note %}} + +## Configuring `sitemap.xml` + +Defaults for ``, `` and `filename` values can be set in the site's config file, e.g.: + +```toml +[sitemap] + changefreq = "monthly" + priority = 0.5 + filename = "sitemap.xml" +``` + +The same fields can be specified in an individual page's front matter in order to override the value for that page. \ No newline at end of file diff --git a/content/templates/taxonomy-templates.md b/content/templates/taxonomy-templates.md index 62143e018..7e2f87000 100644 --- a/content/templates/taxonomy-templates.md +++ b/content/templates/taxonomy-templates.md @@ -10,16 +10,266 @@ categories: [templates] weight: draft: false slug: -aliases: [] +aliases: [/taxonomies/displaying/,/indexes/displaying/,/taxonomies/templates/,/indexes/ordering/] +needsreview: true toc: true notesforauthors: --- -## Taxonomy Terms Page Templates + -### Lookup Order for Taxonomy Terms Page Templates +Hugo makes a set of values and methods available on the various Taxonomy structures. -## Taxonomy List Page Templates +## Taxonomy Methods -### Lookup Order for Taxonomy List Page Templates +A Taxonomy is a `map[string]WeightedPages`. +.Get(term) +: Returns the WeightedPages for a term. + +.Count(term) +: The number of pieces of content assigned to this term. + +.Alphabetical +: Returns an OrderedTaxonomy (slice) ordered by Term. + +.ByCount +: Returns an OrderedTaxonomy (slice) ordered by number of entries. + +## OrderedTaxonomy + +Since Maps are unordered, an OrderedTaxonomy is a special structure that has a defined order. + +```go +[]struct { + Name string + WeightedPages WeightedPages +} +``` + +Each element of the slice has: + +.Term +: The Term used. + +.WeightedPages +: A slice of Weighted Pages. + +.Count +: The number of pieces of content assigned to this term. + +.Pages +: All Pages assigned to this term. All [list methods](/templates/list/) are available to this. + +## WeightedPages + +WeightedPages is simply a slice of WeightedPage. + +```go +type WeightedPages []WeightedPage +``` + +.Count(term) +: The number of pieces of content assigned to this term. + +.Pages +: Returns a slice of pages, which then can be ordered using any of the [list methods](/templates/list/). + + + +Hugo provides the ability to both: + + 1. Order the way the keys for a taxonomy are displayed + 2. Order the way taxonomyed content appears + + +## Ordering Taxonomies +Taxonomies can be ordered by either alphabetical key or by the number of content pieces assigned to that key. + +### Order Alphabetically Example + +
    + {{ $data := .Data }} + {{ range $key, $value := .Data.Taxonomy.Alphabetical }} +
  • {{ $value.Name }} {{ $value.Count }}
  • + {{ end }} +
+ +### Order by Popularity Example + +
    + {{ $data := .Data }} + {{ range $key, $value := .Data.Taxonomy.ByCount }} +
  • {{ $value.Name }} {{ $value.Count }}
  • + {{ end }} +
+ + +[See Also Taxonomy Lists](/templates/list/) + +## Ordering Content within Taxonomies + +Hugo uses both **Date** and **Weight** to order content within taxonomies. + +Each piece of content in Hugo can optionally be assigned a date. +It can also be assigned a weight for each taxonomy it is assigned to. + +When iterating over content within taxonomies the default sort is first by weight then by date. This means that if the weights for two pieces of content are the same, than the more recent content will be displayed first. The default weight for any piece of content is 0. + +### Assigning Weight + +Content can be assigned weight for each taxonomy that it's assigned to. + +```toml ++++ +tags = [ "a", "b", "c" ] +tags_weight = 22 +categories = ["d"] +title = "foo" +categories_weight = 44 ++++ +Front Matter with weighted tags and categories +``` + +The convention is `taxonomyname_weight`. + +In the above example, this piece of content has a weight of 22 which applies to the sorting when rendering the pages assigned to the "a", "b" and "c" values of the 'tag' taxonomy. + +It has also been assigned the weight of 44 when rendering the 'd' category. + +With this the same piece of content can appear in different positions in different taxonomies. + +Currently taxonomies only support the default ordering of content which is weight -> date. + + + +There are two different templates that the use of taxonomies will require you to provide. + +Both templates are covered in detail in the templates section. + +A [list template](/templates/list/) is any template that will be used to render multiple pieces of +content in a single html page. This template will be used to generate +all the automatically created taxonomy pages. + +A [taxonomy terms template](/templates/terms/) is a template used to +generate the list of terms for a given template. + + + +There are four common ways you can display the data in your +taxonomies in addition to the automatic taxonomy pages created by hugo +using the [list templates](/templates/list/): + +1. For a given piece of content, you can list the terms attached +2. For a given piece of content, you can list other content with the same + term +3. You can list all terms for a taxonomy +4. You can list all taxonomies (with their terms) + +## 1. Displaying taxonomy terms assigned to this content + +Within your content templates, you may wish to display +the taxonomies that that piece of content is assigned to. + +Because we are leveraging the front matter system to +define taxonomies for content, the taxonomies assigned to +each content piece are located in the usual place +(.Params.`plural`). + +### Example + +
    + {{ range .Params.tags }} +
  • {{ . }}
  • + {{ end }} +
+ +If you want to list taxonomies inline, you will have to take +care of optional plural ending in the title (if multiple taxonomies), +as well as commas. Let's say we have a taxonomy "directors" such as +`directors: [ "Joel Coen", "Ethan Coen" ]` in the TOML-format front matter. +To list such taxonomy use the following: + +### Example + + {{ if .Params.directors }} + Director{{ if gt (len .Params.directors) 1 }}s{{ end }}: + {{ range $index, $director := .Params.directors }}{{ if gt $index 0 }}, {{ end }}{{ . }}{{ end }} + {{ end }} + +Alternatively, you may use the [delimit](/templates/functions/) template function as a shortcut if the taxonomies should just be listed with a separator. See {{< gh 2143 >}} on GitHub for discussion. + +## 2. Listing content with the same taxonomy term + +First, you may be asking why you would use this. If you are using a taxonomy for something like a series of posts, this is exactly how you would do it. It’s also an quick and dirty way to show some related content. + +### Example + +```html + +``` + +## 3. Listing all content in a given taxonomy + +This would be very useful in a sidebar as “featured content”. You could +even have different sections of “featured content” by assigning +different terms to the content. + +### Example + + + + +## 4. Rendering a Site's Taxonomies + +If you wish to display the list of all keys for a taxonomy, you can find retrieve +them from the `.Site` variable which is available on every page. + +This may take the form of a tag cloud, a menu or simply a list. + +The following example displays all tag keys: + +### Example + +
    + {{ range $name, $taxonomy := .Site.Taxonomies.tags }} +
  • {{ $name }}
  • + {{ end }} +
+ +### Complete Example +This example will list all taxonomies, each of their keys and all the content assigned to each key. + +
+
    + {{ range $taxonomyname, $taxonomy := .Site.Taxonomies }} +
  • {{ $taxonomyname }} +
      + {{ range $key, $value := $taxonomy }} +
    • {{ $key }}
    • + + {{ end }} +
    +
  • + {{ end }} +
+
diff --git a/content/templates/template-debugging.md b/content/templates/template-debugging.md index ba12c1edb..67f7a3d08 100644 --- a/content/templates/template-debugging.md +++ b/content/templates/template-debugging.md @@ -12,5 +12,50 @@ draft: false slug: aliases: [] toc: false -notesforauthors: ---- \ No newline at end of file +needsreview: true +--- + +# 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 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`: + + {{ 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 }} +``` + +### Why do I have no variables defined? + +Check that you are passing variables in the `partial` function. For example + +``` +{{ partial "header" }} +``` + +will render the header partial, but the header partial will not have access to any variables. You need to pass variables explicitly. For example: + +``` +{{ partial "header" . }} +``` diff --git a/content/themes/creating-a-theme.md b/content/themes/creating-a-theme.md index 5bb99154b..f96dd5cfb 100644 --- a/content/themes/creating-a-theme.md +++ b/content/themes/creating-a-theme.md @@ -11,10 +11,76 @@ weight: 30 draft: false aliases: [/themes/creation/] toc: false +needsreview: true --- - -{{% warning "Use Proper Cross References" %}} -When creating your theme, it is not always safe to assume that the end user of the theme is working from the root directory of the website. That said, whenever possible, use Hugo's powerful [URL management functions](/content-management/url-management/). +{{% warning "Use Relative Links" %}} +When creating your theme, it is not always safe to assume that the end user of the theme is working from the root directory of the website. {{% /warning %}} +Hugo has the ability to create a new theme in your themes directory for you +using the `hugo new` command. + +`hugo new theme [name]` + +This command will initialize all of the files and directories a basic theme +would need. Hugo themes are written in the Go template language. If you are new +to Go, the [Go template primer](/layout/go-templates/) will help you get started. + +## Theme Components + +A theme consists of templates and static assets such as javascript and css +files. Themes can also optionally provide [archetypes](/content/archetypes/) +which are archetypal content types used by the `hugo new` command. + +### Layouts + +Hugo is built around the concept that things should be as simple as possible. +Fundamentally website content is displayed in two different ways, a single +piece of content and a list of content items. With Hugo a theme layout starts +with the defaults. As additional layouts are defined they are used for the +content type or section they apply to. This keeps layouts simple, but permits +a large amount of flexibility. + +### Single Content + +The default single file layout is located at `layouts/_default/single.html`. + +### List of Contents + +The default list file layout is located at `layouts/_default/list.html`. + +### Partial Templates + +Theme creators should liberally use [partial templates](/templates/partials/) +throughout their theme files. Not only is a good DRY practice to include shared +code, but partials are a special template type that enables the themes end user +to be able to overwrite just a small piece of a file or inject code into the +theme from their local /layouts. These partial templates are perfect for easy +injection into the theme with minimal maintenance to ensure future +compatibility. + +### Static + +Everything in the static directory will be copied directly into the final site +when rendered. No structure is provided here to enable complete freedom. It is +common to organize the static content into: + + /css + /js + /img + +The actual structure is entirely up to you, the theme creator, on how you would like to organize your files. + + +### Archetypes + +If your theme makes use of specific keys in the front matter, it is a good idea +to provide an archetype for each content type you have. Archetypes follow the +[guidelines provided](/content/archetypes/). + + +### Generator meta tag + +With a growing community around Hugo we recommend theme creators to include the [Generator meta tag](/templates/variables/) with `.Hugo.Generator` in the `` of your HTML code. The output might looks like `` and helps us to analyse the usage and popularity of Hugo. + diff --git a/content/themes/customizing-a-theme.md b/content/themes/customizing-a-theme.md index c35a6495c..33a7b591b 100644 --- a/content/themes/customizing-a-theme.md +++ b/content/themes/customizing-a-theme.md @@ -11,5 +11,50 @@ weight: 20 draft: false aliases: [/themes/customizing/,/themes/customize/] toc: false +needsreview: true --- +_The following are key concepts for Hugo site customization. Hugo permits you to **supplement or override** any theme template or static file, with files in your working directory._ + +_When you use a theme cloned from its git repository, you do not edit the theme's files directly. Rather, you override them as per the following:_ + +## Replace Static Files + +For including a different file than what the theme ships with. For example, if you would like to use a more recent version of jQuery than what the theme happens to include, simply place an identically-named file in the same relative location but in your working directory. + +For example, if the theme has jQuery 1.6 in: + + /themes/themename/static/js/jquery.min.js + +... you would simply place your file in the same relative path, but in the root of your working folder: + + /static/js/jquery.min.js + +## Replace a single template file + +Anytime Hugo looks for a matching template, it will first check the working directory before looking in the theme directory. If you would like to modify a template, simply create that template in your local `layouts` directory. + +In the [template documentation](/templates/overview/) _each different template type explains the rules it uses to determine which template to use_. Read and understand these rules carefully. + +This is especially helpful when the theme creator used [partial templates](/templates/partials/). These partial templates are perfect for easy injection into the theme with minimal maintenance to ensure future compatibility. + +For example: + + /themes/themename/layouts/_default/single.html + +... would be overridden by: + + /layouts/_default/single.html + +**Warning**: This only works for templates that Hugo "knows about" (that follow its convention for folder structure and naming). If the theme imports template files in a creatively-named directory, Hugo won’t know to look for the local `/layouts` first. + +## Replace an archetype + +If the archetype that ships with the theme for a given content type (or all content types) doesn’t fit with how you are using the theme, feel free to copy it to your `/archetypes` directory and make modifications as you see fit. + +## Beware of the default + +**Default** is a very powerful force in Hugo, especially as it pertains to overwriting theme files. If a default is located in the local archetype directory or `/layouts/_default/` directory, it will be used instead of any of the similar files in the theme. + +It is usually better to override specific files rather than using the default in your working directory. + diff --git a/content/themes/installing-and-using-themes.md b/content/themes/installing-and-using-themes.md index 5f58dc11e..3e5422ef8 100644 --- a/content/themes/installing-and-using-themes.md +++ b/content/themes/installing-and-using-themes.md @@ -11,6 +11,7 @@ weight: 10 draft: false aliases: [/themes/usage/,/themes/installing/] toc: true +needsreview: true --- {{% note "No Default Theme" %}} diff --git a/content/variables-and-params/_index.md b/content/variables-and-params/_index.md index 0c5603c35..4cba0ce23 100644 --- a/content/variables-and-params/_index.md +++ b/content/variables-and-params/_index.md @@ -1,5 +1,5 @@ --- -title: Variables and Params +title: Overview linktitle: Overview description: Page-, file-, taxonomy-, and site-level variables and parameters available in templates. date: 2017-02-01 @@ -14,3 +14,7 @@ toc: false hidesectioncontents: false needsreview: true --- + +[Go templates][], the backbone of Hugo templating, are context based, and Hugo makes a large number of values available to you as you're creating views for your website. The following variables and params provide convenient means to displaying your content with Hugo's powerful templating engine. + +[Go templates]: /templates/go-template-primer/ "Understand context in Go templates by learning the language's fundamental templating functions." \ No newline at end of file diff --git a/content/variables-and-params/file-variables.md b/content/variables-and-params/file-variables.md index 4eb1427ac..9a74e933e 100644 --- a/content/variables-and-params/file-variables.md +++ b/content/variables-and-params/file-variables.md @@ -15,10 +15,33 @@ needsreview: true notesforauthors: --- -**.File.Path** The original relative path of the page, e.g. `content/posts/foo.en.md`
-**.File.LogicalName** The name of the content file that represents a page, e.g. `foo.en.md`
-**.File.TranslationBaseName** The filename without extension or optional language identifier, e.g. `foo`
-**.File.BaseFileName** The filename without extension, e.g. `foo.en`
-**.File.Ext** or **.File.Extension** The file extension of the content file, e.g. `md`
-**.File.Lang** The language associated with the given file if [Multilingual](/content-management/multilingual-mode/ is enabled, e.g. `en`
-**.File.Dir** Given the path `content/posts/dir1/dir2/`, the relative directory path of the content file will be returned, e.g. `posts/dir1/dir2/`
\ No newline at end of file +Hugo provides the ability to traverse your website's files on your server, including the local `Hugo server`. You can access file-system-related data for a piece of content via the `.File` variable. + +{{% note "Local File Templates" %}} +For information on creating shortcodes and templates that tap into Hugo's file-related feature set, see [Local File Templates](/templates/local-file-templates/). +{{% /note %}} + +The `.File` object contains the following fields: + +`.File.Path` +: The original relative path of the page (e.g., `content/posts/foo.en.md`) + +`.File.LogicalName` +: The name of the content file that represents a page (e.g., `foo.en.md`) + +`.File.TranslationBaseName` +: The filename without extension or optional language identifier (e.g., `foo`) + +`.File.BaseFileName` +: The filename without extension (e.g., `foo.en`) + +`.File.Ext` +: The file extension of the content file (e.g., `md`). This can also be called using `.File.Extension`. + +`.File.Lang` +: The language associated with the given file if Hugo's [Multilingual][] features are enabled (e.g., `en`) + +`.File.Dir` +: Given the path `content/posts/dir1/dir2/`, the relative directory path of the content file will be returned (e.g., `posts/dir1/dir2/`) + +[Multilingual]: /content-management/multilingual-mode/ \ No newline at end of file diff --git a/content/variables-and-params/page-variables.md b/content/variables-and-params/page-variables.md index 7601587df..ab22bc190 100644 --- a/content/variables-and-params/page-variables.md +++ b/content/variables-and-params/page-variables.md @@ -1,7 +1,7 @@ --- title: Page Variables linktitle: -description: +description: Page-level variables are defined in a content file's front matter, derived from the content's file location, or extracted from the content body itself. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -10,9 +10,7 @@ tags: [pages] draft: false weight: 20 aliases: [] -toc: false -needsreview: true -notesforauthors: +toc: true --- The following is a list of page-level variables that can be defined for a piece of content. Many of these will be defined in the front matter, derived from file location, or extracted from the content itself. @@ -21,55 +19,154 @@ The following is a list of page-level variables that can be defined for a piece See [`.Scratch`](/functions/scratch/) for page-scoped writable variables. {{% /note %}} -* `.Content` The content itself, defined below the front matter. -* `.Data` The data specific to this type of page. -* `.Date` The date the page is associated with. -* `.Description` The description for the page. -* `.Draft` A boolean, `true` if the content is marked as a draft in the front matter. -* `.ExpiryDate` The date where the content is scheduled to expire on. -* `.FuzzyWordCount` The approximate number of words in the content. -* `.Hugo` See [Hugo Variables][hugovariables] -* `.IsHome` True if this is the home page. -* `.IsNode` Always false for regular content pages. -* `.IsPage` Always true for regular content pages. -* `.IsTranslated` Whether there are any translations to display. -* `.Keywords` The meta keywords for this content. -* `.Kind` What *kind* of page is this: is one of *page, home, section, taxonomy or taxonomyTerm.* There are also *RSS, sitemap, robotsTXT and 404*, but these will only available during rendering of that kind of page, and not available in any of the `Pages` collections. -* `.Lang` Language taken from the language extension notation. -* `.Language` A language object that points to this the language's definition in the site config. -* `.Lastmod` The date the content was last modified. -* `.LinkTitle` Access when creating links to this content. Will use `linktitle` if set in front matter, else `title`. -* `.Next` Pointer to the following content (based on pub date). -* `.NextInSection` Pointer to the following content within the same section (based on pub date) -* `.Pages` a collection of associated pages. This will be nil for regular content pages. This is an alias for `.Data.Pages`. -* `.Permalink` The Permanent link for this page. -* `.Prev` Pointer to the previous content (based on pub date). -* `.PrevInSection` Pointer to the previous content within the same section (based on `.PublishDate`). For example, `{{if .PrevInSection}}{{.PrevInSection.Permalink}}{{end}}`. -* `.PublishDate` The date the content is published on. -* `.RSSLink` Link to the taxonomies' RSS link. -* `.RawContent` Raw markdown content without the front matter. Useful with [remarkjs.com](http://remarkjs.com) -* `.ReadingTime` The estimated time it takes to read the content in minutes. -* `.Ref` Returns the permalink for a given reference;e.g., `.Ref "sample.md"`. See [Cross References][crossreferences]. Does not handle in-page fragments correctly. -* `.RelPermalink` The Relative permanent link for this page. -* `.RelRef` Returns the relative permalink for a given reference. Example: `RelRef "sample.md"`. See [Cross References][crossreferences]. This does not handle in-page fragments. -* `.Section` The [section](/content-management/content-sections/) this content belongs to. -* `.Site` See [Site Variables][sitevariables] below. -* `.Summary` A generated summary of the content for easily showing a snippet in a summary view. Note that the breakpoint can be set manually by inserting <!--more--> at the appropriate place in the content page. See [Summaries](/content/summaries/) for more details. -* `.TableOfContents` The rendered [table of contents](/content-management/table-of-contents/) for the page. -* `.Title` The title for this page. -* `.Translations` A list of translated versions of the current page. See [Multilingual](/content-management/multilingual-mode/) for more info. -* `.Truncated` A boolean, `true` if the `.Summary` is truncated. Useful for showing a "Read more..." link only if necessary. See [Summaries](/content/summaries/) for more details. -* `.Type` The [content type][] (e.g., `post`). -* `.URL` The relative URL for this page. Note that if `URL` is set directly in front matter, that URL is returned as-is. -* `.UniqueID` The MD5-checksum of the content file's path -* `.Weight` Assigned weight (in the front matter) to this content, used in sorting. -* `.WordCount` The number of words in the content. +## Page Variables List + +`.Content` +: the content itself, defined below the front matter. + +`.Data` +: the data specific to this type of page. + +`.Date` +: the date associated with the page. + +`.Description` +: the description for the page. + +`.Draft` +: a boolean, `true` if the content is marked as a draft in the front matter. + +`.ExpiryDate` +: the date on which the content is scheduled to expire. + +`.FuzzyWordCount` +: the approximate number of words in the content. + +`.Hugo` +: see [Hugo Variables](/variables-and-params/shortcode-git-and-hugo-variables/). + +`.IsHome` +: `true` in the context of the [home page](/templates/homepage-template/). + +`.IsNode` +: always `false` for regular content pages. + +`.IsPage` +: always `true` for regular content pages. + +`.IsTranslated` +: `true` if there are translations to display. + +`.Keywords` +: the meta keywords for the content. + +`.Kind` +: the page's *kind*. Possible return values are `page`, `home`, `section`, `taxonomy`, or `taxonomyTerm`. Note that there are also `RSS`, `sitemap`, `robotsTXT`, and `404` kinds, but these are only available during the rendering of each of these respective page's kind and therefore *not* available in any of the `Pages` collections. + +`.Lang` +: language taken from the language extension notation. + +`.Language` +: a language object that points to the language's definition in the site +`config`. + +`.Lastmod` +: the date the content was last modified (i.e. from `lastmod` in the content's front matter) + +`.LinkTitle` +: access when creating links to the content. If set, Hugo will use the `linktitle` from the front matter before `title`. + +`.Next` +: pointer to the following content (based on `publishdate` in front matter). + +`.NextInSection` +: pointer to the following content within the same section (based on `publishdate` in front matter). + +`.Pages` +: a collection of associated pages. This value will be `nil` for regular content pages. `.Pages` is an alias for `.Data.Pages`. + +`.Permalink` +: the Permanent link for this page; see [Permalinks](/content-management/url-management/) + +`.Prev` +: Pointer to the previous content (based on `publishdate` in front matter). + +`.PrevInSection` +: Pointer to the previous content within the same section (based on `publishdate` in front matter). For example, `{{if .PrevInSection}}{{.PrevInSection.Permalink}}{{end}}`. + +`.PublishDate` +: the date on which the content was or will be published. + +`.RSSLink` +: link to the taxonomies' RSS link. + +`.RawContent` +: raw markdown content without the front matter. Useful with [remarkjs.com]( +http://remarkjs.com) + +`.ReadingTime` +: the estimated time, in minutes, it takes to read the content. + +`.Ref` +: returns the permalink for a given reference (e.g., `.Ref "sample.md"`). `.Ref` does *not* handle in-page fragments correctly. See [Cross References](/content-management/cross-references/). + +`.RelPermalink` +: the relative permanent link for this page. + +`.RelRef` +: returns the relative permalink for a given reference (e.g., `RelRef +"sample.md"`). `.RelRef` does *not* handle in-page fragments correctly. See [Cross References](/content-management/cross-references/). + +`.Section` +: the [section](/content-management/content-sections/) this content belongs to. + +`.Site` +: see [Site Variables](/variables-and-params/site-variables/). + +`.Summary` +: a generated summary of the content for easily showing a snippet in a summary view. The breakpoint can be set manually by inserting <!--more--> at the appropriate place in the content page. See [Content Summaries](/content-management/content-summaries/) for more details. + +`.TableOfContents` +: the rendered [table of contents](/content-management/table-of-contents/) for the page. + +`.Title` +: the title for this page. + +`.Translations` +: a list of translated versions of the current page. See [Multilingual Mode](/content-management/multilingual-mode/) for more information. + +`.Truncated` +: a boolean, `true` if the `.Summary` is truncated. Useful for showing a "Read more..." link only when necessary. See [Summaries](/content-management/content-summaries/) for more information. + +`.Type` +: the [content type](/content-management/content-types/) of the content (e.g., `post`). + +`.URL` +: the relative URL for the page. Note that the `URL` set directly in front +matter overrides the default relative URL for the page. + +`.UniqueID` +: the MD5-checksum of the content file's path. + +`.Weight` +: assigned weight (in the front matter) to this content, used in sorting. + +`.WordCount` +: the number of words in the content. ## Page-level Params -Any other value defined in the front matter, including taxonomies, will be made available as part of the `.Params variable. +Any other value defined in the front matter in a content file, including taxonomies, will be made available as part of the `.Params` variable. -For example, the *tags* and *categories* taxonomies are accessed with: +```yaml +--- +title: My First Post +date: date: 2017-02-20T15:26:23-06:00 +categories: [one] +tags: [two,three,four] +``` + +With the above front matter, the `tags` and `categories` taxonomies are accessible via the following: * `.Params.tags` * `.Params.categories` @@ -78,46 +175,52 @@ For example, the *tags* and *categories* taxonomies are accessed with: Page-level `.Params` are *only* accessible in lowercase. {{% /note %}} -This is particularly useful for the introduction of user-defined fields in content files. For example, a Hugo website on book reviews could have the following front matter in `/content/review/book01.md`: +The `.Params` variable is particularly useful for the introduction of user-defined front matter fields in content files. For example, a Hugo website on book reviews could have the following front matter in `/content/review/book01.md`: ```yaml --- ... affiliatelink: "http://www.my-book-link.here" recommendedby: "My Mother" +... --- ``` -Which would then be accessible to a template at `/themes/yourtheme/layouts/review/single.html` through `.Params.affiliatelink` and `.Params.recommendedby`, respectively. Two common situations where these could be introduced are as a value of a certain attribute (like `href=""` below) or by itself to be displayed. Sample syntaxes include: +These fields would then be accessible to the `/themes/yourtheme/layouts/review/single.html` template through `.Params.affiliatelink` and `.Params.recommendedby`, respectively. +Two common situations where this type of front matter field could be introduced is as a value of a certain attribute like `href=""` or by itself to be displayed as text to the website's visitors. + +{{% input "/themes/yourtheme/layouts/review/single.html" %}} ```html

Buy this book

It was recommended by {{ .Params.recommendedby }}.

``` +{{% /input %}} -which would render +This template would render as follows, assuming you've set [`uglyURLs`](/content-management/url-management/) to `false` in your [site `config`](/getting-started/configuration/): +{{% output "yourbaseurl/review/book01/index.html" %}} ```html

Buy this book

It was recommended by my Mother.

``` +{{% /output %}} {{% note %}} See [Archetypes](/content-management/archetyps) for consistency of `Params` across pieces of content. {{% /note %}} -### Param method +### The `.Param` Method -In Hugo, you can declare params both for the site and the individual page. A -common use case is to have a general value for the site and a more specific -value for some of the pages (i.e., a header image): +In Hugo, you can declare params in individual pages and globally for your entire website. A common use case is to have a general value for the site param and a more specific value for some of the pages (i.e., a header image): ```golang {{ $.Param "header_image" }} ``` -The `.Param` method provides a way to resolve a single value whether it's -in a page parameter or a site parameter. +The `.Param` method provides a way to resolve a single value according to it's definition in a page parameter (i.e. in the content's front matter) or a site parameter (i.e., in your `config`). + +### Accessing Nested Fields in Front Matter When front matter contains nested fields like the following: @@ -129,8 +232,7 @@ author: display_name: John Feminella --- ``` -`.Param` can access them by concatenating the field names together with a -dot: +`.Param` can access these fields by concatenating the field names together with a dot: ``` {{ $.Param "author.display_name" }} @@ -150,9 +252,5 @@ The top-level key will be preferred. Therefore, the following method, when appli ```golang {{ $.Param "favorites.flavor" }} +=> vanilla ``` - -[content type]: /content-management/content-types/ -[crossreferences]: /content-management/cross-references/ -[hugovariables]: /variables-and-params/hugo-variables/ -[sitevariables]: /variables-and-params/site-variables/ \ No newline at end of file diff --git a/content/variables-and-params/shortcode-git-and-hugo-variables.md b/content/variables-and-params/shortcode-git-and-hugo-variables.md index d389e1814..044ff29e2 100644 --- a/content/variables-and-params/shortcode-git-and-hugo-variables.md +++ b/content/variables-and-params/shortcode-git-and-hugo-variables.md @@ -9,24 +9,83 @@ categories: [variables and params] tags: [shortcodes,git] draft: false weight: 50 -aliases: [] -toc: false +aliases: [/extras/gitinfo/,/variables-and-params/other/] +toc: true needsreview: true notesforauthors: --- -## Shortcodes +## Shortcode Variables + +[Shortcodes][shortcodes] have access to parameters delimited in the shortcode declaration via [`.Get`][getfunction], page- and site-level variables, and also the following shortcode-specific fields: + +`.Parent` +: Provides access to the parent shortcode context in nested shortcodes. This can be very useful for inheritance of common shortcode parameters from the root. + +`.IsNamedParams` +: Boolean that returns `true` when the shortcode in question uses [named rather than positional parameters][shortcodes] -`.Parent` (reference to nested shortcodes paragraph in /shortcodes/) -`.IsNamedParams` (reference to shortcodes) `.Inner` +: Represents the content between the opening and closing shortcode tags when a [closing shortcode][markdownshortcode] is used + +## Git Variables + +Hugo provides a way to integrate Git data into your website. + +{{% note "`.GitInfo` Performance Considerations" %}} +Hugo's Git integrations should be fairly performant but *can* increase your build time. This will depend on the size of your Git history. +{{% /note %}} + +### `.GitInfo` Prerequisites + +1. The Hugo site must be in a Git-enabled directory. +2. The Git executable must be installed and in your system `PATH`. +3. The `.GitInfo` feature must be enabled in your Hugo project by passing `--enableGitInfo` flag on the command line or by setting `enableGitInfo` to `true` in your [site's configuration file][configuration]. + +### The `.GitInfo` Object + +The `GitInfo` object contains the following fields: + +`.AbbreviatedHash` +: The abbreviated commit hash (e.g., `866cbcc`) + +`.AuthorName` +: The author's name, respecting `.mailmap` + +`.AuthorEmail` +: The author's email address, respecting `.mailmap` + +`.AuthorDate` +: The author date + +`.Hash` +: The commit hash (e.g., `866cbccdab588b9908887ffd3b4f2667e94090c3`) + +`.Subject` +: commit message subject (e.g., `tpl: Add custom index function`) ## Hugo Variables -Also available is `.Hugo` which has the following: +The `.Hugo` variable provides easy access to Hugo-related data and contains the following fields: -**.Hugo.Generator** Meta tag for the version of Hugo that generated the site. Highly recommended to be included by default in all theme headers so we can start to track the usage and popularity of Hugo. Unlike other variables it outputs a **complete** HTML tag, e.g. ``
-**.Hugo.Version** The current version of the Hugo binary you are using e.g. `0.13-DEV`
-**.Hugo.CommitHash** The git commit hash of the current Hugo binary e.g. `0e8bed9ccffba0df554728b46c5bbf6d78ae5247`
-**.Hugo.BuildDate** The compile date of the current Hugo binary formatted with RFC 3339 e.g. `2002-10-02T10:00:00-05:00`
+`.Hugo.Generator` +: Meta tag for the version of Hugo that generated the site. `.Hugo.Generator` outputs a *complete* HTML tag; e.g. `` + +`.Hugo.Version` +: The current version of the Hugo binary you are using e.g. `0.13-DEV`
+ +`.Hugo.CommitHash` +: The git commit hash of the current Hugo binary e.g. `0e8bed9ccffba0df554728b46c5bbf6d78ae5247`
+ +`.Hugo.BuildDate` +: The compile date of the current Hugo binary formatted with RFC 3339 e.g. `2002-10-02T10:00:00-05:00`
+ +{{% note "Use the Hugo Generator Tag" %}} +We highly recommend using `.Hugo.Generator` in your website. It is already included in all theme headers. The generator tag is significant in that it allows the Hugo team to track the usage and popularity of Hugo. +{{% /note %}} + +[configuration]: /getting-started/configuration/ +[getfunction]: /functions/get/ +[markdownshortcode]: /content-management/shortcodes/#shortcodes-with-markdown +[shortcodes]: /templates/shortcode-templates/ diff --git a/content/variables-and-params/site-variables.md b/content/variables-and-params/site-variables.md index 3e22af784..0dc3e4e7e 100644 --- a/content/variables-and-params/site-variables.md +++ b/content/variables-and-params/site-variables.md @@ -1,7 +1,7 @@ --- title: Site Variables linktitle: Site Variables -description: +description: Many, but not all, site-wide variables are defined in your site's configuration. However, Hugo provides a number of built-in variables for convenient access to global values in your templates. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -10,40 +10,99 @@ tags: [global,site] draft: false weight: 10 aliases: [] -toc: false +toc: true notesforauthors: --- -Also available is `.Site` which has the following: +The following is a list of site-level variables (aka "global"). Many of these variables are defined in your site's [configuration file](/getting-started/config/), whereas others are built into Hugo's core for convenient usage in your templates. -* `.Site.AllPages` Array of all pages regardless of their translation. -* `.Site.Author` A map of the authors as defined in the site configuration. -* `.Site.BaseURL` The base URL for the site as defined in the site configuration file. -* `.Site.BuildDrafts` A boolean (Default: false) to indicate whether to build drafts. Defined in the site configuration. -* `.Site.Copyright` A string representing the copyright of your web site as defined in the site configuration. -* `.Site.Data` Custom data, see [Data Files](/extras/datafiles/). -* `.Site.DisqusShortname` A string representing the shortname of the Disqus shortcode as defined in the site configuration. -* `.Site.Files` All of the source files of the site. -* `.Site.GoogleAnalytics` A string representing your tracking code for Google Analytics as defined in the site configuration. -* `.Site.IsMultiLingual` Whether there are more than one language in this site. See [Multilingual](/content-management/multilingual-mode/) for more information. -* `.Site.Language.Lang` The language code of the current locale, e.g. `en`. -* `.Site.Language.LanguageName` The full language name, e.g. `English`. -* `.Site.Language.Weight` The weight that defines the order in the `.Site.Languages` list. -* `.Site.Language` This indicates which language you are currently rendering the website for. This is an object with the attributes set in your language definition in your site config. -* `.Site.LanguageCode` A string representing the language as defined in the site configuration. This is mostly used to populate the RSS feeds with the right language code. -* `.Site.LanguagePrefix` This can be used to prefix theURLs with whats needed to point to the correct language. It will even work when only one language defined. See also the functions [absLangURL](/functions/abslangurl/) and [relLangURL](/functions/rellangurl). -* `.Site.Languages` An ordered list (ordered by defined weight) of languages. -* `.Site.LastChange` A string representing the date/time of the most recent change to your site, based on the [`date` variable in the front matter](/content-management/front-matter) of your content pages. -* `.Site.Menus` All of the menus in the site. -* `.Site.Pages` Array of all content ordered by Date, newest first. Replaces the now-deprecated `.Site.Recent` starting v0.13. This array contains only the pages in the current language. -* `.Site.Permalinks` A string to override the default [permalink](/content-management/url-management/) format defined in the [site configuration](/getting-started/configuration/). -* `.Site.RegularPages` A shortcut to the *regular page* collection. Equivalent to `where .Site.Pages "Kind" "page"`. -* `.Site.RSSLink` The URL for the site RSS. -* `.Site.Sections` Top level directories of the site. -* `.Site.Taxonomies` The [taxonomies](/taxonomies/usage/) for the entire site. Replaces the now-obsolete `.Site.Indexes` since v0.11. Also see section [Taxonomies elsewhere](#taxonomies-elsewhere). -* `.Site.Title` A string representing the title of the site. +## Site Variables List -`.Site.Params` is a container holding the values from the `params` section of your site configuration file. For example, a TOML config file might look like this: +`.Site.AllPages` +: array of all pages, regardless of their translation. + +`.Site.Author` +: a map of the authors as defined in the site configuration. + +`.Site.BaseURL` +: the base URL for the site as defined in the site configuration. + +`.Site.BuildDrafts` +: a boolean (default: `false`) to indicate whether to build drafts as defined in the site configuration. + +`.Site.Copyright` +: a string representing the copyright of your website as defined in the site configuration. + +`.Site.Data` +: custom data, see [Data Templates](/templates/date-templates/). + +`.Site.DisqusShortname` +: a string representing the shortname of the Disqus shortcode as defined in the site configuration. + +`.Site.Files` +: all source files for the Hugo website. + +`.Site.GoogleAnalytics` +: a string representing your tracking code for Google Analytics as defined in the site configuration. + +`.Site.IsMultiLingual` +: whether there are more than one language in this site. See [Multilingual](/content-management/multilingual-mode/) for more information. + +`.Site.Language.Lang` +: the language code of the current locale (e.g., `en`). + +`.Site.Language.LanguageName` +: the full language name (e.g. `English`). + +`.Site.Language.Weight` +: the weight that defines the order in the `.Site.Languages` list. + +`.Site.Language` +: indicates the language currently being used to render the website. This object's attributes are set in site configurations' language definition. + +`.Site.LanguageCode` +: a string representing the language as defined in the site configuration. This is mostly used to populate the RSS feeds with the right language code. + +`.Site.LanguagePrefix` +: this can be used to prefix URLs to point to the correct language. It will even work when only one defined language. See also the functions [absLangURL](/functions/abslangurl/) and [relLangURL](/functions/rellangurl). + +`.Site.Languages` +: an ordered list (ordered by defined weight) of languages. + +`.Site.LastChange` +: a string representing the date/time of the most recent change to your site. This string is based on the [`date` variable in the front matter](/content-management/front-matter) of your content pages. + +`.Site.Menus` +: all of the menus in the site. + +`.Site.Pages` +: array of all content ordered by Date with the newest first. `.Site.Pages` replaced the deprecated `.Site.Recent` as of Hugo v0.13. This array contains only the pages in the current language. + +`.Site.Permalinks` +: a string to override the default [permalink](/content-management/url-management/) format as defined in the site configuration. + +`.Site.RegularPages` +: a shortcut to the *regular* page collection. `.Site.RegularPages` is equivalents to `where .Site.Pages "Kind" "page"`. + +`.Site.RSSLink` +: the URL for the site RSS. + +`.Site.Sections` +: top-level directories of the site. + +`.Site.Taxonomies` +: the [taxonomies](/taxonomies/usage/) for the entire site. Replaces the now-obsolete `.Site.Indexes` since v0.11. Also see section [Taxonomies elsewhere](#taxonomies-elsewhere). + +`.Site.Title` +: a string representing the title of the site. + +## The `.Site.Params` Variable + +`.Site.Params` is a container holding the values from the `params` section of your site configuration. + +### `.Site.Params` Example + +The following `config.toml` defines a site-wide param for `description`: ```toml baseURL = "http://yoursite.example.com/" @@ -53,3 +112,10 @@ baseURL = "http://yoursite.example.com/" author = "Nikola Tesla" ``` +You can use `.Site.Params` in a [partial template](/templates/partial-templates/) to call the default site description: + +{{% input "layouts/partials/head.html" %}} +```html + +``` +{{% /input %}} \ No newline at end of file diff --git a/content/variables-and-params/taxonomy-variables.md b/content/variables-and-params/taxonomy-variables.md index 0b82e53a2..a81489d33 100644 --- a/content/variables-and-params/taxonomy-variables.md +++ b/content/variables-and-params/taxonomy-variables.md @@ -10,28 +10,48 @@ tags: [taxonomies,terms] draft: false weight: 30 aliases: [] -toc: false +toc: true needsreview: true notesforauthors: --- ### Taxonomy Terms Page Variables -[Taxonomy terms](/templates/taxonomy-templates/) pages are of the type `Page` and have the following additional variables. These are available in `layouts/_defaults/terms.html` for example. +[Taxonomy terms pages][taxonomytemplates] are of the type `Page` and have the following additional variables. For example, the following fields would be available in `layouts/_defaults/terms.html`, depending on how you organize your [taxonomy templates][taxonomytemplates]: -* `.Data.Singular` The singular name of the taxonomy
-* `.Data.Plural` The plural name of the taxonomy
-* `.Data.Pages` the list of pages in this taxonomy
-* `.Data.Terms` The taxonomy itself
-* `.Data.Terms.Alphabetical` The Terms alphabetized
-* `.Data.Terms.ByCount` The Terms ordered by popularity
+`.Data.Singular` +: The singular name of the taxonomy -The last two can also be reversed: `.Data.Terms.Alphabetical.Reverse`, `.Data.Terms.ByCount.Reverse`. +`.Data.Plural` +: The plural name of the taxonomy -### Taxonomies elsewhere +`.Data.Pages` +: The list of pages in the taxonomy -The `.Site.Taxonomies` variable holds all taxonomies defines site-wide. It is a map of the taxonomy name to a list of its values. For example: "tags" -> ["tag1", "tag2", "tag3"]. Each value, though, is not a string but rather a [Taxonomy variable](#the-taxonomy-variable). +`.Data.Terms` +: The taxonomy itself -#### The Taxonomy variable +`.Data.Terms.Alphabetical` +: The taxonomy terms alphabetized -The Taxonomy variable, available as `.Site.Taxonomies.tags` for example, contains the list of tags (values) and, for each of tag, their corresponding content pages. +`.Data.Terms.ByCount` +: The Terms ordered by popularity + +Note that `.Data.Terms.Alphabetical` and `.Data.Terms.ByCount` can also be reversed: + +* `.Data.Terms.Alphabetical.Reverse` +* `.Data.Terms.ByCount.Reverse` + +### Using `.Site.Taxonomies` Outside of Taxonomy Templates + +The `.Site.Taxonomies` variable holds all the taxonomies that defined site-wide. It is a map of the taxonomy name to a list of its values (e.g., "tags" -> ["tag1", "tag2", "tag3"]). Each value, though, is not a string but rather a **Taxonomy variable**. + +### The Taxonomy Variable + +The Taxonomy variable, available, for example, as `.Site.Taxonomies.tags`, contains the list of tags (values) and, for each of tag, their corresponding content pages. + +### Example Usage of `.Site.Taxonomies` + +**NEEDS EXAMPLE** + +[taxonomytemplates]: /templates/taxonomy-templates/ \ No newline at end of file diff --git a/questions-for-reviewers.md b/questions-for-reviewers.md new file mode 100644 index 000000000..f59ec20aa --- /dev/null +++ b/questions-for-reviewers.md @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/static/css/style.min.css b/static/css/style.min.css index 35def7b24..bc970e067 100644 --- a/static/css/style.min.css +++ b/static/css/style.min.css @@ -1 +1 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box;border-radius:0px !important;outline:none}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}html,body{margin:0px;padding:0px;outline:none;border:none;font-size:18px;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#222;line-height:1.6;font-weight:300;overflow-x:hidden}body{font-size:90%;overflow-x:hidden;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width: 760px){body{font-size:95%}}@media only screen and (min-width: 960px){body{font-size:100%}}strong{font-weight:600;color:#222}p{margin-top:0px;margin-bottom:1.5em;line-height:1.6}@font-face{font-family:'fontello';src:url("/fonts/fontello/fontello.eot");src:url("/fonts/fontello/fontello.woff2") format("woff2"),url("/fonts/fontello/fontello.woff") format("woff"),url("/fonts/fontello/fontello.ttf") format("truetype"),url("/fonts/fontello/fontello.svg?78165468#fontello") format("svg");font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-alert:before{content:'\e810'}.icon-angle-double-right:before{content:'\f101'}.icon-attach:before{content:'\e820'}.icon-attention:before{content:'\e80f'}.icon-bash:before{content:'\e804'}.icon-bell:before{content:'\e80d'}.icon-cancel:before{content:'\e81e'}.icon-caution:before{content:'\e80f'}.icon-chrome:before{content:'\e841'}.icon-clipboard:before{content:'\e817'}.icon-code:before{content:'\f121'}.icon-cog-alt:before{content:'\e814'}.icon-css3:before{content:'\f13c'}.icon-docs:before{content:'\f15c'}.icon-download:before{content:'\e815'}.icon-facebook-official:before{content:'\f230'}.icon-firefox:before{content:'\e840'}.icon-flag:before{content:'\e813'}.icon-forum:before{content:'\f03d';margin-right:.3em}.icon-github:before{content:'\f09b'}.icon-gitter:before{content:'\e819'}.icon-go:before{content:'\e801'}.icon-golang:before{content:'\e801'}.icon-heart:before{content:'\e81d'}.icon-help:before{content:'\e81b'}.icon-home:before{content:'\e812'}.icon-html.input:before{content:'\e81f'}.icon-html5:before{content:'\e800'}.icon-html:before{content:'\e800'}.icon-hugo:before{content:'\e81f'}.icon-ie:before{content:'\e843'}.icon-info:before{content:'\e811'}.icon-instagram:before{content:'\f32d'}.icon-javascript:before{content:'\e802'}.icon-js:before{content:'\e802'}.icon-json:before{content:'\e81c'}.icon-link:before{content:'\e816'}.icon-linkedin:before{content:'\f30c'}.icon-love:before{content:'\e81d'}.icon-mail:before{content:'\e821'}.icon-markdown:before{content:'\e80e'}.icon-md:before{content:'\e80e'}.icon-note:before{content:'\e80d'}.icon-opera:before{content:'\e842'}.icon-pdf:before{content:'\f1c1'}.icon-pencil:before{content:'\e80c'}.icon-picture:before{content:'\e808'}.icon-quote-left:before{content:'\e809'}.icon-quote-right:before{content:'\e80a'}.icon-sass:before{content:'\e803'}.icon-search:before{content:'\e80b'}.icon-sh:before{content:'\e804'}.icon-bash:before{content:'\e804'}.icon-share:before{content:'\f1e0'}.icon-tag:before{content:'\e806'}.icon-tags:before{content:'\e805'}.icon-terminal:before{content:'\e804'}.icon-thumbs-up:before{content:'\e81a'}.icon-twitter:before{content:'\e807'}.icon-warn:before{content:'\e810'}.icon-warning:before{content:'\e810'}.icon-website:before{content:'\e818'}.icon-yaml:before,.icon-yml:before,.icon-toml:before{content:'\f121'}@font-face{font-family:'FontAwesome';src:url("/fonts/fontawesome/fontawesome-webfont.eot?v=4.6.3");src:url("/fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("/fonts/fontawesome/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("/afonts/fontawesome/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("/fonts/fontawesome/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("/fonts/fontawesome/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-webfont.woff") format("woff"),url("/fonts/muli/muli-100-webfont.ttf") format("truetype");font-weight:100;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-100-italic-webfont.ttf") format("truetype");font-weight:100;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-webfont.woff") format("woff"),url("/fonts/muli/muli-300-webfont.ttf") format("truetype");font-weight:300;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-300-italic-webfont.ttf") format("truetype");font-weight:300;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-webfont.woff") format("woff"),url("/fonts/muli/muli-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-webfont.woff") format("woff"),url("/fonts/muli/muli-600-webfont.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-600-italic-webfont.ttf") format("truetype");font-weight:600;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-webfont.woff") format("woff"),url("/fonts/muli/muli-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-webfont.woff") format("woff"),url("/fonts/muli/muli-800-webfont.ttf") format("truetype");font-weight:800;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-800-italic-webfont.ttf") format("truetype");font-weight:800;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}h1,h2,h3,h4{font-weight:800;margin:0px;line-height:1.4;position:relative}h1>code,h2>code,h3>code,h4>code{font-weight:800}h1.page-title{font-size:2.2em;line-height:1.2;letter-spacing:-.021em;padding-bottom:0px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-bottom:8px;font-weight:800}@media only screen and (min-width: 760px){h1.page-title{padding-top:0px}}h1.page-title img{display:inline;height:1em;width:1em;margin-right:.15em}h1.page-title i[class^="icon-"]{margin-left:-.15em;margin-right:.15em}h2,h3{padding-bottom:24px;padding-right:1.5em}h2{font-size:1.5em}h2.contents-list-heading{text-transform:uppercase;color:#737373}h2.contents-list-heading em{font-style:normal}h3{font-size:1.3em}h4{font-size:1.1em;margin-top:1em;margin-bottom:1em;color:#737373}.functions{font-family:"courierprime",courier,monospace;font-weight:300}.submenu-item:first-child a.submenu-item-link.functions{font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}hr{border-top:3px double #222}button,a[role="button"]{background-color:#0083C0;color:#fff;border:none;outline:none;border-radius:.25em;padding:.25em .5em;box-shadow:none;text-align:center;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}button:hover,a[role="button"]:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}button[class^="icon-"]:before,a[role="button"][class^="icon-"]:before{display:inline-block;font-family:'FontAwesome';margin-right:.3em}button.icon-forum:before,a[role="button"].icon-forum:before{content:'\f086'}button.icon-mailing-list:before,a[role="button"].icon-mailing-list:before{content:'\f0e0'}nav ul,nav ol,aside ul,aside ol{margin-left:0px;padding-left:0px;list-style:none;text-indent:0px}nav ul li,nav ol li,aside ul li,aside ol li{position:relative;margin-left:0px;padding-left:0px;list-style:none}.body-copy ul,.body-copy ol{padding-left:.75em;margin-left:.5em;margin-top:0px;padding-top:0px;margin-bottom:1.5em}.body-copy ul li,.body-copy ol li{position:relative;margin-top:.25em}.body-copy ul li ul,.body-copy ul li ol,.body-copy ol li ul,.body-copy ol li ol{margin-bottom:0px}.body-copy ul{list-style:disc outside none}.body-copy ul li ul{list-style-type:circle}.body-copy ul li ul li ul{list-style-type:square}.body-copy ol li ol{list-style-type:lower-roman}.body-copy ol li ol li ol{list-style-type:lower-alpha}a{color:#C9177E;font-weight:300}a,a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}a:hover{text-decoration:none}.body-copy li a,.body-copy p a{z-index:1;color:#C9177E}.body-copy li a:hover,.body-copy p a:hover{border-bottom:1px solid #C9177E}a.tooltip{position:relative;overflow:visible}a.tooltip:hover::before{display:inline-block;position:absolute;line-height:1;bottom:-1.4em;font-size:12px;color:white;font-family:'fontello';min-width:80px;padding:.25em .33em;background-color:#222;content:attr(data-tooltip);white-space:nowrap;text-transform:none;font-weight:normal;border-radius:.25em}a.tooltip.left:hover::before{right:0px;left:auto}a.tooltip.right:hover::before{right:0px;left:auto}a.tooltip.edit-link:hover::after{content:'\f09b';font-family:'fontello';color:white;font-size:13px;display:inline-block;position:absolute;line-height:1;bottom:-1.1em;right:3px}a.tooltip.edit-link:hover::before{padding-right:1.5em}.icon-github:before{content:'\f09b'}a.heading-link{color:#a2a2a2;font-size:.8em;position:absolute;display:inline;top:.3em;right:0px}a.heading-link:before,a.heading-link:after{display:none}@media only screen and (min-width: 760px){a.heading-link{left:-1.5em}}a.heading-link:hover{color:#C9177E}.body-copy img{width:100%;max-width:100%;height:auto}.note,.warning{display:block;margin-bottom:20px;width:100%;border-left-width:2px;border-left-style:solid;border-left-color:#555;position:relative;padding-top:4px;padding-bottom:4px}.note:before,.warning:before{font-family:'fontello';display:block;position:absolute;top:40%;left:-.5em;z-index:10;background-color:#fff;border-radius:30%}.note h2,.warning h2{font-size:1.1em;color:#555;width:100%;display:block;margin:0px;padding:0px;margin-left:0px;padding:0px 12px;border:none;outline:none;border-bottom-width:2px;border-bottom-style:solid;display:inline-block;width:auto;z-index:20}.note h2 code,.note h2 pre,.warning h2 code,.warning h2 pre{color:#555}.note h2 em,.note h2 strong,.warning h2 em,.warning h2 strong{color:inherit;font-weight:inherit}.note .shortcode-content,.warning .shortcode-content{display:block;margin:0px;font-size:1em;padding:8px 0px 8px;margin-left:12px;color:#555}.note .shortcode-content p:last-child,.warning .shortcode-content p:last-child{margin-bottom:0px}.note{border-color:#0083C0;background-color:#f9fdfe}.note:before{content:'\e80d';color:#0083C0;background-color:#f9fdfe}.note h2{border-bottom-color:#0083C0;color:#0083C0}.warning{border-color:#C9177E;background-color:#fef5fa}.warning:before{content:'\e810';color:#C9177E;background-color:#fef5fa}.warning h2{border-bottom-color:#C9177E;color:#C9177E}.warning h2 pre,.warning h2 code{color:#C9177E}.hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;font-size:.9em}.hljs,.hljs-tag,.hljs-subst{color:#fff}.hljs-strong,.hljs-emphasis{color:silver}.hljs-bullet,.hljs-quote,.hljs-number,.hljs-regexp,.hljs-literal,.hljs-link{color:#0083C0}.hljs-code,.hljs-title,.hljs-section,.hljs-selector-class{color:#33BA91}.hljs-strong{font-weight:bold}.hljs-emphasis{font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-name,.hljs-attr{color:#ff4088}.hljs-symbol,.hljs-attribute{color:#0594CB}.hljs-params,.hljs-class .hljs-title{color:#fff}.hljs-string,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-id,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-variable{color:#FCD804}.hljs-comment,.hljs-deletion,.hljs-meta{color:silver}code,pre{font-family:"courierprime",courier,monospace;margin:0px;color:#222}.body-copy>pre{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);text-shadow:none;padding:0px;margin:.5em 0px 32px 0px;overflow:auto}.body-copy>pre>code{color:#fff}.body-copy p code{display:inline-block;padding-top:.15em}.body-copy p code,.body-copy td code,.body-copy li code{font-size:.9em;display:inline-block;color:#222;font-family:"courierprime",courier,monospace;padding-left:.25em;padding-right:.25em;text-transform:none;line-height:1.2;margin-bottom:.15em;margin-top:0px;padding-top:.1em;vertical-align:bottom;background-color:#ededed;border:none;outline:none;z-index:-1}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.body-copy p code,.body-copy td code,.body-copy li code{background-color:#fafafa}}.body-copy p>a code,.body-copy li>a code,.body-copy td>a code{color:#C9177E}.body-copy>pre{padding-bottom:20px;padding-top:20px;background-color:#000;font-family:"courierprime",courier,monospace;color:#fff}div.code-copy{position:relative;margin-top:1em;margin-bottom:32px;background-color:#000}div.code-copy.input{padding-bottom:24px}p+.code-copy{margin-top:0em}button.copy-button,a[role="button"].see-on-github{display:block;box-shadow:none;padding:0px;transition:all .2s ease-in-out;opacity:1;background-color:#fff;box-sizing:border-box;position:absolute;bottom:0px;z-index:4;min-width:90px;width:auto;padding-left:4px;padding-right:4px;height:1.5em;border-width:0px;border-radius:0px;font-weight:bold;color:#222;font-size:14px;display:block;width:80px;line-height:24px;height:24px;vertical-align:middle;text-align:center;text-transform:uppercase}button.copy-button:hover,a[role="button"].see-on-github:hover{background-color:#0083C0;box-shadow:none}button.copy-button:active,button.copy-button:focus,a[role="button"].see-on-github:active,a[role="button"].see-on-github:focus{outline:none;position:absolute}a[role="button"].see-on-github{left:0px}button.copy-button{display:none}@media only screen and (min-width: 760px){button.copy-button{display:block;right:0px}}button.copy-button i.icon-clipboard{display:inline}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}div.code-copy{position:relative;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);border-radius:0px}div.code-copy-header{position:relative;height:1.5em;line-height:1.5em;background-color:#5a5a5a;border-radius:0px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}div.code-copy-header.output{background-color:#0083C0}div.code-copy-header.examplesite{background-color:#C9177E}div.code-copy-header span.filename{text-align:center;color:#fff;font-weight:100;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbols"}div.code-copy-header span.filename i.icon-website{color:inherit;font-weight:bold;font-size:18px}div.code-copy-header [class^="icon-"]{color:#fff}div.code-copy-header i.icon-sh.input,div.code-copy-header i.icon-bash.input{padding-right:.5em}.action-buttons{position:relative;left:10px;width:12px;height:12px;background:Crimson;border-radius:50%;box-shadow:18px 0 0 Orange, 36px 0 0 LimeGreen}.tooltipped{position:relative;background-color:#C9177E;padding-right:2em}.tooltipped:after{position:absolute;z-index:1000000;display:none;padding:2px 4px;font-size:.8em;font-weight:600;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#fff;text-align:center;text-transform:uppercase;text-decoration:none;text-shadow:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background-color:#C9177E;border-color:#C9177E;border-radius:0px;-webkit-font-smoothing:subpixel-antialiased}.tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#C9177E;pointer-events:none;content:"";border:5px solid transparent}.tooltipped:hover:before,.tooltipped:hover:after,.tooltipped:active:before,.tooltipped:active:after,.tooltipped:focus:before,.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after,.tooltipped-multiline:active:after,.tooltipped-multiline:focus:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;text-align:center}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#C9177E;text-align:center}.tooltipped-se:after{right:auto;left:50%;margin-left:-15px;text-align:center}.tooltipped-sw:after{margin-right:-15px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#C9177E}.tooltipped-ne:after{right:auto;left:50%;margin-left:-15px}.tooltipped-nw:after{margin-right:-15px}.tooltipped-s:after,.tooltipped-n:after{-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#C9177E}.tooltipped-e:after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#C9177E}.tooltipped-multiline:after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s:after,.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after,.tooltipped-multiline.tooltipped-e:after{right:100%}svg.svg-icon{max-width:60px}.icon-freebsd:before{height:1em;width:1em;content:'';display:inline-block;margin-left:-.15em;margin-right:0em;background-image:url(/images/hugo-icons/freebsd.svg);background-size:contain;background-repeat:no-repeat}h2 .fa.fa-thumbs-up,h3 .fa.fa-thumbs-up,h4 .fa.fa-thumbs-up,li .fa.fa-thumbs-up{color:#00A88A}h2 .fa.fa-thumbs-down,h3 .fa.fa-thumbs-down,h4 .fa.fa-thumbs-down,li .fa.fa-thumbs-down{color:#C9177E}ul.tags{list-style:none;margin:0;padding:0;margin-top:1em;margin-bottom:.5em;margin-right:4px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;float:right}ul.tags li{height:20px;line-height:20px;margin-left:4px;margin-bottom:.75em;display:-ms-flexbox;display:flex}ul.tags li:not(.icon){transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}ul.tags li:not(.icon):hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}ul.tags li a{line-height:20px;-ms-flex-align:center;align-items:center;height:20px;font-size:14px;color:#222;padding-left:.3em;padding-right:.3em}.searchbox{display:inline-block;position:relative;width:300px;height:32px !important;white-space:nowrap;box-sizing:border-box;visibility:visible !important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease, background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 0px #ccc;background:#fff !important;padding:0;padding-right:26px;padding-left:32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:1em;appearance:none}.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 0px #b3b3b3}.searchbox__input:focus,.searchbox__input:active{outline:0;box-shadow:inset 0 0 0 0px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input::-moz-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit::before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:''}.searchbox__submit:hover,.searchbox__submit:active{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6D7E96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,0.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid ~ .searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0 !important;left:inherit !important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0 !important;right:inherit !important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{position:relative;top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:500px;min-width:400px;box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:'';width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu [class^="ds-dataset-"]{position:relative;border:solid 1px #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{position:relative;padding:0 8px;background:#fff;color:#02060C;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,0.1);padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,0.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363D}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;display:none;padding-left:0;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#A4A7AE;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060C;font-size:.9em;font-weight:bold}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676D}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222222;background-color:#EBEBEB;border-radius:3px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:solid 1px #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content::before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1::before{background-image:url('data:image/svg+xml;utf8,');content:'';width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-column,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none !important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458EE1;font-size:.9em;font-weight:normal}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title::before{content:"#";font-weight:bold;color:#458EE1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:bold;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:110px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:center;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0 !important;width:100%;height:100%;display:block}#toggle-search{display:block;position:fixed;top:.5em;right:.3em;float:right;margin-right:20px;font-size:1.2em;z-index:60}@media only screen and (min-width: 960px){#toggle-search{top:.3em}}form#site-search-form{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;width:100vw;position:fixed;top:50px;height:45px;-webkit-transform:translateY(-50px);transform:translateY(-50px);background-color:#fff;z-index:19;box-shadow:0 3px 6px rgba(201,23,126,0.15),0 3px 6px rgba(201,23,126,0.3)}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0);border-bottom:1px solid #C9177E}form#site-search-form #search-input{max-height:45px;padding-left:20px;font-size:24px}@media only screen and (min-width: 960px){form#site-search-form{display:block;position:fixed;top:8px;right:0px;z-index:50;width:300px;-webkit-transform:translateX(290px);transform:translateX(290px);transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;box-shadow:none;max-height:40px}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;border-bottom-width:0px;-webkit-transform:translateX(0px);transform:translateX(0px)}form#site-search-form.search-open #search-input{transition:opacity .3 ease-in-out;opacity:1;border-bottom:3px solid #C9177E}form#site-search-form.search-open #search-input::after{display:inline-block;content:'';width:1em;border-bottom:3px solid #C9177E}form#site-search-form #search-input{transition:opacity .3s ease-in-out;max-height:40px;padding-left:0px;font-size:20px;opacity:0}}#search-input{width:260px;outline:none;border:0px;border-radius:0px}#search-input,#search-input:hover,#search-input:active,#search-input:focus{outline:none}.algolia-docsearch-suggestion{border-bottom-color:#3A3DD1}.algolia-docsearch-suggestion--highlight{color:#3A33D1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4D47D5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#EBEBFB}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 #C9177E}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#C9177E;background:#f7e8f1;padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{background-color:#fff}.algolia-autocomplete .ds-dropdown-menu{font-size:.8em;min-width:340px;max-width:340px}@media only screen and (min-width: 760px){.algolia-autocomplete .ds-dropdown-menu{font-size:1em;min-width:400px;max-width:500px}}@media only screen and (min-width: 960px){.algolia-autocomplete .ds-dropdown-menu{min-width:500px;max-width:600px}}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column-text .algolia-docsearch-suggestion--highlight{color:#0083C0;font-weight:bold;background:#c9e8f6}@media (min-width: 768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;background-color:#F2F2FF;color:#4E4726}}kbd{background-color:inherit;border:1px solid #222;display:inline-block;font-size:.9em;padding:.1em .3em;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}aside#toc{position:fixed;max-width:280px;min-width:200px;overflow-y:scroll;max-height:calc(100vh - 50px - 40px);padding-left:.5em;padding-right:.5em;bottom:40px;right:20px;height:auto;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);z-index:30;background-color:#fff;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:bottom right;transform-origin:bottom right;opacity:0;border-radius:5px}aside#toc header.toc-header{display:inline-block;width:100%;margin-top:24px}aside#toc header.toc-header>a h3{margin-top:0px;margin-bottom:0px;margin-left:8px;padding-bottom:0px;border-bottom:1px solid #222;color:#222;font-size:17px}aside#toc.toc-open{-webkit-transform:scale(1);transform:scale(1);opacity:1}@media only screen and (min-width: 1240px){aside#toc{box-shadow:none;top:50px;left:calc(280px + 35em + 4em);bottom:auto;opacity:1;min-height:calc(100vh - 50px);max-height:calc(100vh - 50px);-webkit-transform:scale(1);transform:scale(1);border-left:1px solid silver;border-radius:0px}}nav#TableOfContents{position:relative;margin-bottom:20px;height:auto}nav#TableOfContents li.active>a>code{color:inherit;font-weight:700}nav#TableOfContents>ul:first-child{padding-left:0px;margin-left:0px;margin-top:.5em;margin-bottom:2em}nav#TableOfContents>ul:first-child>li{padding-left:0px;margin-left:0px;font-size:18px}nav#TableOfContents ul>li>ul li{line-height:1.2;font-size:16px;padding-left:8px;position:relative;margin-top:.5em;margin-bottom:.5em}nav#TableOfContents ul>li>ul li a{color:#222;position:relative}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li a:hover{color:#C9177E}nav#TableOfContents ul>li>ul li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li a:hover code{color:inherit}}nav#TableOfContents ul>li>ul li.active>a{position:relative;color:#C9177E;font-weight:400}nav#TableOfContents ul>li>ul li.active>a::before{content:'';display:inline-block;height:100%;border-left:2px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li>ul{display:block;margin-top:8px;margin-bottom:0px}nav#TableOfContents ul>li>ul li>ul>li{font-size:14px}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li>ul>li a:hover{color:#0083C0}nav#TableOfContents ul>li>ul li>ul>li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #0083C0;position:absolute;left:-16px}}nav#TableOfContents ul>li>ul li>ul>li.active>a{color:#0083C0;font-weight:400}nav#TableOfContents ul>li>ul li>ul>li.active>a::before{border-left:2px solid #C9177E;left:-16px}nav#TableOfContents ul>li>ul li>ul>li ul{display:none}a#toc-toggle{display:none}aside#toc+a#toc-toggle{display:block;position:fixed;bottom:40px;right:20px;background-color:#fff;color:#fff;background-color:#C9177E;height:40px;width:40px;z-index:99;line-height:50px;text-align:center;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23)}aside#toc+a#toc-toggle:after{content:'\2026';display:block;position:relative;width:40px;height:40px;font-size:2em;line-height:40px;bottom:10px}aside#toc+a#toc-toggle.toc-open{box-shadow:none;background-color:#fff;color:#222}aside#toc+a#toc-toggle.toc-open::after{content:"\00D7";font-size:2em;bottom:0px}aside#toc+a#toc-toggle.toc-open:hover{box-shadow:none}aside#toc+a#toc-toggle:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)}@media only screen and (min-width: 1240px){aside#toc+a#toc-toggle{display:none}}.contents-list{box-shadow:none;background-color:transparent;color:#222;border-bottom:1px solid silver;margin-bottom:1em;position:relative}.contents-list a{width:100%;color:#222}.contents-list a:before,.contents-list a:after,.contents-list a:hover{background-color:transparent;border:none;color:#222}.contents-list h3{margin-top:0px;padding-top:0px;padding-bottom:2px}.contents-list p{margin-top:8px;margin-bottom:16px}.taxonomy-term{font-size:1.3em;display:inline-block;width:auto;clear:both}.list-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.list-icon-wrapper{max-width:1em;max-height:1em;margin-right:.2em}.list-icon-wrapper img{width:100%;height:auto;margin-bottom:0px;margin-left:auto;margin-right:auto;display:block}.last-modified{color:#737373;display:block;min-width:200px;width:100%;text-align:center;font-size:.8em;position:relative;bottom:-1.75em}#content-footer{min-height:100px;height:auto;display:block;border-top:2px solid silver;width:100%;margin-bottom:2em}.prev-and-next-link{display:inline-block;margin-top:2em;min-width:45%;max-width:45%;min-height:70px;position:relative}@media only screen and (min-width: 760px){.prev-and-next-link{transition:background-color .3s ease-in-out}.prev-and-next-link:hover{transition:background-color .3s ease-in-out;background-color:#C9177E;color:#fff}}.prev-and-next-link:after{content:"";display:table;clear:both;min-height:100%}.prev-and-next-link .page-info{display:inline-block;position:relative}.prev-and-next-link .page-info h5{font-size:16px;padding:0px;margin:0px;line-height:1.2;margin-top:.5em}.prev-and-next-link .page-info span{width:100%;padding:0px;margin:0px;display:block;font-size:14px;line-height:1;margin-top:.5em}.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:24px;position:absolute;top:23px}@media only screen and (min-width: 760px){.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:30px;top:20px}}.prev-and-next-link i.fa.fa-chevron-left{left:0px}.prev-and-next-link i.fa.fa-chevron-right{right:0px}.prev-and-next-link.prev-page{text-align:left;float:left}.prev-and-next-link.prev-page .page-info{padding-left:1.75em}.prev-and-next-link.next-page{text-align:right;position:relative;right:0px;float:right}.prev-and-next-link.next-page .page-info{padding-right:1.75em}.prev-and-next-link:hover{text-decoration:none;border:0px solid transparent}.body-copy blockquote{position:relative;display:block;margin:0px;font-style:italic;background-color:#fafafa;padding:16px;margin-bottom:1em}.body-copy blockquote p{margin-bottom:0px;margin-top:16px}.body-copy blockquote p:first-child{margin-top:8px}.body-copy blockquote:before{font-family:'fontello';display:block;height:1em;width:1em;position:absolute;content:'\e809';color:silver;top:-3px;left:4px;font-size:1.2em;font-style:normal}.body-copy blockquote code,.body-copy blockquote pre{font-style:normal}.body-copy blockquote cite.blockquote-citation{position:relative;display:block;clear:both;text-align:right;line-height:2;font-size:14px;font-style:normal}.breadcrumbs{list-style:none;display:inline-block;margin-top:3px}.breadcrumbs li{float:left}.breadcrumbs li a{color:#222;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background:#D1F1FE;text-decoration:none;position:relative;height:30px;line-height:30px;padding:0 10px 0 5px;text-align:center;margin-right:23px;font-size:14px}.breadcrumbs li a img{height:20px;width:20px}.breadcrumbs li a span{margin-left:4px}.breadcrumbs li:nth-child(even){margin-left:-8px}.breadcrumbs li:nth-child(even) a{background-color:#D1F1FE}.breadcrumbs li:nth-child(even) a:before{border-color:#D1F1FE;border-left-color:transparent;height:30px;line-height:30px}.breadcrumbs li:nth-child(even) a:after{border-left-color:#D1F1FE}.breadcrumbs li:first-child a{padding-left:10px;border-radius:4px 0 0 4px}.breadcrumbs li:first-child a:before{border:none}.breadcrumbs li:last-child::not(first-child) a{padding-right:15px;border-radius:0 4px 4px 0}.breadcrumbs li:last-child::not(first-child) a:after{border:none}.breadcrumbs li a:before,.breadcrumbs li a:after{content:"";position:absolute;top:0;border:0 solid #D1F1FE;border-width:15px 6.666px;width:0;height:0}.breadcrumbs li a:before{left:-12px;border-left-color:transparent}.breadcrumbs li a:after{left:100%;border-color:transparent;border-left-color:#D1F1FE}.breadcrumbs li a:hover{background-color:#0083C0;color:#fff}.breadcrumbs li a:hover img{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.breadcrumbs li a:hover:before{border-color:#0083C0;border-left-color:transparent}.breadcrumbs li a:hover:after{border-left-color:#0083C0}table{text-align:left;overflow-x:scroll;width:100%;max-width:100%;width:auto;display:block;border-left:2px solid #737373;margin:0px;font-size:15px;margin-bottom:1em}table tr{border-top:2px solid #737373}table tr th,table tr td{padding-left:4px;padding-right:6px}table tr th:last-child,table tr td:last-child{border-right:2px solid #737373}table.terms-table td{width:50%}table thead{width:100%;background-color:#000;color:#fff}table thead tr{min-width:100%}table thead tr th{padding-left:4px;padding-right:6px}@media only screen and (min-width: 760px){table thead tr th:last-child{min-width:220px}}table tbody{min-width:100%}table tbody tr{min-width:100%;background-color:#fff}table tbody tr:nth-child(even){background-color:#D1F1FE}table tbody tr:last-child{border-bottom:2px solid #737373}table.utils-table tr{line-height:1.2;font-size:.9em}table.utils-table tr>td:first-child{min-width:220px}@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333}.featherlight:last-of-type{background:rgba(0,0,0,0.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;border-radius:0px;padding:0px;border-bottom:0px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;font-size:1.1em;line-height:2em;width:2em;cursor:pointer;text-align:center;font-family:Arial, sans-serif;background-color:rgba(255,255,255,0.8);color:#222}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:none}.featherlight *{box-sizing:border-box}}@media only screen and (max-width: 1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%}}a.image-link:hover{border-bottom:0px solid transparent !important;cursor:zoom-in}.site-header{width:100%;height:50px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0px;background-color:#fff;color:#000;position:fixed;top:0px;left:0px;z-index:20;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}@media only screen and (min-width: 960px){.site-header{-ms-flex-pack:justify;justify-content:space-between}}.site-header .hugo-meta{display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}@media only screen and (min-width: 960px){.site-header .hugo-meta{float:left;width:auto;-ms-flex-pack:start;justify-content:flex-start}}.site-header #home-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:.8em;margin-left:1.5em}.site-header #home-link img{height:35px;margin-right:.25em}.site-header #home-link .hugo-v{-ms-flex-item-align:end;align-self:flex-end;font-size:.9em}.site-header a.github-button{display:none}@media only screen and (min-width: 760px){.site-header a.github-button{display:inline}}.site-header iframe[src^="https://buttons.github.io"]{display:none;margin-left:1em}@media only screen and (min-width: 760px){.site-header iframe[src^="https://buttons.github.io"]{display:inline}}.site-navigation{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;position:fixed;left:0px;top:0px;width:280px;bottom:0px;overflow-y:scroll;background-color:#fafafa;-webkit-transform:translateX(-280px);transform:translateX(-280px);padding:0px;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.site-navigation.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(0px);transform:translateX(0px)}@media only screen and (min-width: 960px){.site-navigation{-webkit-transform:translateX(0px);transform:translateX(0px)}}.site-navigation ul li a{display:-ms-flexbox;display:flex}.site-navigation ul.top-menu{margin-top:80px;width:85%}@media only screen and (min-width: 960px){.site-navigation ul.top-menu{margin-top:60px}}.site-navigation ul.top-menu a{color:#222;font-weight:300;width:100%}.site-navigation ul.top-menu a:hover{color:#C9177E}.site-navigation ul.top-menu li{padding-left:0px;line-height:1.2;margin-top:.66em;margin-bottom:.66em}.site-navigation ul.top-menu li ul li{padding-left:.5em}.site-navigation ul.top-menu a.top-menu-item-link{font-size:16px;width:100%}.site-navigation ul.top-menu a.top-menu-item-link i.fa.fa-angle-double-right{margin-left:.25em}.site-navigation ul.top-menu a.top-menu-item-link.active-section{color:#C9177E;font-weight:700}.site-navigation ul.top-menu a.top-menu-item-link.active-section+ul.submenu{display:block;border-left:2px solid #C9177E}.site-navigation ul.top-menu ul.submenu{display:none;margin-left:.4em;padding-left:.5em}.site-navigation ul.top-menu ul.submenu li{line-height:1.1}.site-navigation ul.top-menu ul.submenu a.submenu-item-link{font-size:14px}.site-navigation ul.top-menu ul.submenu a.submenu-item-link:hover{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page{font-weight:700;color:#0083C0}.nav-buttons{display:block;margin-left:auto;margin-right:auto;max-width:200px}.nav-buttons a{margin-bottom:.5em;display:inline-block;width:200px;max-width:200px;position:relative;font-size:.9em}.navigation-toggle-wrapper{width:50px;height:50px;position:fixed;top:2px;left:0px;z-index:20}.navigation-toggle-wrapper h4.menu{display:inline-block;position:absolute;bottom:-1em;left:.8em;color:#0083C0;display:none}@media only screen and (min-width: 960px){.navigation-toggle-wrapper{display:none}}.navigation-toggle-wrapper.navigation-open .top{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.navigation-toggle-wrapper.navigation-open .middle{width:40px;height:40px;top:4%;border-radius:50%;background-color:#C9177E;border-color:#C9177E;opacity:0.3}.navigation-toggle-wrapper.navigation-open .bottom{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.bar{width:40px;height:2px;border:2px solid #0083C0;background-color:#0083C0;position:absolute;border-radius:10px}.bar.navigation-open{background-color:#C9177E;border:2px solid #C9177E}.top{left:15%;top:20%;transition:all 0.5s}.middle{left:15%;top:40%;transition:all 0.5s}.bottom{left:15%;top:60%;transition:all 0.5s}#all-content-wrapper{margin-top:50px;z-index:5;transition:all .3s ease-in-out;opacity:1;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper{margin-left:280px}}#all-content-wrapper.navigation-open{transition:all .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px);opacity:.4;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper.navigation-open{opacity:1;-webkit-transform:translateX(0px);transform:translateX(0px);overflow-x:hidden}}main.main{width:90%;display:block;margin-left:auto;margin-right:auto;max-width:35em;position:relative;min-height:calc(100vh - 100px)}@media only screen and (min-width: 960px){main.main{margin-left:2em}}header.content-header{display:block;clear:both;width:100%;position:relative;margin-top:24px;overflow-x:hidden;margin-bottom:1em}.content-section-image-wrapper{margin-bottom:1em}.content-section-image-wrapper a{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:#222}.content-section-image-wrapper a img{width:20px}.content-section-image-wrapper a span{font-size:.8em;margin-left:.25em}.content-header-links{display:none;position:absolute;right:0px;top:0px;text-transform:uppercase;width:auto;overflow:visible}@media only screen and (min-width: 760px){.content-header-links{display:block}}.content-header-links a{position:relative;border:1px solid silver;display:inline-block;color:#222;padding:4px 6px;vertical-align:middle;height:36px;width:36px;line-height:36px;text-align:center;border-radius:.25em;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}.content-header-links a:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.content-header-links a:hover{color:#222}.content-header-links a i.icon-pencil{font-size:20px;position:relative;bottom:4px;right:2px}.content-header-links a svg{height:24px;width:24px;display:inline}.content-header-links a.godoc-link{border-right-width:0px}.body-copy{margin-top:0px;margin-bottom:2.5em;display:block;overflow:visible}.body-copy div+h2{margin-top:1em}.body-copy em{font-weight:bolder}#site-footer{background-color:#000;min-height:100px;max-height:100px}#site-footer .footer-content{min-height:100px;max-height:100px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around;width:90%;color:#fff;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out}#site-footer .footer-content div{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;font-size:14px;max-height:100px;margin:0px}#site-footer .footer-content div img{max-width:120px}#site-footer .footer-content.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px)}@media only screen and (min-width: 960px){#site-footer .footer-content.navigation-open{-webkit-transform:translateX(0);transform:translateX(0)}}#site-footer .footer-content i.icon-heart:before{color:#C9177E}@media only screen and (min-width: 960px){#site-footer .footer-content{margin-left:2em}}@media only screen and (min-width: 960px){#site-footer{width:calc(100% - 280px);margin-left:280px}}@media only screen and (min-width: 1240px){#site-footer.withtoc{max-width:calc(35em + 4em)}}ul.footer-list{color:#fff;list-style:none;margin-left:0px;padding-left:0px;margin:0px}ul.footer-list li a{color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ul.footer-list li a:not(i){font-size:14px}ul.footer-list li a i{font-size:16px;margin-right:.25em}ul.footer-list li a i.icon-github:before{font-size:22px;margin-left:0px;margin-right:2px}ul.footer-list li a:hover{color:#C9177E}.all-content-wrapper.home{background-color:#d1f1fe;overflow-x:hidden}main#homepage{width:90%;margin-bottom:2.5em;overflow-x:hidden}@media only screen and (min-width: 760px){main#homepage{max-width:684px}}@media only screen and (min-width: 960px){main#homepage{margin-left:auto;margin-right:auto;max-width:774px}}.homepage-image{display:block;margin:1em auto;max-width:200px}.homepage-image img{max-width:200px;margin-left:auto;margin-right:auto}.homepage-cards{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-negative:0;flex-shrink:0;list-style:none;padding-left:0px;margin-left:0px}.homepage-cards .homepage-card{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);color:inherit;width:100%;background-color:#fff;margin-bottom:.5em;padding:16px 10px;-ms-flex-negative:0;flex-shrink:0}.homepage-cards .homepage-card:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.homepage-cards .homepage-card a{display:-ms-flexbox;display:flex;min-height:100%}@media only screen and (min-width: 760px){.homepage-cards .homepage-card{-ms-flex:1 0 304px;flex:1 0 304px;max-width:48%;margin-bottom:1em}}.homepage-cards .homepage-card section{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:60px;min-width:60px;margin-right:10px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:60px;margin-left:auto;margin-right:auto}@media only screen and (min-width: 760px){.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:70px;min-width:70px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:70px}}.homepage-cards .homepage-card h2{font-size:1em;margin:0px;line-height:1.1;margin-bottom:.5em;padding-bottom:0px;padding-top:0px;color:#222}.homepage-cards .homepage-card p{font-size:.8em;line-height:1.3;margin-bottom:0px;color:#555} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box;border-radius:0px !important;outline:none}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}html,body{margin:0px;padding:0px;outline:none;border:none;font-size:18px;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#222;line-height:1.6;font-weight:300;overflow-x:hidden}body{font-size:90%;overflow-x:hidden;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width: 760px){body{font-size:95%}}@media only screen and (min-width: 960px){body{font-size:100%}}strong{font-weight:600;color:#222}p{margin-top:0px;margin-bottom:1.5em;line-height:1.6}@font-face{font-family:'fontello';src:url("/fonts/fontello/fontello.eot");src:url("/fonts/fontello/fontello.woff2") format("woff2"),url("/fonts/fontello/fontello.woff") format("woff"),url("/fonts/fontello/fontello.ttf") format("truetype"),url("/fonts/fontello/fontello.svg?78165468#fontello") format("svg");font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-alert:before{content:'\e810'}.icon-angle-double-right:before{content:'\f101'}.icon-attach:before{content:'\e820'}.icon-attention:before{content:'\e80f'}.icon-bash:before{content:'\e804'}.icon-bell:before{content:'\e80d'}.icon-cancel:before{content:'\e81e'}.icon-caution:before{content:'\e80f'}.icon-chrome:before{content:'\e841'}.icon-clipboard:before{content:'\e817'}.icon-code:before{content:'\f121'}.icon-cog-alt:before{content:'\e814'}.icon-css3:before{content:'\f13c'}.icon-docs:before{content:'\f15c'}.icon-download:before{content:'\e815'}.icon-facebook-official:before{content:'\f230'}.icon-firefox:before{content:'\e840'}.icon-flag:before{content:'\e813'}.icon-forum:before{content:'\f03d';margin-right:.3em}.icon-github:before{content:'\f09b'}.icon-gitter:before{content:'\e819'}.icon-go:before{content:'\e801'}.icon-golang:before{content:'\e801'}.icon-heart:before{content:'\e81d'}.icon-help:before{content:'\e81b'}.icon-home:before{content:'\e812'}.icon-html.input:before{content:'\e81f'}.icon-html5:before{content:'\e800'}.icon-html:before{content:'\e800'}.icon-hugo:before{content:'\e81f'}.icon-ie:before{content:'\e843'}.icon-info:before{content:'\e811'}.icon-instagram:before{content:'\f32d'}.icon-javascript:before{content:'\e802'}.icon-js:before{content:'\e802'}.icon-json:before{content:'\e81c'}.icon-link:before{content:'\e816'}.icon-linkedin:before{content:'\f30c'}.icon-love:before{content:'\e81d'}.icon-mail:before{content:'\e821'}.icon-markdown:before{content:'\e80e'}.icon-md:before{content:'\e80e'}.icon-note:before{content:'\e80d'}.icon-opera:before{content:'\e842'}.icon-pdf:before{content:'\f1c1'}.icon-pencil:before{content:'\e80c'}.icon-picture:before{content:'\e808'}.icon-quote-left:before{content:'\e809'}.icon-quote-right:before{content:'\e80a'}.icon-sass:before{content:'\e803'}.icon-search:before{content:'\e80b'}.icon-sh:before{content:'\e804'}.icon-bash:before{content:'\e804'}.icon-share:before{content:'\f1e0'}.icon-tag:before{content:'\e806'}.icon-tags:before{content:'\e805'}.icon-terminal:before{content:'\e804'}.icon-thumbs-up:before{content:'\e81a'}.icon-twitter:before{content:'\e807'}.icon-warn:before{content:'\e810'}.icon-warning:before{content:'\e810'}.icon-website:before{content:'\e818'}.icon-yaml:before,.icon-yml:before,.icon-toml:before{content:'\f121'}@font-face{font-family:'FontAwesome';src:url("/fonts/fontawesome/fontawesome-webfont.eot?v=4.6.3");src:url("/fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("/fonts/fontawesome/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("/afonts/fontawesome/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("/fonts/fontawesome/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("/fonts/fontawesome/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-webfont.woff") format("woff"),url("/fonts/muli/muli-100-webfont.ttf") format("truetype");font-weight:100;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-100-italic-webfont.ttf") format("truetype");font-weight:100;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-webfont.woff") format("woff"),url("/fonts/muli/muli-300-webfont.ttf") format("truetype");font-weight:300;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-300-italic-webfont.ttf") format("truetype");font-weight:300;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-webfont.woff") format("woff"),url("/fonts/muli/muli-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-webfont.woff") format("woff"),url("/fonts/muli/muli-600-webfont.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-600-italic-webfont.ttf") format("truetype");font-weight:600;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-webfont.woff") format("woff"),url("/fonts/muli/muli-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-webfont.woff") format("woff"),url("/fonts/muli/muli-800-webfont.ttf") format("truetype");font-weight:800;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-800-italic-webfont.ttf") format("truetype");font-weight:800;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}h1,h2,h3,h4{font-weight:800;margin:0px;line-height:1.4;position:relative}h1>code,h2>code,h3>code,h4>code{font-weight:800}h1.page-title{font-size:2.2em;line-height:1.2;letter-spacing:-.021em;padding-bottom:0px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-bottom:8px;font-weight:800}@media only screen and (min-width: 760px){h1.page-title{padding-top:0px}}h1.page-title img{display:inline;height:1em;width:1em;margin-right:.15em}h1.page-title i[class^="icon-"]{margin-left:-.15em;margin-right:.15em}h2,h3{padding-bottom:24px;padding-right:1.5em}h2{font-size:1.5em}h2.contents-list-heading{text-transform:uppercase;color:#737373}h2.contents-list-heading em{font-style:normal}h3{font-size:1.3em}h4{font-size:1.1em;margin-top:1em;margin-bottom:1em;color:#737373}.functions{font-family:"courierprime",courier,monospace;font-weight:300}.submenu-item:first-child a.submenu-item-link.functions{font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}hr{border-top:3px double #222}button,a[role="button"]{background-color:#0083C0;color:#fff;border:none;outline:none;border-radius:.25em;padding:.25em .5em;box-shadow:none;text-align:center;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}button:hover,a[role="button"]:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}button[class^="icon-"]:before,a[role="button"][class^="icon-"]:before{display:inline-block;font-family:'FontAwesome';margin-right:.3em}button.icon-forum:before,a[role="button"].icon-forum:before{content:'\f086'}button.icon-mailing-list:before,a[role="button"].icon-mailing-list:before{content:'\f0e0'}nav ul,nav ol,aside ul,aside ol{margin-left:0px;padding-left:0px;list-style:none;text-indent:0px}nav ul li,nav ol li,aside ul li,aside ol li{position:relative;margin-left:0px;padding-left:0px;list-style:none}.body-copy ul,.body-copy ol{padding-left:.75em;margin-left:.5em;margin-top:0px;padding-top:0px;margin-bottom:1.5em}.body-copy ul li,.body-copy ol li{position:relative;margin-top:.25em}.body-copy ul li ul,.body-copy ul li ol,.body-copy ol li ul,.body-copy ol li ol{margin-bottom:0px}.body-copy ul{list-style:disc outside none}.body-copy ul li ul{list-style-type:circle}.body-copy ul li ul li ul{list-style-type:square}.body-copy ol li ol{list-style-type:lower-roman}.body-copy ol li ol li ol{list-style-type:lower-alpha}.body-copy dl{margin:0px;border-bottom:1px solid #ccc;border-top:1px solid #ccc;display:block;margin-bottom:1em;font-size:1em;clear:both;line-height:1.6;padding-top:.5em;padding-bottom:.5em}.body-copy dl dt{float:left;display:block;width:100%;clear:both;margin:0px;font-weight:bolder;margin-right:1em}.body-copy dl dd{margin:.5em 0em 0em 0em;text-indent:0px;height:auto;font-size:.9em;padding-top:.25em;padding-bottom:0em;padding-left:1.5em;padding-right:0em}a{color:#C9177E;font-weight:300}a,a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}a:hover{text-decoration:none}.body-copy li a,.body-copy p a{z-index:1;color:#C9177E}.body-copy li a:hover,.body-copy p a:hover{border-bottom:1px solid #C9177E}a.tooltip{position:relative;overflow:visible}a.tooltip:hover::before{display:inline-block;position:absolute;line-height:1;bottom:-1.4em;font-size:12px;color:white;font-family:'fontello';min-width:80px;padding:.25em .33em;background-color:#222;content:attr(data-tooltip);white-space:nowrap;text-transform:none;font-weight:normal;border-radius:.25em}a.tooltip.left:hover::before{right:0px;left:auto}a.tooltip.right:hover::before{right:0px;left:auto}a.tooltip.edit-link:hover::after{content:'\f09b';font-family:'fontello';color:white;font-size:13px;display:inline-block;position:absolute;line-height:1;bottom:-1.1em;right:3px}a.tooltip.edit-link:hover::before{padding-right:1.5em}.icon-github:before{content:'\f09b'}a.heading-link{color:#a2a2a2;font-size:.7em;position:absolute;display:inline;top:.4em;right:0px}a.heading-link:before,a.heading-link:after{display:none}@media only screen and (min-width: 760px){a.heading-link{left:-1.5em}}a.heading-link:hover{color:#C9177E}.body-copy img{width:100%;max-width:100%;height:auto}.note,.warning{display:block;margin-bottom:20px;width:100%;border-left-width:2px;border-left-style:solid;border-left-color:#555;position:relative;padding-top:4px;padding-bottom:4px}.note:before,.warning:before{font-family:'fontello';display:block;position:absolute;top:40%;left:-.5em;z-index:10;background-color:#fff;border-radius:30%}.note h2,.warning h2{font-size:1.1em;color:#555;width:100%;display:block;margin:0px;padding:0px;margin-left:0px;padding:0px 12px;border:none;outline:none;border-bottom-width:2px;border-bottom-style:solid;display:inline-block;width:auto;z-index:20}.note h2 code,.note h2 pre,.warning h2 code,.warning h2 pre{color:inherit}.note h2 em,.note h2 strong,.warning h2 em,.warning h2 strong{color:inherit;font-weight:inherit}.note .shortcode-content,.warning .shortcode-content{display:block;margin:0px;font-size:1em;padding:8px 0px 8px;margin-left:12px;color:#555}.note .shortcode-content p:last-child,.warning .shortcode-content p:last-child{margin-bottom:0px}.note{border-color:#0083C0;background-color:#f9fdfe}.note:before{content:'\e80d';color:#0083C0;background-color:#f9fdfe}.note h2{border-bottom-color:#0083C0;color:#0083C0}.warning{border-color:#C9177E;background-color:#fef5fa}.warning:before{content:'\e810';color:#C9177E;background-color:#fef5fa}.warning h2{border-bottom-color:#C9177E;color:#C9177E}.warning h2 pre,.warning h2 code{color:#C9177E}.hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;font-size:.9em}.hljs,.hljs-tag,.hljs-subst{color:#fff}.hljs-strong,.hljs-emphasis{color:silver}.hljs-bullet,.hljs-quote,.hljs-number,.hljs-regexp,.hljs-literal,.hljs-link{color:#0083C0}.hljs-code,.hljs-title,.hljs-section,.hljs-selector-class{color:#33BA91}.hljs-strong{font-weight:bold}.hljs-emphasis{font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-name,.hljs-attr{color:#ff4088}.hljs-symbol,.hljs-attribute{color:#0594CB}.hljs-params,.hljs-class .hljs-title{color:#fff}.hljs-string,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-id,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-variable{color:#FCD804}.hljs-comment,.hljs-deletion,.hljs-meta{color:silver}code,pre{font-family:"courierprime",courier,monospace;margin:0px;color:#222}.body-copy>pre{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);text-shadow:none;padding:0px;margin:.5em 0px 32px 0px;overflow:auto}.body-copy>pre>code{color:#fff}.body-copy p code{display:inline-block;padding-top:.15em}.body-copy p code,.body-copy td code,.body-copy li code{font-size:.9em;display:inline-block;color:#222;font-family:"courierprime",courier,monospace;padding-left:.25em;padding-right:.25em;text-transform:none;line-height:1.2;margin-bottom:.15em;margin-top:0px;padding-top:.1em;vertical-align:bottom;background-color:#ededed;border:none;outline:none;z-index:-1}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.body-copy p code,.body-copy td code,.body-copy li code{background-color:#fafafa}}.body-copy dd code,.body-copy dt code{background-color:#ededed;color:#222;font-family:"courierprime",courier,monospace}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.body-copy dd code,.body-copy dt code{background-color:#fafafa}}.body-copy p>a code,.body-copy li>a code,.body-copy td>a code{color:#C9177E}.body-copy>pre{padding-bottom:20px;padding-top:20px;background-color:#000;font-family:"courierprime",courier,monospace;color:#fff}div.code-copy{position:relative;margin-top:1em;margin-bottom:32px;background-color:#000}div.code-copy.input{padding-bottom:24px}p+.code-copy{margin-top:0em}button.copy-button,a[role="button"].see-on-github{display:block;box-shadow:none;padding:0px;transition:all .2s ease-in-out;opacity:1;background-color:#fff;box-sizing:border-box;position:absolute;bottom:0px;z-index:4;min-width:90px;width:auto;padding-left:4px;padding-right:4px;height:1.5em;border-width:0px;border-radius:0px;font-weight:bold;color:#222;font-size:14px;display:block;width:80px;line-height:24px;height:24px;vertical-align:middle;text-align:center;text-transform:uppercase}button.copy-button:hover,a[role="button"].see-on-github:hover{background-color:#0083C0;box-shadow:none}button.copy-button:active,button.copy-button:focus,a[role="button"].see-on-github:active,a[role="button"].see-on-github:focus{outline:none;position:absolute}a[role="button"].see-on-github{left:0px}button.copy-button{display:none}@media only screen and (min-width: 760px){button.copy-button{display:block;right:0px}}button.copy-button i.icon-clipboard{display:inline}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}div.code-copy{position:relative;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);border-radius:0px}div.code-copy-header{position:relative;height:1.5em;line-height:1.5em;background-color:#5a5a5a;border-radius:0px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}div.code-copy-header.output{background-color:#0083C0}div.code-copy-header.examplesite{background-color:#C9177E}div.code-copy-header span.filename{text-align:center;color:#fff;font-weight:100;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbols"}div.code-copy-header span.filename i.icon-website{color:inherit;font-weight:bold;font-size:18px}div.code-copy-header [class^="icon-"]{color:#fff}div.code-copy-header i.icon-sh.input,div.code-copy-header i.icon-bash.input{padding-right:.5em}.action-buttons{position:relative;left:10px;width:12px;height:12px;background:Crimson;border-radius:50%;box-shadow:18px 0 0 Orange, 36px 0 0 LimeGreen}.tooltipped{position:relative;background-color:#C9177E;padding-right:2em}.tooltipped:after{position:absolute;z-index:1000000;display:none;padding:2px 4px;font-size:.8em;font-weight:600;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#fff;text-align:center;text-transform:uppercase;text-decoration:none;text-shadow:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background-color:#C9177E;border-color:#C9177E;border-radius:0px;-webkit-font-smoothing:subpixel-antialiased}.tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#C9177E;pointer-events:none;content:"";border:5px solid transparent}.tooltipped:hover:before,.tooltipped:hover:after,.tooltipped:active:before,.tooltipped:active:after,.tooltipped:focus:before,.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after,.tooltipped-multiline:active:after,.tooltipped-multiline:focus:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;text-align:center}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#C9177E;text-align:center}.tooltipped-se:after{right:auto;left:50%;margin-left:-15px;text-align:center}.tooltipped-sw:after{margin-right:-15px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#C9177E}.tooltipped-ne:after{right:auto;left:50%;margin-left:-15px}.tooltipped-nw:after{margin-right:-15px}.tooltipped-s:after,.tooltipped-n:after{-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#C9177E}.tooltipped-e:after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#C9177E}.tooltipped-multiline:after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s:after,.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after,.tooltipped-multiline.tooltipped-e:after{right:100%}svg.svg-icon{max-width:60px}.icon-freebsd:before{height:1em;width:1em;content:'';display:inline-block;margin-left:-.15em;margin-right:0em;background-image:url(/images/hugo-icons/freebsd.svg);background-size:contain;background-repeat:no-repeat}h2 .fa.fa-thumbs-up,h3 .fa.fa-thumbs-up,h4 .fa.fa-thumbs-up,li .fa.fa-thumbs-up{color:#00A88A}h2 .fa.fa-thumbs-down,h3 .fa.fa-thumbs-down,h4 .fa.fa-thumbs-down,li .fa.fa-thumbs-down{color:#C9177E}ul.tags{list-style:none;margin:0;padding:0;margin-top:1em;margin-bottom:.5em;margin-right:4px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;float:right}ul.tags li{height:20px;line-height:20px;margin-left:4px;margin-bottom:.75em;display:-ms-flexbox;display:flex}ul.tags li:not(.icon){transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}ul.tags li:not(.icon):hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}ul.tags li a{line-height:20px;-ms-flex-align:center;align-items:center;height:20px;font-size:14px;color:#222;padding-left:.3em;padding-right:.3em}.searchbox{display:inline-block;position:relative;width:300px;height:32px !important;white-space:nowrap;box-sizing:border-box;visibility:visible !important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease, background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 0px #ccc;background:#fff !important;padding:0;padding-right:26px;padding-left:32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:1em;appearance:none}.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 0px #b3b3b3}.searchbox__input:focus,.searchbox__input:active{outline:0;box-shadow:inset 0 0 0 0px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input::-moz-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit::before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:''}.searchbox__submit:hover,.searchbox__submit:active{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6D7E96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,0.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid ~ .searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0 !important;left:inherit !important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0 !important;right:inherit !important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{position:relative;top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:500px;min-width:400px;box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:'';width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu [class^="ds-dataset-"]{position:relative;border:solid 1px #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{position:relative;padding:0 8px;background:#fff;color:#02060C;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,0.1);padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,0.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363D}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;display:none;padding-left:0;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#A4A7AE;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060C;font-size:.9em;font-weight:bold}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676D}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222222;background-color:#EBEBEB;border-radius:3px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:solid 1px #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content::before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1::before{background-image:url('data:image/svg+xml;utf8,');content:'';width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-column,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none !important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458EE1;font-size:.9em;font-weight:normal}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title::before{content:"#";font-weight:bold;color:#458EE1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:bold;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:110px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:center;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0 !important;width:100%;height:100%;display:block}#toggle-search{display:block;position:fixed;top:.5em;right:.3em;float:right;margin-right:20px;font-size:1.2em;z-index:60}@media only screen and (min-width: 960px){#toggle-search{top:.3em}}form#site-search-form{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;width:100vw;position:fixed;top:50px;height:45px;-webkit-transform:translateY(-50px);transform:translateY(-50px);background-color:#fff;z-index:19;box-shadow:0 3px 6px rgba(201,23,126,0.15),0 3px 6px rgba(201,23,126,0.3)}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0);border-bottom:1px solid #C9177E}form#site-search-form #search-input{max-height:45px;padding-left:20px;font-size:24px}@media only screen and (min-width: 960px){form#site-search-form{display:block;position:fixed;top:8px;right:0px;z-index:50;width:300px;-webkit-transform:translateX(290px);transform:translateX(290px);transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;box-shadow:none;max-height:40px}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;border-bottom-width:0px;-webkit-transform:translateX(0px);transform:translateX(0px)}form#site-search-form.search-open #search-input{transition:opacity .3 ease-in-out;opacity:1;border-bottom:3px solid #C9177E}form#site-search-form.search-open #search-input::after{display:inline-block;content:'';width:1em;border-bottom:3px solid #C9177E}form#site-search-form #search-input{transition:opacity .3s ease-in-out;max-height:40px;padding-left:0px;font-size:20px;opacity:0}}#search-input{width:260px;outline:none;border:0px;border-radius:0px}#search-input,#search-input:hover,#search-input:active,#search-input:focus{outline:none}.algolia-docsearch-suggestion{border-bottom-color:#3A3DD1}.algolia-docsearch-suggestion--highlight{color:#3A33D1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4D47D5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#EBEBFB}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 #C9177E}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#C9177E;background:#f7e8f1;padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{background-color:#fff}.algolia-autocomplete .ds-dropdown-menu{font-size:.8em;min-width:340px;max-width:340px}@media only screen and (min-width: 760px){.algolia-autocomplete .ds-dropdown-menu{font-size:1em;min-width:400px;max-width:500px}}@media only screen and (min-width: 960px){.algolia-autocomplete .ds-dropdown-menu{min-width:500px;max-width:600px}}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column-text .algolia-docsearch-suggestion--highlight{color:#0083C0;font-weight:bold;background:#c9e8f6}@media (min-width: 768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;background-color:#F2F2FF;color:#4E4726}}kbd{background-color:inherit;border:1px solid #222;display:inline-block;font-size:.9em;padding:.1em .3em;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}aside#toc{position:fixed;max-width:280px;min-width:200px;overflow-y:scroll;max-height:calc(100vh - 50px - 40px);padding-left:.5em;padding-right:.5em;bottom:40px;right:20px;height:auto;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);z-index:30;background-color:#fff;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:bottom right;transform-origin:bottom right;opacity:0;border-radius:5px}aside#toc header.toc-header{display:inline-block;width:100%;margin-top:24px}aside#toc header.toc-header>a h3{margin-top:0px;margin-bottom:0px;margin-left:8px;padding-bottom:0px;border-bottom:1px solid #222;color:#222;font-size:17px}aside#toc.toc-open{-webkit-transform:scale(1);transform:scale(1);opacity:1}@media only screen and (min-width: 1240px){aside#toc{box-shadow:none;top:50px;left:calc(280px + 35em + 4em);bottom:auto;opacity:1;min-height:calc(100vh - 50px);max-height:calc(100vh - 50px);-webkit-transform:scale(1);transform:scale(1);border-left:1px solid silver;border-radius:0px}}nav#TableOfContents{position:relative;margin-bottom:20px;height:auto}nav#TableOfContents li.active>a>code{color:inherit;font-weight:700}nav#TableOfContents>ul:first-child{padding-left:0px;margin-left:0px;margin-top:.5em;margin-bottom:2em}nav#TableOfContents>ul:first-child>li{padding-left:0px;margin-left:0px;font-size:18px}nav#TableOfContents ul>li>ul li{line-height:1.2;font-size:16px;padding-left:8px;position:relative;margin-top:.5em;margin-bottom:.5em}nav#TableOfContents ul>li>ul li a{color:#222;position:relative}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li a:hover{color:#C9177E}nav#TableOfContents ul>li>ul li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li a:hover code{color:inherit}}nav#TableOfContents ul>li>ul li.active>a{position:relative;color:#C9177E;font-weight:400}nav#TableOfContents ul>li>ul li.active>a::before{content:'';display:inline-block;height:100%;border-left:2px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li>ul{display:block;margin-top:8px;margin-bottom:0px}nav#TableOfContents ul>li>ul li>ul>li{font-size:14px}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li>ul>li a:hover{color:#0083C0}nav#TableOfContents ul>li>ul li>ul>li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #0083C0;position:absolute;left:-16px}}nav#TableOfContents ul>li>ul li>ul>li.active>a{color:#0083C0;font-weight:400}nav#TableOfContents ul>li>ul li>ul>li.active>a::before{border-left:2px solid #C9177E;left:-16px}nav#TableOfContents ul>li>ul li>ul>li ul{display:none}a#toc-toggle{display:none}aside#toc+a#toc-toggle{display:block;position:fixed;bottom:40px;right:20px;background-color:#fff;color:#fff;background-color:#C9177E;height:40px;width:40px;z-index:99;line-height:50px;text-align:center;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23)}aside#toc+a#toc-toggle:after{content:'\2026';display:block;position:relative;width:40px;height:40px;font-size:2em;line-height:40px;bottom:10px}aside#toc+a#toc-toggle.toc-open{box-shadow:none;background-color:#fff;color:#222}aside#toc+a#toc-toggle.toc-open::after{content:"\00D7";font-size:2em;bottom:0px}aside#toc+a#toc-toggle.toc-open:hover{box-shadow:none}aside#toc+a#toc-toggle:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)}@media only screen and (min-width: 1240px){aside#toc+a#toc-toggle{display:none}}.contents-list{box-shadow:none;background-color:transparent;color:#222;border-bottom:1px solid silver;margin-bottom:1em;position:relative;font-size:.95em}.contents-list a{width:100%;color:#222}.contents-list a:before,.contents-list a:after,.contents-list a:hover{background-color:transparent;border:none;color:#222}.contents-list h3{margin-top:0px;padding-top:0px;padding-bottom:2px}.contents-list p{margin-top:8px;margin-bottom:16px}.taxonomy-term{font-size:1.3em;display:inline-block;width:auto;clear:both}.list-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.list-icon-wrapper{max-width:1em;max-height:1em;margin-right:.2em}.list-icon-wrapper img{width:100%;height:auto;margin-bottom:0px;margin-left:auto;margin-right:auto;display:block}.last-modified{color:#737373;display:block;min-width:200px;width:100%;text-align:center;font-size:.8em;position:relative;bottom:-1.75em}#content-footer{min-height:100px;height:auto;display:block;border-top:2px solid silver;width:100%;margin-bottom:2em}.prev-and-next-link{display:inline-block;margin-top:2em;min-width:45%;max-width:45%;min-height:70px;position:relative}@media only screen and (min-width: 760px){.prev-and-next-link{transition:background-color .3s ease-in-out}.prev-and-next-link:hover{transition:background-color .3s ease-in-out;background-color:#C9177E;color:#fff}}.prev-and-next-link:after{content:"";display:table;clear:both;min-height:100%}.prev-and-next-link .page-info{display:inline-block;position:relative}.prev-and-next-link .page-info h5{font-size:16px;padding:0px;margin:0px;line-height:1.2;margin-top:.5em}.prev-and-next-link .page-info span{width:100%;padding:0px;margin:0px;display:block;font-size:14px;line-height:1;margin-top:.5em}.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:24px;position:absolute;top:23px}@media only screen and (min-width: 760px){.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:30px;top:20px}}.prev-and-next-link i.fa.fa-chevron-left{left:0px}.prev-and-next-link i.fa.fa-chevron-right{right:0px}.prev-and-next-link.prev-page{text-align:left;float:left}.prev-and-next-link.prev-page .page-info{padding-left:1.75em}.prev-and-next-link.next-page{text-align:right;position:relative;right:0px;float:right}.prev-and-next-link.next-page .page-info{padding-right:1.75em}.prev-and-next-link:hover{text-decoration:none;border:0px solid transparent}.body-copy blockquote{position:relative;display:block;margin:0px;font-style:italic;background-color:#fafafa;padding:16px;margin-bottom:1em}.body-copy blockquote p{margin-bottom:0px;margin-top:16px}.body-copy blockquote p:first-child{margin-top:8px}.body-copy blockquote:before{font-family:'fontello';display:block;height:1em;width:1em;position:absolute;content:'\e809';color:silver;top:-3px;left:4px;font-size:1.2em;font-style:normal}.body-copy blockquote code,.body-copy blockquote pre{font-style:normal}.body-copy blockquote cite.blockquote-citation{position:relative;display:block;clear:both;text-align:right;line-height:2;font-size:14px;font-style:normal}.breadcrumbs{list-style:none;display:inline-block;margin-top:3px}.breadcrumbs li{float:left}.breadcrumbs li a{color:#222;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background:#D1F1FE;text-decoration:none;position:relative;height:30px;line-height:30px;padding:0 10px 0 5px;text-align:center;margin-right:23px;font-size:14px}.breadcrumbs li a img{height:20px;width:20px}.breadcrumbs li a span{margin-left:4px}.breadcrumbs li:nth-child(even){margin-left:-8px}.breadcrumbs li:nth-child(even) a{background-color:#D1F1FE}.breadcrumbs li:nth-child(even) a:before{border-color:#D1F1FE;border-left-color:transparent;height:30px;line-height:30px}.breadcrumbs li:nth-child(even) a:after{border-left-color:#D1F1FE}.breadcrumbs li:first-child a{padding-left:10px;border-radius:4px 0 0 4px}.breadcrumbs li:first-child a:before{border:none}.breadcrumbs li:last-child::not(first-child) a{padding-right:15px;border-radius:0 4px 4px 0}.breadcrumbs li:last-child::not(first-child) a:after{border:none}.breadcrumbs li a:before,.breadcrumbs li a:after{content:"";position:absolute;top:0;border:0 solid #D1F1FE;border-width:15px 6.666px;width:0;height:0}.breadcrumbs li a:before{left:-12px;border-left-color:transparent}.breadcrumbs li a:after{left:100%;border-color:transparent;border-left-color:#D1F1FE}.breadcrumbs li a:hover{background-color:#0083C0;color:#fff}.breadcrumbs li a:hover img{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.breadcrumbs li a:hover:before{border-color:#0083C0;border-left-color:transparent}.breadcrumbs li a:hover:after{border-left-color:#0083C0}table{text-align:left;overflow-x:scroll;width:100%;max-width:100%;width:auto;display:block;border-left:2px solid #737373;margin:0px;font-size:15px;margin-bottom:1em}table tr{border-top:2px solid #737373}table tr th,table tr td{padding-left:4px;padding-right:6px}table tr th:last-child,table tr td:last-child{border-right:2px solid #737373}table.terms-table td{width:50%}table thead{width:100%;background-color:#000;color:#fff}table thead tr{min-width:100%}table thead tr th{padding-left:4px;padding-right:6px}@media only screen and (min-width: 760px){table thead tr th:last-child{min-width:220px}}table tbody{min-width:100%}table tbody tr{min-width:100%;background-color:#fff}table tbody tr:nth-child(even){background-color:#D1F1FE}table tbody tr:last-child{border-bottom:2px solid #737373}table.utils-table tr{line-height:1.2;font-size:.9em}table.utils-table tr>td:first-child{min-width:220px}@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333}.featherlight:last-of-type{background:rgba(0,0,0,0.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;border-radius:0px;padding:0px;border-bottom:0px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;font-size:1.1em;line-height:2em;width:2em;cursor:pointer;text-align:center;font-family:Arial, sans-serif;background-color:rgba(255,255,255,0.8);color:#222}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:none}.featherlight *{box-sizing:border-box}}@media only screen and (max-width: 1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%}}a.image-link:hover{border-bottom:0px solid transparent !important;cursor:zoom-in}.site-header{width:100%;height:50px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0px;background-color:#fff;color:#000;position:fixed;top:0px;left:0px;z-index:20;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}@media only screen and (min-width: 960px){.site-header{-ms-flex-pack:justify;justify-content:space-between}}.site-header .hugo-meta{display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}@media only screen and (min-width: 960px){.site-header .hugo-meta{float:left;width:auto;-ms-flex-pack:start;justify-content:flex-start}}.site-header #home-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:.8em;margin-left:1.5em}.site-header #home-link img{height:35px;margin-right:.25em}.site-header #home-link .hugo-v{-ms-flex-item-align:end;align-self:flex-end;font-size:.9em}.site-header a.github-button{display:none}@media only screen and (min-width: 760px){.site-header a.github-button{display:inline}}.site-header iframe[src^="https://buttons.github.io"]{display:none;margin-left:1em}@media only screen and (min-width: 760px){.site-header iframe[src^="https://buttons.github.io"]{display:inline}}.site-navigation{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;position:fixed;left:0px;top:0px;width:280px;bottom:0px;overflow-y:scroll;background-color:#fafafa;-webkit-transform:translateX(-280px);transform:translateX(-280px);padding:0px;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.site-navigation.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(0px);transform:translateX(0px)}@media only screen and (min-width: 960px){.site-navigation{-webkit-transform:translateX(0px);transform:translateX(0px)}}.site-navigation ul li a{display:-ms-flexbox;display:flex}.site-navigation ul.top-menu{margin-top:80px;width:85%}@media only screen and (min-width: 960px){.site-navigation ul.top-menu{margin-top:60px}}.site-navigation ul.top-menu a{color:#222;font-weight:300;width:100%}.site-navigation ul.top-menu a:hover{color:#C9177E}.site-navigation ul.top-menu li{padding-left:0px;line-height:1.2;margin-top:.66em;margin-bottom:.66em}.site-navigation ul.top-menu li ul li{padding-left:.5em}.site-navigation ul.top-menu a.top-menu-item-link{font-size:16px;width:100%}.site-navigation ul.top-menu a.top-menu-item-link i.fa.fa-angle-double-right{margin-left:.25em}.site-navigation ul.top-menu a.top-menu-item-link.active-section{color:#C9177E;font-weight:700}.site-navigation ul.top-menu a.top-menu-item-link.active-section+ul.submenu{display:block;border-left:2px solid #C9177E}.site-navigation ul.top-menu ul.submenu{display:none;margin-left:.4em;padding-left:.5em}.site-navigation ul.top-menu ul.submenu li{line-height:1.1}.site-navigation ul.top-menu ul.submenu a.submenu-item-link{font-size:14px}.site-navigation ul.top-menu ul.submenu a.submenu-item-link:hover{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page{font-weight:700;color:#0083C0}.nav-buttons{display:block;margin-left:auto;margin-right:auto;max-width:200px}.nav-buttons a{margin-bottom:.5em;display:inline-block;width:200px;max-width:200px;position:relative;font-size:.9em}.navigation-toggle-wrapper{width:50px;height:50px;position:fixed;top:2px;left:0px;z-index:20}.navigation-toggle-wrapper h4.menu{display:inline-block;position:absolute;bottom:-1em;left:.8em;color:#0083C0;display:none}@media only screen and (min-width: 960px){.navigation-toggle-wrapper{display:none}}.navigation-toggle-wrapper.navigation-open .top{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.navigation-toggle-wrapper.navigation-open .middle{width:40px;height:40px;top:4%;border-radius:50%;background-color:#C9177E;border-color:#C9177E;opacity:0.3}.navigation-toggle-wrapper.navigation-open .bottom{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.bar{width:40px;height:2px;border:2px solid #0083C0;background-color:#0083C0;position:absolute;border-radius:10px}.bar.navigation-open{background-color:#C9177E;border:2px solid #C9177E}.top{left:15%;top:20%;transition:all 0.5s}.middle{left:15%;top:40%;transition:all 0.5s}.bottom{left:15%;top:60%;transition:all 0.5s}#all-content-wrapper{margin-top:50px;z-index:5;transition:all .3s ease-in-out;opacity:1;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper{margin-left:280px}}#all-content-wrapper.navigation-open{transition:all .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px);opacity:.4;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper.navigation-open{opacity:1;-webkit-transform:translateX(0px);transform:translateX(0px);overflow-x:hidden}}main.main{width:90%;display:block;margin-left:auto;margin-right:auto;max-width:35em;position:relative;min-height:calc(100vh - 100px)}@media only screen and (min-width: 960px){main.main{margin-left:2em}}header.content-header{display:block;clear:both;width:100%;position:relative;margin-top:24px;overflow-x:hidden;margin-bottom:1em}.content-section-image-wrapper{margin-bottom:1em}.content-section-image-wrapper a{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:#222}.content-section-image-wrapper a img{width:20px}.content-section-image-wrapper a span{font-size:.8em;margin-left:.25em}.content-header-links{display:none;position:absolute;right:0px;top:0px;text-transform:uppercase;width:auto;overflow:visible}@media only screen and (min-width: 760px){.content-header-links{display:block}}.content-header-links a{position:relative;border:1px solid silver;display:inline-block;color:#222;padding:4px 6px;vertical-align:middle;height:36px;width:36px;line-height:36px;text-align:center;border-radius:.25em;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}.content-header-links a:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.content-header-links a:hover{color:#222}.content-header-links a i.icon-pencil{font-size:20px;position:relative;bottom:4px;right:2px}.content-header-links a svg{height:24px;width:24px;display:inline}.content-header-links a.godoc-link{border-right-width:0px}.body-copy{margin-top:0px;margin-bottom:2.5em;display:block;overflow:visible}.body-copy div+h2{margin-top:1em}.body-copy em{font-weight:bolder}#site-footer{background-color:#000;min-height:100px;max-height:100px}#site-footer .footer-content{min-height:100px;max-height:100px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around;width:90%;color:#fff;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out}#site-footer .footer-content div{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;font-size:14px;max-height:100px;margin:0px}#site-footer .footer-content div img{max-width:120px}#site-footer .footer-content.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px)}@media only screen and (min-width: 960px){#site-footer .footer-content.navigation-open{-webkit-transform:translateX(0);transform:translateX(0)}}#site-footer .footer-content i.icon-heart:before{color:#C9177E}@media only screen and (min-width: 960px){#site-footer .footer-content{margin-left:2em}}@media only screen and (min-width: 960px){#site-footer{width:calc(100% - 280px);margin-left:280px}}@media only screen and (min-width: 1240px){#site-footer.withtoc{max-width:calc(35em + 4em)}}ul.footer-list{color:#fff;list-style:none;margin-left:0px;padding-left:0px;margin:0px}ul.footer-list li a{color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ul.footer-list li a:not(i){font-size:14px}ul.footer-list li a i{font-size:16px;margin-right:.25em}ul.footer-list li a i.icon-github:before{font-size:22px;margin-left:0px;margin-right:2px}ul.footer-list li a:hover{color:#C9177E}.all-content-wrapper.home{background-color:#d1f1fe;overflow-x:hidden}main#homepage{width:90%;margin-bottom:2.5em;overflow-x:hidden}@media only screen and (min-width: 760px){main#homepage{max-width:684px}}@media only screen and (min-width: 960px){main#homepage{margin-left:auto;margin-right:auto;max-width:774px}}.homepage-image{display:block;margin:1em auto;max-width:200px}.homepage-image img{max-width:200px;margin-left:auto;margin-right:auto}.homepage-cards{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-negative:0;flex-shrink:0;list-style:none;padding-left:0px;margin-left:0px}.homepage-cards .homepage-card{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);color:inherit;width:100%;background-color:#fff;margin-bottom:.5em;padding:16px 10px;-ms-flex-negative:0;flex-shrink:0}.homepage-cards .homepage-card:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.homepage-cards .homepage-card a{display:-ms-flexbox;display:flex;min-height:100%}@media only screen and (min-width: 760px){.homepage-cards .homepage-card{-ms-flex:1 0 304px;flex:1 0 304px;max-width:48%;margin-bottom:1em}}.homepage-cards .homepage-card section{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:60px;min-width:60px;margin-right:10px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:60px;margin-left:auto;margin-right:auto}@media only screen and (min-width: 760px){.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:70px;min-width:70px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:70px}}.homepage-cards .homepage-card h2{font-size:1em;margin:0px;line-height:1.1;margin-bottom:.5em;padding-bottom:0px;padding-top:0px;color:#222}.homepage-cards .homepage-card p{font-size:.8em;line-height:1.3;margin-bottom:0px;color:#555}#beingreviewed{background-color:#C9177E;color:white;position:absolute;left:40px;top:20px;-webkit-transform:rotate(-10deg);transform:rotate(-10deg);font-weight:bold;width:200px;font-size:24px;padding:6px;z-index:9999;overflow:visible} diff --git a/themes/hugodocs/layouts/_default/single.html b/themes/hugodocs/layouts/_default/single.html index 269ce07de..6bd940a5d 100644 --- a/themes/hugodocs/layouts/_default/single.html +++ b/themes/hugodocs/layouts/_default/single.html @@ -7,6 +7,9 @@

{{with .LinkTitle}}{{.}}{{else}}{{ .Title | markdownify }}{{end}}

{{partial "content-header-links.html" . }} {{partial "tags.html" . }} + {{if .Params.needsreview }} +
UNDERGOING REVIEW
+ {{end}}
{{.Content}} diff --git a/themes/hugodocs/layouts/partials/contents-list.html b/themes/hugodocs/layouts/partials/contents-list.html index 4a46776ac..103dabf2c 100644 --- a/themes/hugodocs/layouts/partials/contents-list.html +++ b/themes/hugodocs/layouts/partials/contents-list.html @@ -1,7 +1,7 @@ {{$kind := .Kind}} {{if eq $kind "section"}} {{$section := replace (humanize .Section | title) "And" "and"}} -

Contents:

+

Contents:

{{end}} {{range .Data.Pages}} diff --git a/themes/hugodocs/layouts/section/functions.html b/themes/hugodocs/layouts/section/functions.html new file mode 100644 index 000000000..6b8ede20d --- /dev/null +++ b/themes/hugodocs/layouts/section/functions.html @@ -0,0 +1,9 @@ +{{define "main"}} +
+
+ {{partial "breadcrumb.html" . }} +

{{ .Title | markdownify }}

+ {{.Content}} +
+
+{{end}} \ No newline at end of file diff --git a/themes/hugodocs/pipeline/scss/_temp.scss b/themes/hugodocs/pipeline/scss/_temp.scss new file mode 100644 index 000000000..b3651d6ba --- /dev/null +++ b/themes/hugodocs/pipeline/scss/_temp.scss @@ -0,0 +1,14 @@ +#beingreviewed { + background-color: $hugo-pink; + color:white; + position:absolute; + left:40px; + top:20px; + transform:rotate(-10deg); + font-weight:bold; + width:200px; + font-size:24px; + padding:6px; + z-index:9999; + overflow:visible; +} \ No newline at end of file diff --git a/themes/hugodocs/pipeline/scss/components/_admonitions.scss b/themes/hugodocs/pipeline/scss/components/_admonitions.scss index 9c4c81fc9..a45ec1528 100644 --- a/themes/hugodocs/pipeline/scss/components/_admonitions.scss +++ b/themes/hugodocs/pipeline/scss/components/_admonitions.scss @@ -37,7 +37,7 @@ z-index: 20; code, pre { - color: lighten($base-font-color, 20%); + color: inherit; } em,strong { color:inherit; diff --git a/themes/hugodocs/pipeline/scss/components/_anchors.scss b/themes/hugodocs/pipeline/scss/components/_anchors.scss index 083a3bf85..40d4ec257 100644 --- a/themes/hugodocs/pipeline/scss/components/_anchors.scss +++ b/themes/hugodocs/pipeline/scss/components/_anchors.scss @@ -81,10 +81,10 @@ a.tooltip { a.heading-link { color: lighten($base-font-color, 50%); - font-size: .8em; + font-size: .7em; position: absolute; display: inline; - top: .3em; + top: .4em; right:0px; &:before, &:after { diff --git a/themes/hugodocs/pipeline/scss/components/_code.scss b/themes/hugodocs/pipeline/scss/components/_code.scss index 87e926e9c..b3327b58f 100644 --- a/themes/hugodocs/pipeline/scss/components/_code.scss +++ b/themes/hugodocs/pipeline/scss/components/_code.scss @@ -13,7 +13,7 @@ pre { margin: .5em 0px 32px 0px; overflow: auto; & > code { - color:$hugo-white; + color: $hugo-white; } } @@ -37,7 +37,6 @@ pre { font-family: $code-font-family; padding-left: .25em; padding-right: .25em; - // padding-bottom: .1em; text-transform: none; line-height: 1.2; margin-bottom: .15em; @@ -55,14 +54,28 @@ pre { } } } + //for definitions lists + dd, + dt { + code { + //darken code background color for non-retina displays + background-color: darken($inline-code-background-color, 5%); + color: $inline-code-text-color; + font-family: $code-font-family; + @include MQ(retina) { + //lighten code background color for retina displays + background-color: $inline-code-background-color; + } + } + } p > a code, li > a code, td > a code { color: $hugo-pink; } > pre { - padding-bottom:20px; - padding-top:20px; + padding-bottom: 20px; + padding-top: 20px; background-color: $code-block-background-color; font-family: $code-font-family; color: $code-block-base-font-color; @@ -164,9 +177,9 @@ div.code-copy-header { background-color: $code-editor-header-base-bg-color; border-radius: 0px; position: relative; - display:flex; - justify-content:space-between; - align-items:center; + display: flex; + justify-content: space-between; + align-items: center; &.output { background-color: $output-example-color; } @@ -181,22 +194,23 @@ div.code-copy-header { font-family: $systemfonts; i.icon-website { color: inherit; - font-weight:bold; - font-size:18px; + font-weight: bold; + font-size: 18px; } } [class^="icon-"] { color: $code-filename-color; } //corrects odd placement of terminal icon - i.icon-sh.input,i.icon-bash.input { - padding-right:.5em; + i.icon-sh.input, + i.icon-bash.input { + padding-right: .5em; } } .action-buttons { // position: absolute; - position:relative; + position: relative; left: 10px; width: 12px; height: 12px; diff --git a/themes/hugodocs/pipeline/scss/components/_contents-list.scss b/themes/hugodocs/pipeline/scss/components/_contents-list.scss index 101852152..11be7af92 100644 --- a/themes/hugodocs/pipeline/scss/components/_contents-list.scss +++ b/themes/hugodocs/pipeline/scss/components/_contents-list.scss @@ -5,6 +5,7 @@ border-bottom: 1px solid $hugo-gray-light; margin-bottom: 1em; position: relative; + font-size:.95em; a { width: 100%; color: $base-font-color; diff --git a/themes/hugodocs/pipeline/scss/components/_lists.scss b/themes/hugodocs/pipeline/scss/components/_lists.scss index 1d10cdc39..dea225c91 100644 --- a/themes/hugodocs/pipeline/scss/components/_lists.scss +++ b/themes/hugodocs/pipeline/scss/components/_lists.scss @@ -8,7 +8,7 @@ aside { list-style: none; text-indent: 0px; li { - position:relative; + position: relative; margin-left: 0px; padding-left: 0px; list-style: none; @@ -26,10 +26,11 @@ aside { padding-top: 0px; margin-bottom: 1.5em; li { - position:relative; - margin-top:.25em; - ul,ol { - margin-bottom:0px; + position: relative; + margin-top: .25em; + ul, + ol { + margin-bottom: 0px; } } } @@ -59,3 +60,42 @@ aside { } } } + +//definition lists +.body-copy { + dl { + margin: 0px; + border-bottom: 1px solid #ccc; + border-top: 1px solid #ccc; + display: block; + margin-bottom: 1em; + font-size: 1em; + clear: both; + line-height:1.6; + padding: { + top: .5em; + bottom: .5em; + } + dt { + float: left; + display: block; + width: 100%; + clear: both; + margin: 0px; + font-weight: bolder; + margin-right: 1em; + } + dd { + margin: .5em 0em 0em 0em; + text-indent: 0px; + height: auto; + font-size:.9em; + padding: { + top: .25em; + bottom: 0em; + left: 1.5em; + right: 0em; + } + } + } +} diff --git a/themes/hugodocs/pipeline/scss/style.scss b/themes/hugodocs/pipeline/scss/style.scss index 6a4027219..5adddd28b 100644 --- a/themes/hugodocs/pipeline/scss/style.scss +++ b/themes/hugodocs/pipeline/scss/style.scss @@ -41,4 +41,6 @@ @import 'layout/site-footer'; //styles for individual pages -@import 'pages/homepage'; \ No newline at end of file +@import 'pages/homepage'; + +@import 'temp'; \ No newline at end of file