diff --git a/archetypes/default.md b/archetypes/default.md index 0f832a4fc..f31eb8d4f 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -1,5 +1,5 @@ --- -linktitle: +linktitle: "" description: "" godocref: "" publishdate: "" @@ -11,5 +11,5 @@ draft: true slug: "" aliases: [] toc: false -z_notesforauthors: "Go to gohugo.io/docscontrib for info on req fields" +z_notesforauthors: "Go to gohugo.io/contribute/documentation for more info on using this archetype." --- \ No newline at end of file diff --git a/archetypes/functions.md b/archetypes/functions.md index e355fc597..bf3d870cb 100644 --- a/archetypes/functions.md +++ b/archetypes/functions.md @@ -12,5 +12,5 @@ tags: [] toc: false draft: false aliases: [] -z_notesforauthors: "Go to gohugo.io/docscontrib for info on req fields" +z_notesforauthors: "Go to gohugo.io/contribute/documentation for more info on using this archetype." --- diff --git a/archetypes/showcase.md b/archetypes/showcase.md index 6efcb7abe..750a5fba3 100644 --- a/archetypes/showcase.md +++ b/archetypes/showcase.md @@ -9,5 +9,5 @@ categories: [showcase] tags: [] image: "yourimage.jpg" toc: false -z_notesforauthors: "Go to gohugo.io/docscontrib for info on req fields" +z_notesforauthors: "Go to gohugo.io/contribute/documentation for more info on using this archetype." --- \ No newline at end of file diff --git a/archetypes/tutorials.md b/archetypes/tutorials.md index 1a1f70aac..5c08f5df0 100644 --- a/archetypes/tutorials.md +++ b/archetypes/tutorials.md @@ -11,6 +11,6 @@ authorurl: "" originalurl: "" draft: false aliases: [] -z_notesforauthors: "Go to gohugo.io/docscontrib for info on required fields" +z_notesforauthors: "Go to gohugo.io/contribute/documentation for more info on using this archetype." --- diff --git a/content/about-hugo/features.md b/content/about-hugo/features.md index 12155cb27..98caa303e 100644 --- a/content/about-hugo/features.md +++ b/content/about-hugo/features.md @@ -82,7 +82,7 @@ See what's coming next in the [Hugo roadmap][]. [sort content]: /templates/ [supported formats]: /content-management/formats/ [Syntax highlighting]: /developer-tools/syntax-highlighting/ -[table of contents]: /content-management/table-of-contents/ +[table of contents]: /content-management/toc/ [taxonomies]: /content-management/taxonomies/ [URLs]: /content-management/urls/ [Windows]: /getting-started/install-on-linux/ \ No newline at end of file diff --git a/content/about-hugo/license.md b/content/about-hugo/license.md index d7bbfa605..90910e75c 100644 --- a/content/about-hugo/license.md +++ b/content/about-hugo/license.md @@ -15,7 +15,7 @@ toc: true {{% note %}} Hugo v0.15 and later are released under the Apache 2.0 license. -Earlier version of Hugo were released under the Simple Public License. +Earlier versions of Hugo were released under the [Simple Public License](https://opensource.org/licenses/Simple-2.0). {{% /note %}} _Version 2.0, January 2004_
diff --git a/content/concept.md b/content/concept.md index 15339f590..64916ba1b 100644 --- a/content/concept.md +++ b/content/concept.md @@ -13,41 +13,40 @@ aliases: [] toc: true --- -## Strategy, Tactics, and Requirements - -{{% warning "Disclaimer" %}} -WIP. Before any of my fellow content strategists banish me to content strategy hell, know that I *know* this is a *schlocky* version of a true strategic document. -{{% /warning %}} - ### Introduction The claims made in this strategic document are largely *empirical* and pulled from two major sources: -* My experience starting 18 months ago as a new user. +* My experience starting 18 months ago as a new Hugo user. * Conversations with fellow Hugo users and noted trends within the [Discussion Forum][forum]. -Ideally, +{{% warning "Disclaimer" %}} +WIP. Before any of my fellow content strategists banish me to content strategy hell, know that I *know* this is a *schlocky* version of a true strategic document. It'll get better. I promise. +{{% /warning %}} + +## Strategy, Tactics, and Requirements ### Assumptions -* The current documentation - * is confusing for new users - * is a common complaint in the Hugo forums ([example discussion 1][ex1], [example discussion 2][ex2]) - * lacks structure and is therefore - * unscalable, as demonstrated by [patch pages](http://gohugo.io/taxonomies/templates/) that seem out of place or require unnecessary drilldown - * inconsistent in its terminology, style, and (sometimes) layout - * limited in effective use of Alogolia's document search (i.e., because of redundant content grouping, headings, etc) - * difficult to optimize external search engines (SEO) - * does not leverage Hugo's more powerful feature (e.g., there is only *one* archetype); leveraging these features would help address the aforementioned shortcomings (i.e., scalability, consistency, and search) - * assumes a higher level of Golang proficiency than is realistic for newcomers to static site generators or general web development. An prime example is the sparsity of basic and advanced code samples through the templating functions, some of which are still wholly undocumented. +The current Hugo documentation + +* is confusing for new users +* is a common complaint in the Hugo forums ([forum discussion 1][ex1], [forum discussion 2][ex2]) +* lacks structure and is therefore + * unscalable, as demonstrated by patch pages (e.g. [here][patch1] and [here][patch2]) that seem out of place, require unnecessary drilldown, or duplicate content in other areas of the docs, thus requiring duplicative efforts to update + * inconsistent in its terminology, style, and (sometimes) layout + * limited in effective use of Alogolia's document search (i.e., because of redundant content grouping, headings, etc) + * difficult to optimize for external search engines (SEO) +* does not leverage Hugo's more powerful feature (e.g., there is only *one* archetype); leveraging these features would help address the aforementioned shortcomings (i.e., scalability, consistency, and search) +* assumes a higher level of Golang proficiency than is realistic for newcomers to static site generators or general web development. A prime example is the sparsity of basic and advanced code samples for templating functions, some of which may still be wholly undocumented. ### Goals New Hugo documentation should... -* reduce confusion surrounding Hugo concepts; e.g., `list`, `section`, `page`, and `content type` with the intention of +* reduce confusion surrounding Hugo concepts; e.g., `list`, `section`, `page`, `kind`, and `content type` with the intention of * making it easier for new users to get up and running - * creating better consistency and scalability for Hugo-dependent projects (viz., [themes.gohugo.io](http://themes.gohugo.io)) + * creating better consistency and scalability for Hugo-dependent projects (viz., [themes.gohugo.io][hugothemes]) * reducing the frequency of beginner-level questions in the [Hugo Discussion Forum][forum] * not require, or assume, any degree of Golang proficiency from end users; * that said, Hugo can—and *should*—act as a bridge for users interested in learning Golang. A implementationn example of this strategy point is the inclusion of `godocref:` as a default front matter field for all function and template pages. See [`archetypes/functions.md`][functionarchetype]. @@ -155,8 +154,8 @@ The following are high-level requirements for the documentation site. ## Author Experience (AX) -- [X] Easy scaffolding of content types (CLI) -- [X] Type-based content storage model and scope (archetypes) +- [X] Easy scaffolding of content types (i.e., via Hugo CLI [`hugo new`]) +- [X] Type-based content storage model and scope (i.e, via archetypes) ## Analytics/Metrics @@ -165,10 +164,10 @@ The following are high-level requirements for the documentation site. - [ ] Automated reports (GA) {{% note %}} -These are separate from usage statics re: Hugo downloads, `.Hugo.Generator`, etc. +The preceding analytics and metrics are separate from usage statics re: Hugo downloads, `.Hugo.Generator`, etc. {{% /note %}} -## Visual Design +## Visual Design and Front-end Development - [X] Clean typography with open-source font - [X] Optimal line length (50-80 characters) @@ -184,10 +183,9 @@ These are separate from usage statics re: Hugo downloads, `.Hugo.Generator`, etc - [X] Abstracted typefaces (multiple open-source fonts available) - ## Content Changes -The following is an *abbreviated* listing of *substantive* changes to content organization. Everything is ordered according to the current docs site navigation. The changes I delimit here do not include copy edits for consistent or preferred usage, improvements in semantics, etc, all of which easily numbers in the thousands, likely more. +The following is an *abbreviated* listing of *substantive* changes made to the current documentation's source content and organization. Sections here are ordered according to the current site navigation. The changes delimited here do not include copy edits for consistent or preferred usage, improvements in semantics, etc, all of which easily numbers in the thousands, likely more. ### Download Hugo @@ -195,7 +193,9 @@ This is no longer a site navigation link and is instead a button along with "Fil ### Site Showcase -* Site showcase has stayed more or less as is, including styling, etc. However, I did clean up the templating and all currently submitted showcase files. (E.g., changing "thumbnail" to "image" and not requiring a full path.) This will also be updated in the ["docs" page of the contribute section](/contribute/documentation/) +Site showcase has stayed more or less as is, including styling, etc. However... + * The showcase archetype has changed for simplicity. + * To keep compatibility, all [showcase content files][showcasefiles] have been edited to reflect the new content type. This will also be updated in the ["docs" page of the contribute section](/contribute/documentation/) ### Press & Articles @@ -370,19 +370,24 @@ Apache License - 60 ## Proposed Schedule for Hugo Docs Release +If the Hugo Team finds the improvements to the Hugo documentation acceptable, I've proposed the following schedule for leveraging the new Hugo documentation. -1. **2017-02-26** Release to Gitter Channel for Review -2. **2017-03-01** Post in Discussion Forum for Feedback -3. **2017-??-??** Add to Hugo repo for release with v19 - -[^1]: As this point, the URL structure has changed considerably. I've been fastidious about adding aliases wherever possible, but I'm not sure what negative effect this approach is going to take with our current search relevancy. The [current list of aliases is quite large](/contribute/documentation/#be-mindful-of-aliases). +1. **2017-02-26** Release to Gitter Channel for dev review +2. **2017-03-05** Post in Discussion Forum for Hugo user feedback +3. **2017-03-6** Pull request/add to Hugo Rep +3. **2017-??-??** Add to Hugo repo for release with v19? +[^1]: As this point, the URL structure has changed considerably. I've been fastidious about adding aliases wherever possible and trying to retain URLs for related content on the current site if applicable. That said, the [current list of aliases is quite large](/contribute/documentation/#be-mindful-of-aliases). [admonitions]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#admonitions [designresources]: https://github.com/rdwatters/hugo-docs-concept/tree/master/dev-and-design-resources -[forum]: https://discuss.gohugo.io [ex1]: https://discuss.gohugo.io/t/frustrated-with-documentation/2810 [ex2]: https://discuss.gohugo.io/t/documentation-restructure-and-design/1891 +[forum]: https://discuss.gohugo.io [functionarchetype]: https://github.com/rdwatters/hugo-docs-concept/blob/master/themes/hugodocs/archetypes/functions.md -[tagspage]: https://hugodocsconcept.netlify.com/tags/ -[Quick Start]: https://hugodocsconcept.netlify.com/getting-started/quick-start/ \ No newline at end of file +[hugothemes]: http://themes.gohugo.io +[patch1]: http://gohugo.io/taxonomies/templates/ +[patch2]: https://github.com/spf13/hugo/commit/eaabecf586fd0375585e27c752e05dd8cb4c72b4 +[Quick Start]: https://hugodocsconcept.netlify.com/getting-started/quick-start/ +[showcasefiles]: +[tagspage]: https://hugodocsconcept.netlify.com/tags/ \ No newline at end of file diff --git a/content/content-management/archetypes.md b/content/content-management/archetypes.md index 981f8b1f2..eafa5a653 100644 --- a/content/content-management/archetypes.md +++ b/content/content-management/archetypes.md @@ -9,7 +9,7 @@ tags: [archetypes,generators,metadata,front matter] categories: ["content management"] weight: 70 draft: false -aliases: [/content/archetypes/,/content-management/content-archetypes/] +aliases: [/content/archetypes/] toc: true notesforauthors: --- diff --git a/content/content-management/formats.md b/content/content-management/formats.md index dfd18c320..39bdb2435 100644 --- a/content/content-management/formats.md +++ b/content/content-management/formats.md @@ -16,23 +16,17 @@ notesforauthors: ## Markdown -Markdown is the native content format for Hugo and is rendered using the excellent [Blackfriday project][], a blazingly fast parser written in Golang. +Markdown is the native content format for Hugo and is rendered using the excellent [Blackfriday project][blackfriday], a blazingly fast parser written in Golang. {{% note "Deeply Nested Lists" %}} Before you begin writing your content in markdown, Blackfriday has a known issue [(#329)](https://github.com/russross/blackfriday/issues/329) with handling deeply nested lists. Luckily, there is an easy workaround. Use 4-spaces (i.e., tab) rather than 2-space indentations to delimit nesting of lists in your content. {{% /note %}} -## Additional Content Formats +## Configuring Markdown Rendering -Since 0.14, Hugo has defined a new concept called _external helpers_. This means you can write your content using [Asciidoc][], [reStructuredText][], or [Org-mode][]. If you have files with associated extensions, Hugo will call external commands to generate the content ([see Hugo source code][]). The exception is Org-mode, which is parsed natively. +You can configure multiple aspects of Blackfriday. For more information, see [how to configure your Hugo projects][config]: -For example, for Asciidoc files, Hugo will try to call the **asciidoctor** or **asciidoc** command. This means that you will have to install the associated tool on your machine to be able to use these formats. - -To use these formats, just use the standard extension and the front matter exactly as you would do with natively supported `.md` files. - -{{% note "Performance of External Helpers" %}} -Because these are external commands, generation performance for your preferred content format will heavily depend on the performance of the external tool used. As this feature is still in its infancy, feedback is especially welcome. -{{% /note %}} +{{< bfconfig >}} ## Extending Markdown @@ -40,26 +34,24 @@ Hugo provides some convenient methods for extending markdown. ### Task Lists -Hugo supports GitHub styled task lists (TODO lists) for the Blackfriday markdown renderer. If you do not want to use this feature, you can disable it in the See [Blackfriday config](/overview/configuration/#configure-blackfriday-rendering) for how to turn it off. +Hugo supports GitHub-styled task lists (i.e., TODO lists) for the Blackfriday markdown renderer. If you do not want to use this feature, you can disable it in your configuration. -#### Task List +#### Example Task List Input +{{% code file="content/my-to-do-list.md" %}} ```markdown - [ ] a task list item - [ ] list syntax required - [ ] incomplete - [x] completed ``` +{{% /code %}} -Renders as: +#### Example Task List Output -- [ ] a task list item -- [ ] list syntax required -- [ ] incomplete -- [x] completed - -And produces this HTML: +The preceding markdown produces the following HTML in your rendered website: +{{% output file="my-to-do-list.html" %}} ```html ``` +{{% /output %}} + +#### Example Task List Display + +The following shows how the example task list will look to the end users of your website. Note that visual styling of lists is up to you. This list has been styled according to [the Hugo Docs stylesheet][hugocss]. + +- [ ] a task list item +- [ ] list syntax required +- [ ] incomplete +- [x] completed ### Shortcodes -If you write in markdown and find yourself frequently embedding your content with raw HTML, Hugo provides built-in [shortcodes][] functionality to act as the intermediary between your content and templating. +If you write in markdown and find yourself frequently embedding your content with raw HTML, Hugo provides built-in shortcodes functionality to act as the intermediary between your content and templating. This is one of the most powerful features in Hugo and allows you to essentially create your own markdown extensions very quickly. + +See [Shortcodes][sc] for usage, particularly for the built-in shortcodes that ship with Hugo, and [Shortcode Templating][sct] to learn how to build your own. ### Code Blocks -Hugo supports GitHub-flavored markdown's use of triple back ticks, as well as provides a special [`highlight` nested shortcode][] to render syntax highlighting via [Pygments][]. For usage examples and a complete explanation, see the [syntax highlighting documentation][] in [developer tools][]. +Hugo supports GitHub-flavored markdown's use of triple back ticks, as well as provides a special [`highlight` nested shortcode][hlsc] to render syntax highlighting via [Pygments][]. For usage examples and a complete explanation, see the [syntax highlighting documentation][hl] in [developer tools][]. ## Markdown Learning Resources -* [Markdown Tutorial][] -* [Daring Fireball: Markdown, John Gruber][] +If you are unfamiliar with markdown syntax, it can easily be learned within a single sitting. The following are excellent resources to get you up and running: -[`highlight` nested shortcode]: /content-management/shortcodes/#highlight -[AsciiDoc]: http://asciidoc.org/ -[Blackfriday project]: https://github.com/russross/blackfriday -[Daring Fireball: Markdown, John Gruber]: https://daringfireball.net/projects/markdown/ +* [Daring Fireball: Markdown, John Gruber (Creator of Markdown)][fireball] +* [Markdown Cheatsheet, Adam Pritchard][mdcheatsheet] +* [Markdown Tutorial (Interactive), Garen Torikian][mdtutorial] + +## Additional Content Formats + +Since 0.14, Hugo has defined a new concept called _external helpers_. This means you can write your content using [Asciidoc][ascii], [reStructuredText][rest], or [Org-mode][org]. If you have files with associated extensions, Hugo will call external commands to generate the content. ([See the Hugo source code for external helpers][helperssource]). The exception is Org-mode, which is parsed natively. + +For example, for Asciidoc files, Hugo will try to call the `asciidoctor` or `asciidoc` command. This means that you will have to install the associated tool on your machine to be able to use these formats. ([See the Asciidoctor docs for installation instructions](http://asciidoctor.org/docs/install-toolchain/)). + +To use these formats, just use the standard extension and the front matter exactly as you would do with natively supported `.md` files. + +{{% warning "Performance of External Helpers" %}} +Because additional format are external commands---with the exception of org mode---generation performance will rely heavily on the performance of the external tool used. As this feature is still in its infancy, feedback is especially welcome. +{{% /warning %}} + +[ascii]: http://asciidoc.org/ +[bfconfig]: /getting-started/configuration/#configuring-blackfriday-rendering +[blackfriday]: https://github.com/russross/blackfriday +[config]: /getting-started/configuration/ [developer tools]: /developer-tools/ -[Markdown Tutorial]: http://www.markdowntutorial.com/ -[Org-mode]: http://orgmode.org/ +[fireball]: https://daringfireball.net/projects/markdown/ +[helperssource]: https://github.com/spf13/hugo/blob/77c60a3440806067109347d04eb5368b65ea0fe8/helpers/general.go#L65 +[hl]: /developer-tools/syntax-highlighting/ +[hlsc]: /content-management/shortcodes/#highlight +[hugocss]: /css/style.min.css +[mdcheatsheet]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet +[mdtutorial]: http://www.markdowntutorial.com/ +[org]: http://orgmode.org/ [Pygments]: http://pygments.org/ -[reStructuredText]: http://docutils.sourceforge.net/rst.html -[see Hugo source code]: https://github.com/spf13/hugo/blob/77c60a3440806067109347d04eb5368b65ea0fe8/helpers/general.go#L65 -[shortcodes]: /content-management/shortcodes/ -[syntax highlighting documentation]: /developer-tools/syntax-highlighting/ \ No newline at end of file +[rest]: http://docutils.sourceforge.net/rst.html +[sc]: /content-management/shortcodes/ +[sct]: /templates/shortcode-templates/ \ No newline at end of file diff --git a/content/content-management/multilingual.md b/content/content-management/multilingual.md index 63343f70e..a1cd4fbca 100644 --- a/content/content-management/multilingual.md +++ b/content/content-management/multilingual.md @@ -1,12 +1,12 @@ --- title: Multilingual Mode -linktitle: +linktitle: Multilingual and i18n description: As of v0.17, Hugo supports the creation of websites with multiple languages side by side. date: 2017-01-10 publishdate: 2017-01-10 lastmod: 2017-01-10 categories: [content management] -tags: [multilingual,i18n] +tags: [multilingual,i18n, internationalization] weight: 150 draft: false aliases: [/content/multilingual/,/content-management/multilingual/] @@ -16,9 +16,12 @@ needsreview: true Hugo supports multiple languages side-by-side (added in `Hugo 0.17`). Define the available languages in a `Languages` section in your top-level `config.toml` (or equivalent). -Example: +## Configuring Multilingual Mode -``` +The following is an example of a TOML site configuration for a multilingual Hugo project: + +{{% code file="config.toml" download="config.toml" %}} +```toml DefaultContentLanguage = "en" copyright = "Everything is mine" @@ -40,21 +43,23 @@ weight = 2 linkedin = "lien-francais" [Languages.fr.navigation] help = "Aide" - ``` +{{% /code %}} Anything not defined in a `[Languages]` block will fall back to the global value for that key (e.g., `copyright` for the English [`en`] language). -With the config above, all content, sitemap, RSS feeds, paginations, -and taxonomy pages will be rendered below `/` in English (your default content language), and below `/fr` in French. +With the configuration above, all content, sitemap, RSS feeds, paginations, +and taxonomy pages will be rendered below `/` in English (your default content language) and then below `/fr` in French. -When working with params in front matter pages, omit the `params` in the key for the translation. +When working with front matter `Params` in [single page templates][singles], omit the `params` in the key for the translation. -If you want all of the languages to be put below their respective language code, enable `defaultContentLanguageInSubdir: true` in your configuration. +If you want all of the languages to be put below their respective language code, enable `defaultContentLanguageInSubdir: true`. Only the obvious non-global options can be overridden per language. Examples of global options are `BaseURL`, `BuildDrafts`, etc. +## Taxonomies and Blackfriday + Taxonomies and [Blackfriday configuration][hugoconfig] can also be set per language: ```toml @@ -119,15 +124,15 @@ To create a list of links to translated content, use a template similar to this: ``` {{% /code %}} -The above can be put in a `partial` (`./layouts/partials/`) and included in any template, be it for a [content page][contenttemplate] or the [home page][homepagetemplte]. It will not print anything if there are no translations for a given page, or if it is---in the case of the home page, section listing, etc.---a site with only one language. +The above can be put in a `partial` (`./layouts/partials/`) and included in any template, be it for a [content page][contenttemplate] or the [homepage][]]. It will not print anything if there are no translations for a given page, or if there is---in the case of the homepage, section listing, etc.---a site with only one language. -The above also uses the `i18n` func described in the next section. +The above also uses the [`i18n` function][i18func] described in the next section. ## Translation of Strings Hugo uses [go-i18n](https://github.com/nicksnyder/go-i18n) to support string translations. [See the project's source repository](https://github.com/nicksnyder/go-i18n) to find tools that will help you manage your translation workflows. -Translations are collected from the `themes/[name]/i18n/` folder (built into the theme), as well as translations present in `i18n/` at the root of your project. In the `i18n`, the translations will be merged and take precedence over what is in the theme folder. Language files should be named according to RFC 5646 with names such as `en-US.yaml`, `fr.yaml`, etc. +Translations are collected from the `themes//i18n/` folder (built into the theme), as well as translations present in `i18n/` at the root of your project. In the `i18n`, the translations will be merged and take precedence over what is in the theme folder. Language files should be named according to [RFC 5646][] with names such as `en-US.yaml`, `fr.yaml`, etc. From within your templates, use the `i18n` function like this: @@ -229,11 +234,18 @@ Hugo will generate your website with these placeholders. It might not be suited To support Multilingual mode in your themes, some considerations must be taken for the URLs in the templates. If there is more than one language, URLs must -* come from the built-in `.Permalink` or `.URL` -* be constructed with `relLangURL` or `absLangURL` template funcs **or** prefixed with `{{.LanguagePrefix }}` +* Come from the built-in `.Permalink` or `.URL` +* Be constructed with + * The [`relLangURL` template function][rellangurl] or the [`absLangURL` template function][abslangurl] template functions **OR** + * Prefixed with `{{.LanguagePrefix }}` If there is more than one language defined, the`LanguagePrefix` variable will equal `/en` (or whatever your `CurrentLanguage` is). If not enabled, it will be an empty string and is therefore harmless for single-language Hugo websites. +[abslangurl]: /functions/abslangurl [contenttemplate]: /templates/single-page-template/ -[homepagetemplate]: /templates/homepage-template/ -[hugoconfig]: /getting-started/configuration/ \ No newline at end of file +[homepage]: /templates/homepage-template/ +[hugoconfig]: /getting-started/configuration/ +[i18func]: /functions/i18n/ +[RFC 5646]: https://tools.ietf.org/html/rfc5646 +[singles]: /templates/single-page-templates/ +[rellangurl]: /functions/rellangurl \ No newline at end of file diff --git a/content/content-management/organization.md b/content/content-management/organization.md index e3ff83887..3dc9ef843 100644 --- a/content/content-management/organization.md +++ b/content/content-management/organization.md @@ -5,8 +5,8 @@ description: Hugo assumes that the same structure that works to organize your so date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -categories: [project organization] -tags: [sections,content,organization, fundamentals] +categories: [content management] +tags: [sections,content,organization,fundamentals] weight: 10 draft: false aliases: [/content-management/sections,/content/sections/] @@ -16,9 +16,9 @@ needsreview: true ## Introduction -Hugo uses files (see [Supported Content Formats][]) with headers called [front matter][]. By default, Hugo assumes the same structure that works to organize your content should be used to organize your rendered website. This is done in an effort to reduce configuration. However, this convention can be overridden through additional configuration in the front matter, as well as through Hugo's extensive features related to [URL management][]. +Hugo uses files (see [Hugo's supported content formats][formats]) with headers called [front matter][]. By default, Hugo assumes the same structure that works to organize your content should be used to organize your rendered website. This is done in an effort to reduce configuration. However, this convention can be overridden through additional configuration in the front matter, as well as through Hugo's extensive features related to [URL management][urls]. -## Organizing Source Content +## Organizing Content Source In Hugo, the content should be organized in a manner that reflects the rendered website. Without any additional configuration, the following will just work. Hugo supports content nested at any level, but the top level (i.e. `content/*``) is special in Hugo and is considered the content [section][]. @@ -121,29 +121,37 @@ http://spf13.com/projects/hugo http://spf13.com/extras/indexes/example ``` -**section** = which type the content is by default +#### `section` -* based on content location +A section is the content type the piece of content is assigned to by default. `section` is determined by the following: + +* content location within the project's directory structure * front matter overrides -**slug** = name.ext or name/ +#### `slug` -* based on `content-name.md` +A content's `slug` is either `name.extension` or `name/`. `slug` is determined by the following: + +* the name of the content file (e.g., `content-name.md`) * front matter overrides -**path** = section path to file, excluding slug +## `path` -* based on path to content location +A content's `path` is determined by the section's path to the file. `path` +* is based on the path to the content's location +* excludes the slug -**url** = relative URL +## `url` -* defined in front matter +The `url` is the relative URL for the piece of content. The `url` + +* is defined in front matter * overrides all the above -## \_index.md and 'Everything is a Page' +## \_index.md and "Everything is a Page" -As of version v0.18 Hugo now treats '[everything as a page](http://bepsays.com/en/2016/12/19/hugo-018/)'. This allows you to add content and front matter to any page, including list pages like [sections][sectiontemplates], [taxonomies][taxonomytemplates], [Taxonomy Terms pages](/templates/terms/) and even to potential 'special case' pages like the [Homepage](/templates/homepage/). +As of version v0.18, Hugo now treats "[everything as a page](http://bepsays.com/en/2016/12/19/hugo-018/)". This allows you to add content and front matter to any page, including list pages like [sections][sectiontemplates], [taxonomy list pages][taxonomytemplates], [taxonomy terms pages](/templates/terms/) and even to potential "special case" pages like the [homepage][]. In order to take advantage of this behaviour you need to do a few things. @@ -173,7 +181,7 @@ Now that you've got a handle on templates lets recap some Hugo basics to underst Let's put all this information together: -> **\_index.md files used in List pages, Terms pages or the Homepage are NOT rendered as single pages or with Single Content templates.** +* `_index.md` file are used in List pages, terms pages or the homepage and are NOT rendered as single pages or with [single page templates][singles]. > **All pages, including List pages, can have front matter and front matter can have markdown content - meaning \_index.md files are the way to _provide_ front matter and content to the respective List/Terms/Homepage.** @@ -251,6 +259,8 @@ An `_index.md` file has also been added in the top level 'content' directory. Hugo themes are designed to use the 'content' directory as the root of the website, so adding an \_index.md file here (like has been done in the example above) is how you would add front matter/content to the homepage. [front matter]: /content-management/front-matter/ +[homepage]: /templates/homepage-template/ [section]: /content-management/section/ -[supported content formats]: /content-management/formats/ -[URL management]: /content-management/urls/ +[formats]: /content-management/formats/ +[singles]: /templates/single-page-templates/ +[urls]: /content-management/urls/ diff --git a/content/content-management/shortcodes.md b/content/content-management/shortcodes.md index 737b47a71..276556f37 100644 --- a/content/content-management/shortcodes.md +++ b/content/content-management/shortcodes.md @@ -146,8 +146,8 @@ This shortcode will convert the source code provided into syntax-highlighted HTM #### Example `highlight` Input -{{% code file="highlight-shortcode.md" %}} -```golang +{{% code file="content/tutorials/learn-html.md" %}} +```html {{}}
@@ -163,7 +163,9 @@ This shortcode will convert the source code provided into syntax-highlighted HTM #### Example `highlight` Output -{{% output file="syntax-highlighted.html" %}} +The `highlight` shortcode example above would produce the following HTML when the site is rendered: + +{{% output file="tutorials/learn-html/index.html" %}} ```html <section id="main"> <div> @@ -176,8 +178,8 @@ This shortcode will convert the source code provided into syntax-highlighted HTM ``` {{% /output %}} -{{% note "Syntax Highlighting" %}} -For more information on your options for adding syntax-highlighted code blocks to your website, see [Syntax Highlighting](/developer-tools/syntax-highlighting/). +{{% note "More on Syntax Highlighting" %}} +To see even more options for adding syntax-highlighted code blocks to your website, see [Syntax Highlighting](/developer-tools/syntax-highlighting/) in Developer Tools. {{% /note %}} ### `instagram` diff --git a/content/content-management/taxonomies.md b/content/content-management/taxonomies.md index 91561ec70..ca06e2dd2 100644 --- a/content/content-management/taxonomies.md +++ b/content/content-management/taxonomies.md @@ -145,7 +145,7 @@ taxonomies: By default, taxonomy names are hyphenated, lower-cased, normalized, and then fixed and title-ized within. -However, if you want to have a taxonomy value with special characters such as `Gérard Depardieu` instead of `Gerard Depardieu`, you need to set the value for `preserveTaxonomyNames` in your [site configuration][] to `true`. Hugo will then preserve special characters in taxonomy values but will still titleize the values for titles and normalize them in URLs. +Therefore, if you want to have a taxonomy value with special characters such as `Gérard Depardieu` instead of `Gerard Depardieu`, you need to set the value for `preserveTaxonomyNames` in your [site configuration][] to `true`. Hugo will then preserve special characters in taxonomy values but will still title-ize the values for titles and normalize them in URLs. Note that if you use `preserveTaxonomyNames` and intend to manually construct URLs to the archive pages, you will need to pass the taxonomy values through the [`urlize` template function][]. diff --git a/content/content-management/table-of-contents.md b/content/content-management/toc.md similarity index 100% rename from content/content-management/table-of-contents.md rename to content/content-management/toc.md diff --git a/content/contribute/development.md b/content/contribute/development.md index e4a4aa772..5d9f9e719 100644 --- a/content/contribute/development.md +++ b/content/contribute/development.md @@ -18,26 +18,28 @@ notesforauthors: ## Introduction -Hugo is an open-source project and lives by the work of its [contributors][]. There are plenty of [open issues][], and we need your help to make Hugo even more awesome. +Hugo is an open-source project and lives by the work of its [contributors][]. There are plenty of [open issues][issues], and we need your help to make Hugo even more awesome. ## Assumptions +This contribution guide takes a step-by-step approach in hopes of helping newcomers. Therefore, we only assume the following: + * You are new to Git or open-source projects in general * You are a fan of Hugo and enthusiastic about contributing to the project -This contribution guide takes a step-by-step approach in hopes of helping newcomers. - {{% note "Additional Questions?" %}} -If you're struggling at any point in this contribution guide, reach out to Hugo community in [Hugo's Discussion forum](https://discuss.gohugo.io). +If you're struggling at any point in this contribution guide, reach out to the Hugo community in [Hugo's Discussion forum](https://discuss.gohugo.io). {{% /note %}} -### Installing Golang +## Installing Golang The installation of Go should take only a few minutes. You have more than one option to get Go up and running on your machine. -## Installing Go From Source +If you are having trouble following the installation guides for go, check out [Go Bootcamp, which contains setups for every platform][gobootcamp] or reach out to the Hugo community in the [Hugo Discussion Forums][forums]. -[Download the latest stable version of Go][downloadgo] and follow the official [Golang installation guide][installgo]. +### Installing Go From Source + +[Download the latest stable version of Go][godl] and follow the official [Golang installation guide][goinstall]. Once you're finished installing Go, let's confirm everything is working correctly. Open a terminal---or command line under Windows--and type the following: @@ -61,9 +63,15 @@ You can print the `GOPATH` with `echo $GOPATH`. You should see a non-empty strin ### Installing Go with Homebrew +If you are a Mac OSX user and have [Homebrew](https://brew.sh/) installed on your machine, installing Go is as simple as the following command: +{{% code file="install-go.sh" %}} +```bash +brew install go +``` +{{% /code %}} -### Install Go GVM +### Install Go via GVM More experienced users can use the [Go Version Manager][gvm] (GVM). GVM allows you to switch between different Go versions *on the same machine*. If you're a beginner, you probably don't need this feature. However, GVM makes it easy to upgrade to a new released Go version with just a few commands. @@ -89,7 +97,7 @@ Finally, check again with `git version` if Git was installed successfully. There are several [GUI clients](https://git-scm.com/downloads/guis) that help you to operate Git. Not all are available for all operating systems and maybe differ in their usage. Thus, so we will use the command line since the commands are everywhere the same. -### Install Hub on Your System (optional) +### Install Hub on Your System (Optional) Hub is a great tool for working with GitHub. The main site for it is [www.hub.github.com](https://hub.github.com/). Feel free to install this little Git wrapper. @@ -112,7 +120,6 @@ git version 2.6.3 hub version 2.2.2 ``` - ## Set up your working copy The working copy is set up locally on your computer. It's what you'll edit, compile, and end up pushing back to GitHub. The main steps are cloning the repository and creating your fork as a remote. @@ -207,11 +214,13 @@ git checkout -b You can check on which branch your are with `git branch`. You should see a list of all local branches. The current branch is indicated with a little asterisk. -### Contributing to the documentation +### Contributing to Documentation -Perhaps you want to start contributing to the docs. Then you can ignore most of the following steps. You can find the documentation within the cloned repository in the subfolder `docs`. Change the directory with `cd docs`. [Install the latest release][releases]. Or read on and build Hugo from source. +Perhaps you want to start contributing to the Hugo docs. If so, you can ignore most of the following steps and focus on the `/docs` directory within your newly cloned repository. You can change directories into the Hugo docs using `cd docs`. -You can start Hugo's built-in server via `hugo server`. Browse the documentation by entering [http://localhost:1313](http://localhost:1313) in the address bar of your browser. The server automatically updates the page if you change its content. +You can start Hugo's built-in server via `hugo server`. Browse the documentation by entering [http://localhost:1313](http://localhost:1313) in the address bar of your browser. The server automatically updates the page whenever you change content. + +We have developed a [separate Hugo documentation contribution guide][docscontrib] for more information on how the Hugo docs are built, organized, and improved by the generosity of people like you. ### Building Hugo @@ -368,26 +377,33 @@ We use the [Travis CI loop](https://travis-ci.org/spf13/hugo) (Linux and OS  Above you can see that Travis wasn't able to compile the changes in this pull request. Click on "Details" and try to investigate why the build failed. But it doesn't have to be your fault. Mostly, the `master` branch that we used as foundation for your pull request should build without problems. -If you have questions leave a comment in the pull request. We are willing to assist you. +If you have questions, leave a comment in the pull request. We are willing to assist you. ## Where to start? -Thank you for reading this tutorial. Hopefully, we see you again on GitHub. There are plenty of [open issues](https://github.com/spf13/hugo/issues) on GitHub. Feel free to open an issue if you think you found a bug or you have a new idea to improve Hugo. We are happy to hear from you. +Thank you for reading through this contribution guide. Hopefully, we will see you again soon on GitHub. There are plenty of [open issues][issues] for you to help with. -## Additional References for Learning Git +Feel free to [open an issue][newissue] if you think you found a bug or you have a new idea to improve Hugo. We are happy to hear from you. + +## Additional References for Learning Git and Golang * [Codecademy's Free "Learn Git" Course][codecademy] (Free) * [Code School and GitHub's "Try Git" Tutorial][trygit] (Free) * [The Git Book][gitbook] (Free) +* [Go Bootcamp][gobootcamp] [codecademy]: https://www.codecademy.com/learn/learn-git [contributors]: https://github.com/spf13/hugo/graphs/contributors -[downloadgo]: https://golang.org/dl/ +[docscontrib]: /contribute/documentation/ +[forums]: https://discuss.gohugo.io [gitbook]: https://git-scm.com/ +[gobootcamp]: http://www.golangbootcamp.com/book/get_setup +[godl]: https://golang.org/dl/ +[goinstall]: https://golang.org/doc/install [gvm]: https://github.com/moovweb/gvm -[installgo]: https://golang.org/doc/install +[issues]: https://github.com/spf13/hugo/issues +[newissue]: https://github.com/spf13/hugo/issues/new [releases]: /getting-started/ [setupgopath]: https://golang.org/doc/code.html#Workspaces -[open issues]: https://github.com/spf13/hugo/issues [trygit]: https://try.github.io/levels/1/challenges/1 \ No newline at end of file diff --git a/content/contribute/documentation.md b/content/contribute/documentation.md index 9d589db56..0f7718fe5 100644 --- a/content/contribute/documentation.md +++ b/content/contribute/documentation.md @@ -6,38 +6,46 @@ date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [contribute to hugo] -tags: [docs,documentation,community] +tags: [docs,documentation,community, contribute] weight: 20 draft: false -slug: -aliases: [/docs-contribute/,/docscontrib/] +aliases: [/contribute/docs/] toc: true needsreview: true --- -Documentation is a critical component of any open-source project. The Hugo docs were completely reworked in anticipation of the release of v0.19, but there is always room for improvement. +Documentation is a critical component of any open-source project. The Hugo docs were completely reworked for the release of v0.19, but there is always room for improvement. ## Create Your Fork -First, make sure that you created a [fork](https://help.github.com/articles/fork-a-repo/) of Hugo on Github and cloned the fork locally on your computer. Next, create a separate branch for your additions. Note that you can choose a different descriptive branch name that best fits the type of content you're trying to submit: +It's best to make changes to the Hugo docs on your local machine to check for consistent visual styling. Make sure you've created a fork of Hugo on GitHub and cloned the repository locally on your computer. For more information, you can use the [GitHub docs for "forking"][ghforking] or see [Hugo's extensive development contribution guide][hugodev]. + +You can then create a separate branch for your additions. Note that you can choose a different descriptive branch name that best fits the type of content. The following is an example of a branch name you might use for adding a new website to the showcase: ```git -git checkout -b showcase-addition +git checkout -b jon-doe-showcase-addition ``` -## Adding a New Content Page +## Adding New Content -The Hugo docs are built using Hugo and therefore make heavy use of Hugo's [archetype][] feature to easily scaffold new instances of content types. All [content sections][] in Hugo documentation have an assigned archetypes ([see source][archsource]). +The Hugo docs are built using Hugo and therefore make heavy use of Hugo's [archetypes][] feature to easily scaffold new instances of content types. All content sections in Hugo documentation have an assigned archetype ([see the Hugo docs archetype source][archsource]). +Adding new content follows the same pattern, regardless of the content section: + +``` +hugo new / +``` + +{{% note "`title:`, `date:`, and Field Order" %}} +`title` and `date` fields are added automatically when using archetypes via `hugo new`. Do not be worried if the order of the new file's front matter fields on your local machine is different than that of the following examples. This is a [known issue (#452)](https://github.com/spf13/hugo/issues/452). +{{% /note %}} ### Adding a New Function -### Adding a New Tutorial - -Once you have cloned the Hugo repository, you can create a new function via the following command. For functions, title the new function in lowercase. +Once you have cloned the Hugo repository, you can create a new function via the following command. Keep the file name lowercase. ``` -hugo new tutorials/newfunction.md +hugo new functions/newfunction.md ``` The archetype for the `functions` content type is as follows: @@ -48,13 +56,16 @@ The archetype for the `functions` content type is as follows: ``` {{% /code %}} +#### Function Required Fields -### Adding a New Showcase -Once you have cloned the Hugo repository, you can create add your site as a new showcase content file via the following command. Name the markdown file accordingly: + +### Adding to the Showcase + +Once you have cloned the Hugo repository, you can add your Hugo website as a new showcase content file via the following command. Name the markdown file accordingly: ``` -hugo new tutorials/my-showcase-addition.md +hugo new tutorials/my-hugo-showcase-website.md ``` The archetype for the `showcase` content type is as follows: @@ -65,7 +76,21 @@ The archetype for the `showcase` content type is as follows: ``` {{% /code %}} -Add at least values for `sitelink`, `title`, `description`, and a path for `image`. +#### Showcase Required Fields + +`sitelink` +: the *full* URL to your website + +`title` +: the ``` of your website + +`description` +: a general description of your website, preferably < 180 characters. + +`image` +: the image (filename only) you want to associate with your website on the Showcase page. The image should be 600px x 400px. + +We also appreciate the addition of the remaining fields, specially `sourcelink` and `license` if you are willing to share your hard work with the open-source community. `tags` is optional, but we recommend adding at least 2 to 3 tags to improve discoverability. #### Add an Image for the Showcase @@ -91,11 +116,11 @@ The archetype for the `tutorials` content type is as follows: ``` {{% /code %}} -## Adding Code Blocks to Hugo Docs +## Adding Code Blocks Code blocks are crucial for providing examples of Hugo's new features to end users of the Hugo docs. Whenever possible, create examples that you think Hugo users will be able to implement in their own projects. -### Standard Code Block Syntax +### Standard Syntax Across all pages on the Hugo docs, the typical triple-back-tick markdown syntax is used. If you do not want to take the extra time to implement the following code block shortcodes, please use standard Github-flavored markdown. The Hugo docs use a version of [highlight.js](https://highlightjs.org/) that's been modified for specific Hugo keywords. @@ -112,12 +137,12 @@ Your options for languages are `xml`/`html`, `go`/`golang`, `md`/`markdown`/`mkd The Hugo documentation comes with very robust shortcodes to help you add interactive code snippets. {{% note %}} -With both the `code` and the `output` shortcodes, *you still need to include the triple back ticks and language declaration*. This was done by design so that the shortcode wrappers were easily added to legacy documentation and will be that much easier to remove if needed in future versions of the docs. We assume that the triple-back-tick syntax will live longer than the shortcode. +With both `code` and `output` shortcodes, *you must include triple back ticks and language declaration*. This was done by design so that the shortcode wrappers were easily added to legacy documentation and will be that much easier to remove if needed in future versions of the Hugo docs. We assume that the triple-back-tick syntax will live longer than our current, pretty shortcode. {{< emo ":smile:" >}} {{% /note %}} -#### Input Code Block +#### `code` -The first shortcode is the one you'll use most often, `code`. `code`, like all code block shortcodes, requires at least a single `file` named parameter. Here is the signature: +`code` is the code block shortcode you'll use most often. `code` requires at least a single `file` named parameter. Here is the signature: ````golang {{%/* code file="smart/file/name/with/path.html" download="download.html" copy="true" */%}} @@ -127,15 +152,23 @@ A whole bunch of coding going on up in here! Boo-yah! {{%/* /code */%}} ```` -Let's go through each of the three arguments passed into `code`: +These are the arguments passed into `code` -1. `file`. This is the only ***required*** argument for this shortcode. `file` is needed for styling but also plays an important role in helping users create a mental model around Hugo's directory structure. Visually, this will be displayed as text in the top bar of the text-editor design you've seen throughout the docs. Note that you always want to end the file with an extension, but never use more than a single period in the filename. For example, instead of `./archetypes/default`, use `archetypes/default.md`. The file extension is important for displaying the correct icon. -2. `download`. If omitted entirely, this will have no effect on the rendered shortcode. When a value is added to `download`, it's used as the filename for a downloadable version of the code block. -3. `copy`. All `code` instances add a copy button to the bottom right automatically. However, there are times where you may not want to encourage your end user to copy a code block but still want to keep consistent styling for the filename (e.g., if you adding a "Do not do" code in a tutorial). If you want to turn off the copy functionality of `code`, you can add `copy="false"`. +`file` +: the only ***required*** argument. `file` is needed for styling but also plays an important role in helping users create a mental model around Hugo's directory structure. Visually, this will be displayed as text in the top bar of the text-editor. Always end the value with an extension. For example, instead of `./public/section/`, use `public/section/index.html`. The file extension is used to display the icon. -##### Example of `Code` +`download` +: if omitted, this will have no effect on the rendered shortcode. When a value is added to `download`, it's used as the filename for a downloadable version of the code block. -Here is an HTML code block we want to tell the user lives in the `layouts/_default` directory. We are going to also make the block downloadable because it works as a standalone file: +`copy` +: a copy button is added automatically to all `code` (i.e., default value = `true`). If you want to keep the filename and styling of `code` but don't want to encourage readers to copy the code (e.g., a "Do not do" snippet in a tutorial), pass the `copy` argument as `copy="false"`. + +##### Example `code` Input + +Here is an HTML code block in a case where we want to show the user of the Hugo docs the following: + +1. This type of file *could* live in `layouts/_default`. +2. This snippet is complete enough that it might be worth downloading as a standalone file. ````html {{%/* code file="layouts/_default/single.html" download="single.html" */%}} @@ -161,6 +194,8 @@ Here is an HTML code block we want to tell the user lives in the `layouts/_defau {{%/* /code */%}} ```` +##### Example 'code' Display + The output of this example will render to the Hugo docs as follows: {{% code file="layouts/_default/single.html" download="single.html" %}} @@ -185,9 +220,11 @@ The output of this example will render to the Hugo docs as follows: ``` {{% /code %}} +Cool, right? + #### Output Code Block -The `output` shortcode is almost identical to the `code` shortcode but doesn't take any more arguments than the required `file`. The purpose is to demonstrate what the output, or *rendered*, HTML will look after Hugo builds its templates: +The `output` shortcode is almost identical to the `code` shortcode but only takes and requires `file`. The purpose of `output` is to show *rendered* HTML and therefore almost always follows another basic code block *or* and instance of the `code` shortcode: ````html {{%/* output file="post/my-first-post/index.html" */%}} @@ -209,26 +246,43 @@ The preceding `output` example will render as follows to the Hugo docs: ## Blockquotes -Blockquotes can be +Blockquotes can be added to the Hugo documentation using [typical Markdown blockquote syntax][bqsyntax]: +```markdown +> Without the fear of falling, there is no joy in flight. +``` + +The preceding blockquote will render as follows in the Hugo docs: + +> Without the threat of punishment, there is no joy in flight. + +However, you can add a quick and easy `<cite>` element (adding on the client via JavaScript) by separating your main blockquote and the citation with ` - `: + +```markdown +> Without the threat of punishment, there is no joy in flight. - [Kobo Abe](https://en.wikipedia.org/wiki/K%C5%8Db%C5%8D_Abe) +``` + +Which will render as follows on the Hugo docs: + +> Without the threat of punishment, there is no joy in flight. - [Kobo Abe][abe] {{% note "Blockquotes `!=` Admonitions" %}} -Previous versions of the Hugo documentation used [Markdown `<blockquote>` syntax](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#blockquotes) to draw attention to content. This is [*not* the intended semantic use of the `<blockquote>` element](http://html5doctor.com/cite-and-blockquote-reloaded/). Use blockquotes when quoting actual text. To note or warn your user of specific information, use the admonition shortcodes that follow. +Previous versions of Hugo documentation used blockquotes to draw attention to text. [This is *not* the intended semantic use of the `<blockquote>` element](http://html5doctor.com/cite-and-blockquote-reloaded/). Use blockquotes when quoting. To note or warn your user of specific information, use the admonition shortcodes that follow. {{% /note %}} -## Admonition Short Codes +## Admonitions -**Admonitions** are common directives in technical documentation. The most popular is that seen in [reStructuredTex Directives][sourceforge]. From the SourceForge documentation: +**Admonitions** are common in technical documentation. The most popular is that seen in [reStructuredTex Directives][sourceforge]. From the SourceForge documentation: > Admonitions are specially marked "topics" that can appear anywhere an ordinary body element can. They contain arbitrary body elements. Typically, an admonition is rendered as an offset block in a document, sometimes outlined or shaded, with a title matching the admonition type. - [SourceForge][sourceforge] -Both `note` and `warning` use a single, *optional* argument for the admonition title, which accepts markdown syntax as well. If the title, a [positional parameter][shortcodeparams] in quotes is missing, the default behavior of the `note` and `warning` shortcodes will be to display the text "Note" and "Warning", respectively. +Both `note` and `warning` use a single, *optional* argument for the admonition title, which accepts markdown syntax as well. If the title, a [positional parameter in quotes][shortcodeparams] is missing, the default behavior of the `note` and `warning` shortcodes will be to display "Note" and "Warning", respectively. ### Note Admonition Shortcode Use the `note` shortcode when you want to draw attention to information subtly. `note` is intended to be less of an interruption in content than is `warning`. -#### `note` Admonition Shortcode Input +#### Example `note` Input {{% code file="note-with-heading.md" %}} ```golang @@ -238,7 +292,7 @@ Here is a piece of information I would like to draw your **attention** to. ``` {{% /code %}} -#### `note` Admonition Shortcode Output (Code) +#### Example `note` Output {{% output file="note-with-heading.html" %}} ```html @@ -248,7 +302,7 @@ Here is a piece of information I would like to draw your **attention** to. ``` {{% /output %}} -#### `note` Admonition Shortcode Display +#### Example `note` Display {{% note "Example Note Admonition" %}} Here is a piece of information I would like to draw your **attention** to. @@ -258,7 +312,7 @@ Here is a piece of information I would like to draw your **attention** to. Use the `warning` shortcode when you want to draw the user's attention to something important. A good usage example is for announcing breaking changes for Hugo versions, known bugs, or templating gotchas. -#### `warning` Admonition Shortcode Input +#### Example `warning` Input {{% code file="warning-admonition-input.md" %}} ```golang @@ -268,7 +322,7 @@ This is a warning, which should be reserved for *important* information like bre ``` {{% /code %}} -#### `warning` Admonition Shortcode Output +#### Example `warning` Output {{% output file="warning-admonition-output.html" %}} ```html @@ -278,7 +332,7 @@ This is a warning, which should be reserved for *important* information like bre ``` {{% /output %}} -#### `warning` Admonition Shortcode Display +#### Example `warning` Display {{% warning "Example Warning Admonition" %}} This is a warning, which should be reserved for *important* information like breaking changes. @@ -301,35 +355,36 @@ The Hugo docs are not especially prescriptive in terms of grammar and usage. We 1. *Front matter* is two words, *Homepage* is one word, *file system* is two words. 3. Be sure to add a value to the `godocref` in content files whenever possible. We want to promote Hugo *and* Golang by demonstrating the inseparable wedding of the two. -## Ask the Community for Code Examples +## Ask for Code Examples -Sometimes you want to contribute to the docs but don't have enough time to provide lengthy examples. If you want to flag a piece of content you feel needs more examples to be better understood by Hugo users, you can add the following field to a content file's front matter: +Sometimes you want to contribute to the docs but don't have enough time to provide lengthy examples. If you want to flag a piece of content as needing more examples, add the following field to your front matter: ``` needsexamples: true ``` -## Hugo Docs Examples Needed, Please Help! +## Please Help! Examples Needed! -The preceding `needsexamples` field generates the following list of files that we feel could benefit from some community-driven examples. The edit link will take you directly to the edit URL for the file if you're more comfortable making small changes in the GitHub interface rather than in your local text editor. +The preceding `needsexamples` is used to generate the following table. The edit link will take you directly to the edit URL for the file in GitHub: {{< needsexamples >}} {{% note "Pull Requests and Branches" %}} -Similar to [contributing to Hugo development](/contribute/contribute-to-hugo-development), the Hugo team expects you to create a separate branch/fork for your generous contributions to Hugo. +Similar to [contributing to Hugo development](/contribute/contribute-to-hugo-development), the Hugo team expects you to create a separate branch/fork when you make your generous contributions to the Hugo docs. {{% /note %}} -## Ordering Content in the Hugo Docs - -If you're contributing to the Hugo docs, do not worry about weight and ordering, especially in the case of a new content file. All Hugo doc sections have been ordered specifically to keep the docs website scalable and easy to use. - ## Be Mindful of Aliases -Use aliases sparingly. The following table shows a list of all the aliases currently being used in the Hugo Docs. If you need to use an alias in your new content file's front matter, be sure to check here first to prevent conflicts. +Use aliases sparingly. The following table shows a list of all the aliases currently being used in the Hugo Docs. Check here first for potential conflicts if you need to use an alias: {{< allaliases >}} +[abe]: https://en.wikipedia.org/wiki/K%C5%8Db%C5%8D_Abe +[archetypes]: /content-management/archetypes/ [archsource]: https://github.com/spf13/hugo/tree/master/docs/archetypes -[archetype]: /content-management/archetypes/ +[bqsyntax]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#blockquotes +[charcount]: http://www.lettercount.com/ +[ghforking]: https://help.github.com/articles/fork-a-repo/ +[hugodev]: /contribute/development/ [shortcodeparams]: content-management/shortcodes/#shortcodes-without-markdown [sourceforge]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#admonitions \ No newline at end of file diff --git a/content/developer-tools/_index.md b/content/developer-tools/_index.md index ee304f356..bdefa6557 100644 --- a/content/developer-tools/_index.md +++ b/content/developer-tools/_index.md @@ -1,16 +1,20 @@ --- title: Developer Tools linktitle: Overview -description: Description for the developer tools section. -date: 2016-11-01 -publishdate: 2016-11-01 -lastmod: 2016-11-01 +description: In addition to Hugo's powerful CLI, there is a large number of community-developed tool chains for Hugo developers. +date: 2016-12-05 +publishdate: 2016-12-05 +lastmod: 2017-02-26 +categories: [developer tools] tags: [] -categories: [] weight: 01 draft: false -slug: -aliases: [] -toc: -notesforauthors: ---- \ No newline at end of file +aliases: [/tools/] +--- + +One of Hugo's greatest strengths is it's passionate---and always evolving---developer community. With the exception of the `highlight` shortcode mentioned in [Syntax Highlighting][syntax], the tools and other projects featured in this section are offerings from commercial services and open-source projects developed by Hugo developers just like you. + +[See the popularity of Hugo compared with other static site generators.][staticgen] + +[staticgen]: https://staticgen.com +[syntax]: /developer-tools/syntax-highlighting/ \ No newline at end of file diff --git a/content/developer-tools/editor-plugins.md b/content/developer-tools/editor-plugins.md new file mode 100644 index 000000000..284b77622 --- /dev/null +++ b/content/developer-tools/editor-plugins.md @@ -0,0 +1,39 @@ +--- +title: Editor Plug-ins for Hugo +linktitle: Editor Plug-ins +description: The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [developer tools] +tags: [editor, plug-ins] +weight: 50 +draft: false +aliases: [] +toc: false +needsreview: true +--- + +The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow. + +## Sublime Text + +* [Hugofy](https://github.com/akmittal/Hugofy). Hugofy is a plugin for Sublime Text 3 to make life easier to use Hugo static site generator. + +## Visual Studio Code + +* [Hugofy](https://marketplace.visualstudio.com/items?itemName=akmittal.hugofy) - Hugofy is a plugin for Visual Studio Code to make life easier to use Hugo static site generator. The source code can be found [here](https://github.com/akmittal/hugofy-vscode). + +## Emacs + +* [hugo.el](https://github.com/yewton/hugo.el). Some helper functions for creating a Website with Hugo. Note that Hugo also supports [Org-mode][formats]. + +## Vim + +* [Vim Hugo Helper](https://github.com/robertbasic/vim-hugo-helper). A small Vim plugin to help me with writing posts with Hugo. + +## Atom + +* [Hugofy](https://atom.io/packages/hugofy) - A Hugo Static Website Generator package for Atom. + +[formats]: /content-management/formats/ \ No newline at end of file diff --git a/content/developer-tools/frontends.md b/content/developer-tools/frontends.md new file mode 100644 index 000000000..e530eca51 --- /dev/null +++ b/content/developer-tools/frontends.md @@ -0,0 +1,31 @@ +--- +title: Frontend Interfaces with Hugo +linktitle: Frontends +description: Do you (or your content authors) prefer a graphical user interface over a text editor? Give these frontends a try. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [developer tools] +tags: [frontend,gui] +weight: 40 +draft: false +aliases: [] +toc: false +--- + +Do you prefer a graphical user interface over a text editor? Give these frontends a try: + +* [rango](https://github.com/stayradiated/rango). Rango is a web frontend for Hugo. It's designed to make it easy to manage a small site, even for people with little computer experience. +* [enwrite](https://github.com/zzamboni/enwrite). Enwrite enables evernote-powered, statically generated blogs and websites. Now posting to your blog or updating your website is as easy as writing a new note in Evernote! +* [caddy-hugo](https://github.com/hacdias/caddy-hugo). `caddy-hugo` is an add-on for [Caddy](https://caddyserver.com/) that delivers a good UI to edit the content of your Hugo website. +* [Hugopit](https://github.com/sjardim/Hugopit). Hugopit is a web-based editor for Hugo built on top of [Cockpit CMS](http://www.getcockpit.com/). +* [Lipi](https://github.com/SohanChy/Lipi). Lipi is a native GUI frontend written in Java to manage your Hugo websites. + + +## Commercial Services + +* [Appernetic.io](https://appernetic.io) is a Hugo Static Site Generator as a Service that is easy to use for non-technical users. + * **Features:** inline PageDown editor, visual tree view, image upload and digital asset management with Cloudinary, site preview, continuous integration with GitHub, atomic deploy and hosting, Git and Hugo integration, autosave, custom domain, project syncing, theme cloning and management. Developers have complete control over the source code and can manage it with GitHub’s deceptively simple workflow. +* [Netlify.com](https://www.netlify.com). Netlify builds, deploys, and hosts your static website or app (Hugo, Jekyll, etc). Netlify offers a drag-and-drop interface and automatic deployments from GitHub or Bitbucket. + * **Features:** global CDN, atomic deploys, ultra-fast DNS, instant cache invalidation, high availability, automated hosting, Git integration, form submission hooks, authentication providers, and custom domains. Developers have complete control over the source code and can manage it with GitHub or Bitbucket's deceptively simple workflow. +* [Forestry.io](https://forestry.io/). Forestry is a simple CMS for Jekyll and Hugo websites with support for GitHub, GitLab, and Bitbucket. Every time an update is made via the CMS, Forestry will commit changes back to your repo and will compile/deploy your website to S3, GitHub Pages, FTP, etc. \ No newline at end of file diff --git a/content/developer-tools/other.md b/content/developer-tools/other.md new file mode 100644 index 000000000..0670a1856 --- /dev/null +++ b/content/developer-tools/other.md @@ -0,0 +1,21 @@ +--- +title: Other Hugo Community Projects +linktitle: Other Projects +description: Some interesting projects developed by the Hugo community that don't quite fit into our other developer tool categories. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [developer tools] +tags: [frontend,gui] +weight: 70 +draft: false +aliases: [] +toc: false +--- + +And for all the other small things around Hugo: + +* [hugo-gallery](https://github.com/icecreammatt/hugo-gallery) lets you create an image gallery for Hugo sites. +* [flickr-hugo-embed](https://github.com/nikhilm/flickr-hugo-embed) prints shortcodes to embed a set of images from an album on Flickr into Hugo. +* [hugo-openapispec-shortcode](https://github.com/tenfourty/hugo-openapispec-shortcode) A shortcode that allows you to include [Open API Spec](https://openapis.org) (formerly known as Swagger Spec) in a page. +* [HugoPhotoSwipe](https://github.com/GjjvdBurg/HugoPhotoSwipe) makes it easy to create image galleries using PhotoSwipe. \ No newline at end of file diff --git a/content/developer-tools/search.md b/content/developer-tools/search.md new file mode 100644 index 000000000..98a590606 --- /dev/null +++ b/content/developer-tools/search.md @@ -0,0 +1,24 @@ +--- +title: Adding Search to your Hugo Website +linktitle: Search +description: Search is not a built-in feature of Hugo, but you have plenty of options for adding search to your Hugo-generated website. See some of the open-source and commercial search options for your newly created website. +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-26 +categories: [developer tools] +tags: [search,tools] +weight: 60 +draft: false +aliases: [] +toc: true +--- + +A static website with a dynamic search function? Yes. As alternatives to embeddable scripts from Google or other search engines, you can provide your visitors a custom search by indexing your content files directly. + +* [Hugoidx](https://github.com/blevesearch/hugoidx) is an experimental application to create a search index. It's built on top of [Bleve](http://www.blevesearch.com/). +* [GitHub Gist for Hugo Workflow](https://gist.github.com/sebz/efddfc8fdcb6b480f567). This gist contains a simple workflow to create a search index for your static website. It uses a simple Grunt script to index all your content files and [lunr.js](http://lunrjs.com/) to serve the search results. +* [hugo-lunr](https://www.npmjs.com/package/hugo-lunr). A simple way to add site search to your static Hugo site using [lunr.js](http://lunrjs.com/). Hugo-lunr will create an index file of any html and markdown documents in your Hugo project. + +## Commercial Search Services + +* [Algolia](https://www.algolia.com/)'s Search API makes it easy to deliver a great search experience in your apps and websites. Algolia Search provides hosted full-text, numerical, faceted, and geolocalized search. \ No newline at end of file diff --git a/content/developer-tools/starter-kits.md b/content/developer-tools/starter-kits.md index 3915c96a1..60cfa3bad 100644 --- a/content/developer-tools/starter-kits.md +++ b/content/developer-tools/starter-kits.md @@ -12,12 +12,15 @@ aliases: [/developer-tools/migrations/,/developer-tools/migrated/] toc: false --- -Know of a Hugo-related project that isn't mentioned here? [Please add it to the list.][addkit] +Know of a Hugo-related starter kit that isn't mentioned here? [Please add it to the list.][addkit] -| Kit | Actively Maintained? | -| --------------------------------- | -------------------- | -| [Victor Hugo](https://github.com/netlify/victor-hugo) | Yes | +{{% note "Starter Kits are Not Maintained by the Hugo Team"%}} +The following starter kits are developed by active members of the Hugo community. If you find yourself having issues with any of the projects, it's best to file an issue directly with the project's maintainer(s). +{{% /note %}} +* [Victor Hugo][]. Victor Hugo is a Hugo boilerplate for creating truly epic websites using Gulp + Webpack as an asset pipeline. Victor Hugo uses post-css and Babel for CSS and JavaScript, respectively. +* [Blaupause][]. Blaupause is a developer-friendly Hugo starter kit based on Gulp tasks. It comes ES6-ready with several helpers for SVG and fonts and basic structure for HTML, SCSS, and JavaScript. - -[addkit]: https://github.com/spf13/hugo/blob/master/docs/content/developer-tools/starter-kits.md \ No newline at end of file +[addkit]: https://github.com/spf13/hugo/edit/master/docs/content/developer-tools/starter-kits.md +[Blaupause]: https://github.com/fspoettel/blaupause +[Victor Hugo]: https://github.com/netlify/victor-hugo \ No newline at end of file diff --git a/content/developer-tools/syntax-highlighting.md b/content/developer-tools/syntax-highlighting.md index e538811de..09d101c9a 100644 --- a/content/developer-tools/syntax-highlighting.md +++ b/content/developer-tools/syntax-highlighting.md @@ -11,7 +11,6 @@ weight: 20 draft: false aliases: [/extras/highlighting/,/extras/highlight/] toc: true -needsreview: --- Hugo provides the ability for you to highlight source code in _two different ways_—either pre-processed server side from your content or to defer the processing to the client side, using a JavaScript library. diff --git a/content/functions/_index.md b/content/functions/_index.md index efa599fbe..61b66827d 100644 --- a/content/functions/_index.md +++ b/content/functions/_index.md @@ -2,13 +2,16 @@ title: Functions Quick Reference linktitle: Quick Reference description: Comprehensive list of Hugo templating functions, including basic and advanced usage examples. +godocref: http://golang.org/pkg/text/template/#hdr-Functions date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 tags: [functions,templating] weight: 01 draft: false -slug: aliases: [/layout/functions/] --- +Go templates are lightweight but extensible. Go itself supplies built-in functions, including comparison operators and other basic tools. These are listed in the [Go template documentation][gofuncs]. Hugo has added the following functions to the basic template logic. + +[gofuncs]: http://golang.org/pkg/text/template/#hdr-Functions \ No newline at end of file diff --git a/content/functions/abslangurl-and-rellangurl.md b/content/functions/abslangurl-and-rellangurl.md index 4ae8e7682..e305300f5 100644 --- a/content/functions/abslangurl-and-rellangurl.md +++ b/content/functions/abslangurl-and-rellangurl.md @@ -1,7 +1,7 @@ --- title: abslangurl and rellangurl linktitle: absLangURL and relLangURL -description: +description: Similar to absURL, but adds the absolute URL with correct language prefix according to site configuration for multilingual and baseURL. godocref: date: 2017-02-01 publishdate: 2017-02-01 @@ -11,7 +11,7 @@ categories: [functions] signature: workson: [] hugoversion: -relatedfuncs: [] +relatedfuncs: [relLangURL] deprecated: false aliases: [/functions/absurl/,/functions/rellangurl/] needsexamples: true diff --git a/content/functions/absurl.md b/content/functions/absurl.md new file mode 100644 index 000000000..e2bdfb22e --- /dev/null +++ b/content/functions/absurl.md @@ -0,0 +1,51 @@ +--- +title: absurl +linktitle: absURL +description: Given a string, prepends the full absolute URL according to position in file structure and the configured baseURL. +godocref: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [functions] +tags: [urls] +signature: +workson: [] +hugoversion: +relatedfuncs: [relURL] +deprecated: false +aliases: [] +--- + +Both `absURL` and `relURL` consider the configured value of `baseURL` in your site's [`config` file][configuration]. Given a `baseURL` set to `http://yoursite.com/hugo/`: + +```golang +{{ "mystyle.css" | absURL }} → "http://yoursite.com/hugo/mystyle.css" +{{ "mystyle.css" | relURL }} → "/hugo/mystyle.css" +{{ "http://gohugo.io/" | relURL }} → "http://gohugo.io/" +{{ "http://gohugo.io/" | absURL }} → "http://gohugo.io/" +``` + +The last two examples may look strange but can be very useful. For example, the following shows how to use `absURL` in [JSON-LD structured data (SEO)][jsonld], where some of your images for a piece of content may or may not be hosted locally: + +{{% code file="layouts/partials/schemaorg-metadata.html" download="schemaorg-metadata.html" %}} +```html +<script type="application/ld+json"> +{ + "@context" : "http://schema.org", + "@type" : "BlogPosting", + "image" : {{ apply .Params.images "absURL" "." }} +} +</script> +``` +{{% /code %}} + +The above uses the [apply function][] and also exposes how the Go template parser JSON-encodes objects inside `<script>` tags. See [the safeJS template function][safejs] for examples of how to tell Hugo not to escape strings inside of such tags. + +{{% note "Ending Slash" %}} +`absURL` and `relURL` are smart about missing slashes, but they will *not* add a closing slash to a URL if it is not present. +{{% /note %}} + +[apply function]: /functions/apply/ +[configuration]: /getting-started/configuration/ +[jsonld]: https://developers.google.com/search/docs/guides/intro-structured-data +[safejs]: /functions/safejs \ No newline at end of file diff --git a/content/functions/after.md b/content/functions/after.md index c03fd1f4a..acd884721 100644 --- a/content/functions/after.md +++ b/content/functions/after.md @@ -1,23 +1,27 @@ --- title: after -linktitle: -description: +linktitle: after +description: Slices an array to only the items after the Nth item. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [iteration] signature: workson: [] hugoversion: -relatedfuncs: [] +relatedfuncs: [last] deprecated: false -draft: false aliases: [] --- -## Example +`after` slices an array to only the items after the *N*th item. Combining `after` with `first` uses both use both halves of an array split at item *N*. -## Advanced Example +Works on [lists](/templates/list/), [taxonomies](/taxonomies/displaying/), [terms](/templates/terms/), [groups](/templates/list/) + +e.g. + + {{ range after 10 .Data.Pages }} + {{ .Render "title" }} + {{ end }} diff --git a/content/functions/apply.md b/content/functions/apply.md index e14283995..4bc251e0e 100644 --- a/content/functions/apply.md +++ b/content/functions/apply.md @@ -15,13 +15,12 @@ relatedfuncs: [] deprecated: false draft: false aliases: [] -needsreview: true --- Given a map, array, or slice, `apply` returns a new slice with a function applied over it. `apply` expects at least three parameters, depending on the function being applied. 1. The first parameter is the sequence to operate on -2. The second parameter is the name of the function as a string, which must be in the [Hugo function map][functions]. +2. The second parameter is the name of the function as a string, which must be the name of a valid [Hugo function][functions]. 3. After that, the parameters to the applied function are provided, with the string `"."` standing in for each element of the sequence the function is to be applied against. Here is an example of a content file with `name:` as a front matter field: @@ -80,9 +79,9 @@ If you have `post-tag-list.html` and `post-tag-link.html` as [partials][], you * ``` {{% /code %}} -This works, but the complexity of `post-tag-list.html` is fairly high: the Hugo template needs to perform special behavior for the case where there’s only one tag, and it has to treat the last tag as special. Additionally, the tag list will be rendered something like `Tags: tag1 , tag2 , tag3` because of the way that the HTML is generated and then interpreted by a browser. +This works, but the complexity of `post-tag-list.html` is fairly high. The Hugo template needs to perform special behavior for the case where there’s only one tag, and it has to treat the last tag as special. Additionally, the tag list will be rendered something like `Tags: tag1 , tag2 , tag3` because of the way that the HTML is generated and then interpreted by a browser. -This first version of `layouts/partials/post-tag-list.html` separates all of the operations for ease of reading; the combined and DRYer version is shown next: +This first version of `layouts/partials/post-tag-list.html` separates all of the operations for ease of reading. The combined and DRYer version is shown next: ```html {{ with .Params.tags }} @@ -96,7 +95,7 @@ This first version of `layouts/partials/post-tag-list.html` separates all of the {{ end }} ``` -Now in the complete version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [chomp][] off stray newlines, and join the tags together in a delimited list for presentation. Here is a DRYer version of the preceding example: +Now in the completed version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [chomp][] off stray newlines, and join the tags together in a delimited list for presentation. Here is an even DRYer version of the preceding example: {{% code file="layouts/partials/post-tag-list.html" download="post-tag-list.html" %}} ```html @@ -113,8 +112,8 @@ Now in the complete version, you can sort the tags, convert the tags to links wi `apply` does not work when receiving the sequence as an argument through a pipeline. {{% /note %}} -[chome]: /functions/chomp/ -[delimit]: /functions/delimit/ -[functions]: /functions/ +[chomp]: /functions/chomp/ "See documentation for the chomp function" +[delimit]: /functions/delimit/ "See documentation for the delimit function" +[functions]: /functions/ "See the full list of Hugo functions to see what can be passed as an argument to the apply function." [partials]: /templates/partials/ -[range]: /functions/range/ \ No newline at end of file +[range]: /functions/range/ "Learn the importance of the range function, a fundamental keyword in both Hugo templates and the Go programming language." \ No newline at end of file diff --git a/content/functions/base64.md b/content/functions/base64.md index ad675f273..f5a8c17ea 100644 --- a/content/functions/base64.md +++ b/content/functions/base64.md @@ -19,14 +19,14 @@ aliases: [] `base64Encode` and `base64Decode` let you easily decode content with a base64 encoding and vice versa through pipes. Let's take a look at an example: -{{% code "base64-input.html" %}} +{{% code file="base64-input.html" %}} ```html <p>Hello world = {{ "Hello world" | base64Encode }}</p> <p>SGVsbG8gd29ybGQ = {{ "SGVsbG8gd29ybGQ=" | base64Decode }}</p> ``` {{% /code %}} -{{% output "base-64-output.html" %}} +{{% output file="base-64-output.html" %}} ```html <p>Hello world = SGVsbG8gd29ybGQ=</p> <p>SGVsbG8gd29ybGQ = Hello world</p> diff --git a/content/functions/count.md b/content/functions/count.md deleted file mode 100644 index beebcf74e..000000000 --- a/content/functions/count.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: count -linktitle: Count -description: -godocref: -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 -tags: [] -categories: [functions] -toc: -signature: -workson: [] -hugoversion: -relatedfuncs: [] -deprecated: false -draft: false -aliases: [] ---- - -[Link to Taxonomy templates](/templates/taxonomy-templates/) diff --git a/content/functions/echoparam.md b/content/functions/echoparam.md index 14edc49eb..6cac6cbd4 100644 --- a/content/functions/echoparam.md +++ b/content/functions/echoparam.md @@ -1,14 +1,13 @@ --- title: echoparam linktitle: echoParam -description: +description: Prints a parameter if it is set. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: @@ -18,7 +17,8 @@ draft: false aliases: [] --- -## Example - -## Advanced Example +`echoParam` prints a parameter if it is set. +``` +{{ echoParam .Params "project_url" }} +``` \ No newline at end of file diff --git a/content/functions/emojify.md b/content/functions/emojify.md index 2ee84c0e5..896d1fc72 100644 --- a/content/functions/emojify.md +++ b/content/functions/emojify.md @@ -15,15 +15,15 @@ relatedfuncs: [] deprecated: false --- -Runs the string through the Emoji emoticons processor. The result will be declared as "safe" to prevent Go templates from filtering it. +Runs the string through the Emoji emoticons processor. The result will be declared as "safe" to prevent Go templates from filtering it as unsafe HTML. -See the [Emoji cheat sheet][emojis] for available emoticons. The `emojify` function can be called in your templates but not content. +See the [Emoji cheat sheet][emojis] for available emoticons. ``` {{ "I :heart: Hugo" | emojify }} ``` -However, emojis are most often seen inline. The following is a very simple [partial template][partials] you can use to add emojis directly to your content files. It is also the `emo` shortcode used for the Hugo docs. +The `emojify` function can be called in your templates but not directly in your content files. However, emojis are most often seen inline. The following is a very simple [shortcode template][sc] you can use to add emojis quickly while you write content. It is also the `emo` shortcode used for the Hugo docs. ([See Hugo Docs Shortcodes Source][scsource].) {{% code file="layouts/shortcodes/emo.html" download="emo.html" %}} ```golang @@ -39,9 +39,10 @@ I {{</* emo ":heart:" */>}} Hugo! ``` {{% /code %}} -The output of which is... +The preceding use of the `emo` shortcode called in content will display as follows: I {{< emo ":heart:" >}} Hugo! [emojis]: http://www.emoji-cheat-sheet.com/ -[partials]: /templates/partials/ \ No newline at end of file +[sc]: /templates/shortcode-templates/ +[scsource]: https://github.com/spf13/hugo/tree/master/docs/layouts/shortcodes \ No newline at end of file diff --git a/content/functions/eq.md b/content/functions/eq.md new file mode 100644 index 000000000..24b6d04e0 --- /dev/null +++ b/content/functions/eq.md @@ -0,0 +1,23 @@ +--- +title: eq +linktitle: eq +description: Returns true if the parameters are equal. +godocref: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [functions] +tags: [operators,logic] +signature: +workson: [] +hugoversion: +relatedfuncs: [] +deprecated: false +aliases: [] +--- + +`eq` returns true if the parameters are equal. + +``` +{{ if eq .Section "blog" }}current{{ end }} +``` \ No newline at end of file diff --git a/content/functions/findRe.md b/content/functions/findRe.md index ecc0f10c7..2532b4500 100644 --- a/content/functions/findRe.md +++ b/content/functions/findRe.md @@ -1,24 +1,60 @@ --- -title: findRe -linktitle: -description: +title: findre +linktitle: findRE +description: Returns a list of strings that match the regular expression. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [regex] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +Returns a list of strings that match the regular expression. By default all matches will be included. The number of matches can be limitted with an optional third parameter. -## Advanced Example +The example below returns a list of all second level headers (`<h2>`) in the content: +``` +{{ findRE "<h2.*?>(.|\n)*?</h2>" .Content }} +``` + +You can limit the number of matches in the list with a third parameter. The following example shows how to limit the returned value to just one match (or none, if there are no matched substrings): + +```golang +{{ findRE "<h2.*?>(.|\n)*?</h2>" .Content 1 }} + <!-- returns ["<h2 id="#foo">Foo</h2>"] --> +``` + +## `findRE` Example: Building a Table of Contents + +`findRE` allows us to build an automatically generated table of contents that could be used for a simple scrollspy if you don't want to use [Hugo's native .TableOfContents feature][toc]. The following shows how this could be done in a [partial template][partials]: + +{{% code file="layouts/partials/toc.html" download="toc.html" %}} +```html +{{ $headers := findRE "<h2.*?>(.|\n)*?</h2>" .Content }} +{{ if ge (len $headers) 1 }} + <ul> + {{ range $headers }} + <li> + <a href="#{{ . | plainify | urlize }}"> + {{ . | plainify }} + </a> + </li> + {{ end }} + </ul> +{{ end }} +``` +{{% /code %}} + +The preceding snippet tries to find all second-level headers and generate a list where at least one header is found. [`plainify`][] strips the HTML and [`urlize`][] converts the header into a valid URL. + +[partials]: /templates/partials/ +[`plainify`]: /functions/plainify/ +[toc]: /content-management/toc/ +[`urlize`]: /functions/urlize \ No newline at end of file diff --git a/content/functions/first.md b/content/functions/first.md index 13bbd1e43..3161b9abb 100644 --- a/content/functions/first.md +++ b/content/functions/first.md @@ -1,24 +1,26 @@ --- title: first linktitle: first -description: +description: Slices an array to only the first Nth elements. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [iteration] signature: -workson: [] +workson: [lists,taxonomies,terms,groups] hugoversion: -relatedfuncs: [] +relatedfuncs: [after,last] deprecated: false -draft: false aliases: [] --- -## Example +`first` slices an array to only the first _N_th elements. -## Advanced Example +```golang +{{ range first 10 .Data.Pages }} + {{ .Render "summary" }} +{{ end }} +``` diff --git a/content/functions/getenv.md b/content/functions/getenv.md index 4e2e05acd..325f3ff08 100644 --- a/content/functions/getenv.md +++ b/content/functions/getenv.md @@ -1,24 +1,28 @@ --- title: getenv -linktitle: -description: +linktitle: getenv +description: Returns the value of an environment variable. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`getenv` returns the value of an environment variable. -## Advanced Example +Takes a string containing the name of the variable as input. Returns +an empty string if the variable is not set, otherwise returns the +value of the variable. Note that in Unix-like environments, the +variable must also be exported in order to be seen by `hugo`. +``` +{{ getenv "HOME" }} +``` \ No newline at end of file diff --git a/content/functions/hasPrefix.md b/content/functions/hasPrefix.md index a69e2902c..d413b60ff 100644 --- a/content/functions/hasPrefix.md +++ b/content/functions/hasPrefix.md @@ -1,24 +1,21 @@ --- -title: hasPrefix -linktitle: -description: +title: hasprefix +linktitle: hasPrefix +description: Tests whether a string begins with prefix. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example - -## Advanced Example +`hasPrefix` tests whether a string begins with prefix. +* `{{ hasPrefix "Hugo" "Hu" }}` → true \ No newline at end of file diff --git a/content/functions/htmlEscape.md b/content/functions/htmlEscape.md index 1fac5eb2b..ceeb1474d 100644 --- a/content/functions/htmlEscape.md +++ b/content/functions/htmlEscape.md @@ -1,24 +1,25 @@ --- title: htmlEscape linktitle: -description: +description: Returns the given string with the critical reserved HTML codes escaped. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings, html] signature: workson: [] hugoversion: -relatedfuncs: [] +relatedfuncs: [htmlUnescape] deprecated: false -draft: false aliases: [] --- -## Example +`htmlEscape` returns the given string with the critical reserved HTML codes escaped, such that `&` becomes `&` and so on. It escapes only: `<`, `>`, `&`, `'` and `"`. -## Advanced Example +Bear in mind that, unless content is passed to `safeHTML`, output strings are escaped usually by the processor anyway. +``` +{{ htmlEscape "Hugo & Caddy > Wordpress & Apache" }} → "Hugo & Caddy > Wordpress & Apache" +``` \ No newline at end of file diff --git a/content/functions/htmlUnescape.md b/content/functions/htmlUnescape.md index 77adf03b0..f6c4d0d2a 100644 --- a/content/functions/htmlUnescape.md +++ b/content/functions/htmlUnescape.md @@ -1,24 +1,25 @@ --- title: htmlUnescape -linktitle: -description: +linktitle: htmlUnescape +description: Returns the given string with HTML escape codes un-escaped. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: -relatedfuncs: [] +relatedfuncs: [htmlEscape] deprecated: false -draft: false aliases: [] --- -## Example +`htmlUnescape` returns the given string with HTML escape codes un-escaped. This un-escapes more codes than `htmlEscape` escapes, including `#` codes and pre-UTF8 escapes for accented characters. It defers completely to the Go `html.UnescapeString` function, so functionality is consistent with that codebase. -## Advanced Example +Remember to pass the output of this to `safeHTML` if fully un-escaped characters are desired. Otherwise, the output will be escaped again as normal. +``` +{{ htmlUnescape "Hugo & Caddy > Wordpress & Apache" }} → "Hugo & Caddy > Wordpress & Apache" +``` \ No newline at end of file diff --git a/content/functions/humanize.md b/content/functions/humanize.md index 633673410..64631c46f 100644 --- a/content/functions/humanize.md +++ b/content/functions/humanize.md @@ -1,24 +1,28 @@ --- title: humanize linktitle: -description: +description: Returns the humanized version of an argument with the first letter capitalized. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings,casing] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`humanize` returns the humanized version of an argument with the first letter capitalized. If the input is either an int64 value or the string representation of an integer, humanize returns the number with the proper ordinal appended. -## Advanced Example + +``` +{{humanize "my-first-post"}} → "My first post" +{{humanize "myCamelPost"}} → "My camel post" +{{humanize "52"}} → "52nd" +{{humanize 103}} → "103rd" +``` diff --git a/content/functions/i18n.md b/content/functions/i18n.md index a28d0800a..18a408ecb 100644 --- a/content/functions/i18n.md +++ b/content/functions/i18n.md @@ -26,4 +26,6 @@ This translates a piece of content based on your `i18n/en-US.yaml` (and friends) `T` is an alias to `i18n`. E.g. `{{ T "translation_id" }}`. {{% /note %}} -For more information about string translations, see [Translation of strings](/content-management/multilingual/#translation-of-strings). \ No newline at end of file +For more information about string translations, see [Translation of Strings in Multilingual Mode][multistrings]. + +[multistrings]: /content-management/multilingual/#translation-of-strings \ No newline at end of file diff --git a/content/functions/in.md b/content/functions/in.md index 06e28779e..9ed28f74b 100644 --- a/content/functions/in.md +++ b/content/functions/in.md @@ -1,24 +1,30 @@ --- title: in linktitle: -description: +description: Checks if an element is in an array or slice--or a substring in a string---and returns a boolean. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`in` checks if an element is in an array (or slice) and returns a corresponding boolean value. The elements supported are strings, integers and floats, although only float64 will match as expected. -## Advanced Example +In addition, `in` can also check if a substring exists in a string. +``` +{{ if in .Params.tags "Git" }}Follow me on GitHub!{{ end }} +``` + + +``` +{{ if in "this string contains a substring" "substring" }}Substring found!{{ end }} +``` \ No newline at end of file diff --git a/content/functions/intersect.md b/content/functions/intersect.md index ac71b5f43..f7792470e 100644 --- a/content/functions/intersect.md +++ b/content/functions/intersect.md @@ -1,24 +1,42 @@ --- title: intersect linktitle: intersect -description: +description: Returns the common elements of two arrays or slices. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +Given two arrays (or slices), `intersect` returns the common elements. The elements supported are strings, integers and floats (only float64). -## Advanced Example +A useful example of `intersect` functionality is a "related posts" block. `isset` allows us to create a list of links to other posts that have tags that intersect with the tags in the current post. +The following is an example of a "related posts" [partial template][partials] that could be added to a [single page template][single]: + +{{% code file="layouts/partials/related-posts.html" download="related-posts.html" %}} +```html +<ul> +{{ $page_link := .Permalink }} +{{ $tags := .Params.tags }} +{{ range .Site.Pages }} + {{ $page := . }} + {{ $has_common_tags := intersect $tags .Params.tags | len | lt 0 }} + {{ if and $has_common_tags (ne $page_link $page.Permalink) }} + <li><a href="{{ $page.Permalink }}">{{ $page.Title }}</a></li> + {{ end }} +{{ end }} +</ul> +``` +{{% /code %}} + +[partials]: /templates/partials/ +[single]: /templates/single-page-template/ \ No newline at end of file diff --git a/content/functions/isset.md b/content/functions/isset.md index 5b8a020c7..52776d881 100644 --- a/content/functions/isset.md +++ b/content/functions/isset.md @@ -1,24 +1,25 @@ --- title: isset linktitle: isset -description: +description: Returns true if the parameter is set. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`isset` returns true if the parameter is set. +Takes either a slice, array or channel and an index or a map and a key as input. -## Advanced Example +``` +{{ if isset .Params "project_url" }} {{ index .Params "project_url" }}{{ end }} +``` diff --git a/content/functions/jsonify.md b/content/functions/jsonify.md index 6611d68a6..3468ae79e 100644 --- a/content/functions/jsonify.md +++ b/content/functions/jsonify.md @@ -1,24 +1,24 @@ --- title: jsonify -linktitle: -description: +linktitle: jsonify +description: Encodes a given object to JSON. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`jsonify` encodes a given object to JSON. -## Advanced Example +``` +{{ dict "title" .Title "content" .Plain | jsonify }} +``` diff --git a/content/functions/last.md b/content/functions/last.md index c008bcab7..d90361299 100644 --- a/content/functions/last.md +++ b/content/functions/last.md @@ -1,7 +1,7 @@ --- title: last linktitle: last -description: +description: Slices an array to only the last Nth elements. godocref: date: 2017-02-01 publishdate: 2017-02-01 @@ -18,7 +18,13 @@ draft: false aliases: [] --- -## Example +`last` slices an array to only the last _N_th elements. -## Advanced Example +Works on [lists](/templates/list/), [taxonomies](/taxonomies/displaying/), [terms](/templates/terms/), [groups](/templates/list/) + +``` +{{ range last 10 .Data.Pages }} + {{ .Render "summary" }} +{{ end }} +``` diff --git a/content/functions/lower.md b/content/functions/lower.md index f35142cd5..95410b6b3 100644 --- a/content/functions/lower.md +++ b/content/functions/lower.md @@ -1,23 +1,23 @@ --- title: lower linktitle: lower -description: +description: Converts all characters in the provided string to lowercase. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings,casing] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`lower` converts all characters in the provided string to lowercase. -## Advanced Example +``` +{{lower "BatMan"}} → "batman" +``` diff --git a/content/functions/markdownify.md b/content/functions/markdownify.md index 39d8ce81c..9e297c7e8 100644 --- a/content/functions/markdownify.md +++ b/content/functions/markdownify.md @@ -1,24 +1,23 @@ --- title: markdownify linktitle: markdownify -description: +description: Runs the provided string through the Markdown processor. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 tags: [markdown,content] categories: [functions] -toc: signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example - -## Advanced Example +`markdownify` runs the provided string through the Markdown processor. The result will be declared as "safe" so Go/html templates do not filter it. +``` +{{ .Title | markdownify }} +``` \ No newline at end of file diff --git a/content/functions/plainify.md b/content/functions/plainify.md index a8271161f..8de5924ee 100644 --- a/content/functions/plainify.md +++ b/content/functions/plainify.md @@ -1,23 +1,23 @@ --- title: plainify -linktitle: -description: +linktitle: plainify +description: Strips any HTML and returns the plain text version of the provided string. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`plainify` strips any HTML and returns the plain text version of the provided string. -## Advanced Example +``` +{{ "<b>BatMan</b>" | plainify }} → "BatMan" +``` diff --git a/content/functions/pluralize.md b/content/functions/pluralize.md index b585631fc..bafbd97e2 100644 --- a/content/functions/pluralize.md +++ b/content/functions/pluralize.md @@ -1,24 +1,24 @@ --- title: pluralize -linktitle: -description: +linktitle: pluralize +description: Pluralizes the given word according to a set of common English pluralization rules godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`pluralize` will pluralize the given word according to a set of common English pluralization rules. -## Advanced Example +``` +{{ "cat" | pluralize }} → "cats" +``` diff --git a/content/functions/relLangURL.md b/content/functions/relLangURL.md new file mode 100644 index 000000000..96753fc0b --- /dev/null +++ b/content/functions/relLangURL.md @@ -0,0 +1,29 @@ +--- +title: rellangurl +linktitle: relLangURL +description: Similar to relURL, but adds the relative URL with correct language prefix according to site configuration for multilingual. +godocref: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +tags: [multilingual,i18n,urls] +categories: [functions] +signature: +workson: [] +hugoversion: +relatedfuncs: [] +deprecated: false +aliases: [/functions/absurl/,/functions/rellangurl/] +needsexamples: true +--- + +`absLangURL` and `relLangURL` functions are similar to their `absURL` and `relURL` relatives but will add the correct language prefix when the site is configured with more than one language. (See [Configuring Multilingual][multiliconfig]) + +So for a site `baseURL` set to `http://yoursite.com/hugo/` and the current language is `en`: + +```golang +{{ "blog/" | absLangURL }} → "http://yoursite.com/hugo/en/blog/" +{{ "blog/" | relLangURL }} → "/hugo/en/blog/" +``` + +[multiliconfig]: /content-management/multilingual/#configuring-multilingual-mode \ No newline at end of file diff --git a/content/functions/absurl-and-relurl.md b/content/functions/relurl.md similarity index 77% rename from content/functions/absurl-and-relurl.md rename to content/functions/relurl.md index ba38807e1..0e4210b57 100644 --- a/content/functions/absurl-and-relurl.md +++ b/content/functions/relurl.md @@ -1,21 +1,19 @@ --- -title: absurl and relurl -linktitle: absURL and relURL -description: +title: relurl +linktitle: relURL +description: Given a string, prepends the relative URL according to a page's position in the project directory structure. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [urls] categories: [functions] -toc: +tags: [urls] signature: workson: [] hugoversion: -relatedfuncs: [] +relatedfuncs: [absURL] deprecated: false -draft: false -aliases: [/functions/relurl/] +aliases: [] --- Both `absURL` and `relURL` consider the configured value of `baseURL` in your site's [`config` file][configuration]. Given a `baseURL` set to `http://yoursite.com/hugo/`: @@ -41,7 +39,7 @@ The last two examples may look strange but can be very useful. For example, the ``` {{% /code %}} -The above uses the [apply function][] and also exploits the fact that the Go template parser JSON-encodes objects inside `<script>` tags. See [the safeJS template function][safejs] for examples of how to tell Hugo not to escape strings inside of such tags. +The above uses the [apply function][] and also exposes how the Go template parser JSON-encodes objects inside `<script>` tags. See [the safeJS template function][safejs] for examples of how to tell Hugo not to escape strings inside of such tags. {{% note "Ending Slash" %}} `absURL` and `relURL` are smart about missing slashes, but they will *not* add a closing slash to a URL if it is not present. diff --git a/content/functions/replace.md b/content/functions/replace.md index 9b966c859..61f89fb0a 100644 --- a/content/functions/replace.md +++ b/content/functions/replace.md @@ -1,24 +1,24 @@ --- title: replace -linktitle: -description: +linktitle: replace +description: Replaces all occurrences of the search string with the replacement string. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`replace` replaces all occurrences of the search string with the replacement string: -## Advanced Example +``` +`{{ replace "Batman and Robin" "Robin" "Catwoman" }}` → "Batman and Catwoman" +``` diff --git a/content/functions/replacere.md b/content/functions/replacere.md new file mode 100644 index 000000000..40f6a3688 --- /dev/null +++ b/content/functions/replacere.md @@ -0,0 +1,24 @@ +--- +title: replacere +linktitle: replaceRE +description: Replaces all occurrences of a regular expression with the replacement pattern. +godocref: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [functions] +tags: [regex] +signature: +workson: [] +hugoversion: +relatedfuncs: [] +deprecated: false +aliases: [] +--- + +Replaces all occurrences of a regular expression with the replacement pattern. + +```golang +{{ replaceRE "^https?://([^/]+).*" "$1" "http://gohugo.io/docs" }}` → "gohugo.io" +{{ "http://gohugo.io/docs" | replaceRE "^https?://([^/]+).*" "$1" }}` → "gohugo.io" +``` \ No newline at end of file diff --git a/content/functions/safeCSS.md b/content/functions/safeCSS.md index a9fc9c8d9..ce8f0f16b 100644 --- a/content/functions/safeCSS.md +++ b/content/functions/safeCSS.md @@ -1,24 +1,36 @@ --- -title: safeCSS -linktitle: -description: -godocref: +title: safecss +linktitle: safeCSS +description: Declares the provided string as a known "safe" CSS string. +godocref: https://golang.org/src/html/template/content.go?s=919:929#L15 date: 2017-02-01 publishdate: 2017-02-01 -lastmod: 2017-02-01 -tags: [style,css,strings] +lastmod: 2017-02-26 categories: [functions] -toc: +tags: [style,css,strings] signature: workson: [] hugoversion: -relatedfuncs: [] +relatedfuncs: [safeHTML,safeHTMLAttr,] deprecated: false -draft: false aliases: [] --- -## Example +`safeCSS` declares the provided string as a known "safe" CSS string so that Go html/templates will not filter it as unsafe. -## Advanced Example +In this context, *safe* means CSS content that matches any of the following: + +1. The CSS3 stylesheet production, such as `p { color: purple }`. +2. The CSS3 rule production, such as `a[href=~"https:"].foo#bar`. +3. CSS3 declaration productions, such as `color: red; margin: 2px`. +4. The CSS3 value production, such as `rgba(0, 0, 255, 127)`. + +Example: Given `style = "color: red;"` defined in the front matter of your `.md` file: + +* `<p style="{{ .Params.style | safeCSS }}">…</p>` ⇒ `<p style="color: red;">…</p>` (Good!) +* `<p style="{{ .Params.style }}">…</p>` ⇒ `<p style="ZgotmplZ">…</p>` (Bad!) + +{{% note "ZgotmplZ" %}} +ZgotmplZ is a special value that indicates that unsafe content reached a CSS or URL context. +{{% /note %}} diff --git a/content/functions/safeHTMLAttr.md b/content/functions/safeHTMLAttr.md index 93a96f7a7..cd8637b1d 100644 --- a/content/functions/safeHTMLAttr.md +++ b/content/functions/safeHTMLAttr.md @@ -1,24 +1,32 @@ --- title: safeHTMLAttr linktitle: safeHTMLAttr -description: -godocref: +description: Declares the provided string as a "safe" HTML attribute. +godocref: https://golang.org/src/html/template/content.go?s=1661:1676#L33 date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [strings] categories: [functions] -toc: +tags: [strings] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`safeHTMLAttr` declares the provided string as a "safe" HTML attribute +from a trusted source (e.g., ` dir="ltr"`) to prevent Go html/template from filtering it as unsafe. -## Advanced Example +Example: Given a site-wide `config.toml` that contains this menu entry: + +```toml +[[menu.main]] + name = "IRC: #golang at freenode" + url = "irc://irc.freenode.net/#golang" +``` + +* `<a href="{{ .URL }}">` ⇒ `<a href="#ZgotmplZ">` (Bad!) +* `<a {{ printf "href=%q" .URL | safeHTMLAttr }}>` ⇒ `<a href="irc://irc.freenode.net/#golang">` (Good!) diff --git a/content/functions/safeJS.md b/content/functions/safeJS.md index 5cbbaae27..7f0c5ba0f 100644 --- a/content/functions/safeJS.md +++ b/content/functions/safeJS.md @@ -1,14 +1,13 @@ --- title: safeJS linktitle: -description: -godocref: +description: Declares the provided string as a known "safe" JavaScript string. +godocref: https://golang.org/src/html/template/content.go?s=2548:2557#L51 date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [strings] categories: [functions] -toc: +tags: [strings] signature: workson: [] hugoversion: @@ -18,7 +17,14 @@ draft: false aliases: [] --- -## Example +`safeJs` declares the provided string as a known "safe" Javascript string so that Go html/templates will not escape it as unsafe. -## Advanced Example +In this context, *safe* means the string encapsulates a known safe EcmaScript5 Expression (e.g., `(x + y * z())`). + +Template authors are responsible for ensuring that typed expressions do not break the intended precedence and that there is no statement/expression ambiguity as when passing an expression like `{ foo:bar() }\n['foo']()`, which is both a valid expression and a valid program with a very different meaning. + +Example: Given `hash = "619c16f"` defined in the front matter of your `.md` file: + +* `<script>var form_{{ .Params.hash | safeJS }};…</script>` ⇒ `<script>var form_619c16f;…</script>` (Good!) +* `<script>var form_{{ .Params.hash }};…</script>` ⇒ `<script>var form_"619c16f";…</script>` (Bad!) diff --git a/content/functions/seq.md b/content/functions/seq.md index 8333a0491..52d3f9480 100644 --- a/content/functions/seq.md +++ b/content/functions/seq.md @@ -1,14 +1,13 @@ --- title: seq linktitle: -description: +description: Creates a sequence of integers. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [] signature: workson: [] hugoversion: @@ -18,7 +17,14 @@ draft: false aliases: [] --- -## Example +`seq` creates a sequence of integers. It's named and used in the model of [GNU's seq][gnuseq]. -## Advanced Example +``` +3 → 1, 2, 3 +1 2 4 → 1, 3 +-3 → -1, -2, -3 +1 4 → 1, 2, 3, 4 +1 -2 → 1, 0, -1, -2 +``` +[gnuseq]: http://www.gnu.org/software/coreutils/manual/html_node/seq-invocation.html#seq-invocation \ No newline at end of file diff --git a/content/functions/singularize.md b/content/functions/singularize.md index 5f23b907e..d1f50feee 100644 --- a/content/functions/singularize.md +++ b/content/functions/singularize.md @@ -1,24 +1,22 @@ --- title: singularize -linktitle: -description: +linktitle: singularize +description: Converts a word according to a set of common English singularization rules. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings,singular] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`singularize` converts a word according to a set of common English singularization rules. -## Advanced Example +`{{ "cats" | singularize }}` → "cat" diff --git a/content/functions/slicestr.md b/content/functions/slicestr.md index ac984fb71..ac73ea46d 100644 --- a/content/functions/slicestr.md +++ b/content/functions/slicestr.md @@ -1,24 +1,26 @@ --- title: slicestr linktitle: -description: +description: Creates a slice of a half-open range, including start and end indices. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +Slicing in `slicestr` is done by specifying a half-open range with two indices; i.e., a `start` and and `end`. -## Advanced Example +For example, 1 and 4 creates a slice including elements 1 through 3. +The `end` index can be omitted; it defaults to the string's length. + +* `{{slicestr "BatMan" 3}}` → "Man" +* `{{slicestr "BatMan" 0 3}}` → "Bat" diff --git a/content/functions/sort.md b/content/functions/sort.md index 97f756af7..d5a86e146 100644 --- a/content/functions/sort.md +++ b/content/functions/sort.md @@ -1,24 +1,62 @@ --- title: sort linktitle: sort -description: +description: Sorts maps, arrays, and slices and returns a sorted slice. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [ordering] categories: [functions] -toc: +tags: [ordering,sorting,lists] signature: -workson: [] +workson: [lists,taxonomies,terms,groups] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`sort` sorts maps, arrays, and slices and returns a sorted slice. A sorted array of map values will be returned with the keys eliminated. There are two optional arguments: `sortByField` and `sortAsc`. If left blank, sort will sort by keys (for maps) in ascending order as its default behavior. -## Advanced Example +```toml ++++ +tags: [ "tag3", "tag1", "tag2" ] ++++ + +// Site config ++++ +[params.authors] + [params.authors.Derek] + "firstName" = "Derek" + "lastName" = "Perkins" + [params.authors.Joe] + "firstName" = "Joe" + "lastName" = "Bergevin" + [params.authors.Tanner] + "firstName" = "Tanner" + "lastName" = "Linsley" ++++ +``` + +``` +// Use default sort options - sort by key / ascending +Tags: {{ range sort .Params.tags }}{{ . }} {{ end }} + +→ Outputs Tags: tag1 tag2 tag3 + +// Sort by value / descending +Tags: {{ range sort .Params.tags "value" "desc" }}{{ . }} {{ end }} + +→ Outputs Tags: tag3 tag2 tag1 + +// Use default sort options - sort by value / descending +Authors: {{ range sort .Site.Params.authors }}{{ .firstName }} {{ end }} + +→ Outputs Authors: Derek Joe Tanner + +// Use default sort options - sort by value / descending +Authors: {{ range sort .Site.Params.authors "lastName" "desc" }}{{ .lastName }} {{ end }} + +→ Outputs Authors: Perkins Linsley Bergevin +``` diff --git a/content/functions/split.md b/content/functions/split.md index de76213e3..a11e903ef 100644 --- a/content/functions/split.md +++ b/content/functions/split.md @@ -1,24 +1,23 @@ --- title: split -linktitle: -description: +linktitle: split +description: splits a string into substrings separated by a delimiter godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [] categories: [functions] -toc: +tags: [strings] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example +`split` splits a string into substrings separated by a delimiter. + +* `{{split "tag1,tag2,tag3" "," }}` → ["tag1" "tag2" "tag3"] -## Advanced Example diff --git a/content/functions/string.md b/content/functions/string.md index 466ab4d2f..cc68e43a5 100644 --- a/content/functions/string.md +++ b/content/functions/string.md @@ -1,24 +1,22 @@ --- title: string -linktitle: -description: +linktitle: string +description: Creates a string from the argument passed to the function godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [functions] tags: [strings] -draft: false -aliases: [] -toc: signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false +aliases: [] --- -## Example +`string` creates a string from the argument passed to the function. -## Advanced Example +* `{{string "BatMan"}}` → "BatMan" diff --git a/content/functions/substr.md b/content/functions/substr.md index 6cee248f1..17e483700 100644 --- a/content/functions/substr.md +++ b/content/functions/substr.md @@ -1,16 +1,14 @@ --- title: substr linktitle: -description: +description: Extracts parts of a string from a specified character's position and returns the specified number of characters. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 categories: [functions] tags: [strings] -draft: false aliases: [] -toc: signature: workson: [] hugoversion: @@ -18,7 +16,15 @@ relatedfuncs: [] deprecated: false --- -## Example +`substr` extracts parts of a string, beginning at the character at the specified position, and returns the specified number of characters. -## Advanced Example +It normally takes two parameters: `start` and `length`. It can also take one parameter: `start`, i.e. `length` is omitted, in which case the substring starting from start until the end of the string will be returned. +To extract characters from the end of the string, use a negative start number. + +In addition, borrowing from the extended behavior described at http://php.net substr, if `length` is given and is negative, that number of characters will be omitted from the end of string. + +``` +{{substr "BatMan" 0 -3}} → "Bat" +{{substr "BatMan" 3 3}} → "Man" +``` \ No newline at end of file diff --git a/content/functions/title.md b/content/functions/title.md index 90f080e32..4f57866ba 100644 --- a/content/functions/title.md +++ b/content/functions/title.md @@ -1,24 +1,24 @@ --- title: title linktitle: -description: +description: Converts all characters in the provided string to title case. godocref: date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 -tags: [fundamentals,strings] categories: [functions] -toc: +tags: [fundamentals,strings] signature: workson: [] hugoversion: relatedfuncs: [] deprecated: false -draft: false aliases: [] --- -## Example -## Advanced Example +`title` converts all characters in the provided string to title case. +``` +{{title "BatMan"}}` → "Batman" +``` diff --git a/content/showcase/_index.md b/content/showcase/_index.md index f287d8f79..4f18fc933 100644 --- a/content/showcase/_index.md +++ b/content/showcase/_index.md @@ -18,4 +18,4 @@ toc: false The following sites have been built with {{< emo ":heart:" >}} and Hugo. If you're interested in adding your site to the showcase, [see how to contribute][addshowcase]. -[addshowcase]: /contribute/documentation/ \ No newline at end of file +[addshowcase]: /contribute/documentation/#adding-to-the-showcase \ No newline at end of file diff --git a/content/templates/partials.md b/content/templates/partials.md index 983aaa3bf..36b09757d 100644 --- a/content/templates/partials.md +++ b/content/templates/partials.md @@ -9,7 +9,7 @@ categories: [templates] tags: [lists,sections,partials] weight: 90 draft: false -aliases: [/templates/partials/,/layout/chrome/,/extras/analytics/] +aliases: [/templates/partial/,/layout/chrome/,/extras/analytics/] toc: true needsreview: true --- diff --git a/content/troubleshooting/_index.md b/content/troubleshooting/_index.md index 18c5a3f6c..db59e1f62 100644 --- a/content/troubleshooting/_index.md +++ b/content/troubleshooting/_index.md @@ -14,10 +14,10 @@ toc: false notesforauthors: --- -The Troubleshooting section includes known issues, recent workarounds, and FAQs pulled from the [Hugo Discussion Forum][]. +The Troubleshooting section includes known issues, recent workarounds, and FAQs pulled from the [Hugo Discussion Forum][forum]. -[Hugo Discussion Forum]: https://discuss.gohugo.io +[forum]: https://discuss.gohugo.io diff --git a/content/troubleshooting/accented-characters-in-urls.md b/content/troubleshooting/accented-characters-in-urls.md index be076195f..0eca7cd92 100644 --- a/content/troubleshooting/accented-characters-in-urls.md +++ b/content/troubleshooting/accented-characters-in-urls.md @@ -1,7 +1,7 @@ --- title: Accented Characters in URLs linktitle: Accented Characters in URLs -description: +description: If you're having trouble with special characters in your taxonomies or titles adding odd characters to your URLs. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 diff --git a/content/troubleshooting/eof-error.md b/content/troubleshooting/eof-error.md index fbb4f7c7e..bbe7d08f7 100644 --- a/content/troubleshooting/eof-error.md +++ b/content/troubleshooting/eof-error.md @@ -1,7 +1,7 @@ --- title: EOF Error linktitle: EOF Error -description: +description: If you find yourself seeing an EOF error in the console whenever you create a new content file from Hugo's archetype feature. date: 2017-02-01 publishdate: 2017-02-01 lastmod: 2017-02-01 @@ -38,7 +38,7 @@ The solution is to add a final newline (i.e., `EOL`) to the end of your default. As of v0.13, Hugo's parser has been enhanced to accommodate archetype files without final EOL thanks to the great work by [@tatsushid](https://github.com/tatsushid). {{% /note %}} -## Discussion Forum Threads +## Discussion Forum References * http://discuss.gohugo.io/t/archetypes-not-properly-working-in-0-12/544 * http://discuss.gohugo.io/t/eol-f-in-archetype-files/554 diff --git a/content/variables/page-variables.md b/content/variables/page-variables.md index 9fe019ebd..60ac8bdcf 100644 --- a/content/variables/page-variables.md +++ b/content/variables/page-variables.md @@ -127,7 +127,7 @@ http://remarkjs.com) : a generated summary of the content for easily showing a snippet in a summary view. The breakpoint can be set manually by inserting <code><!--more--></code> 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. +: the rendered [table of contents](/content-management/toc/) for the page. `.Title` : the title for this page. diff --git a/layouts/shortcodes/bfconfig.html b/layouts/shortcodes/bfconfig.html index ef9b2073a..6b027074c 100644 --- a/layouts/shortcodes/bfconfig.html +++ b/layouts/shortcodes/bfconfig.html @@ -1,4 +1,5 @@ <table class="bf-configuration"> +<!-- NOTE THAT THIS SHORTCODE IS USED ON GETTING-STARTED/CONFIGURATION, /CONTENT/FORMATS/ AND THEREFORE REFERENCES THE MULTILINGUAL MODE AT THE BOTTOM OF THE TABLE --> <thead> <tr> <th>Flag</th> @@ -191,4 +192,6 @@ </tbody> </table> +<p>For additional Blackfriday configuration for multilingual sites, see <a href="/content-management/multilingual/#taxonomies-and-blackfriday">Taxonomies and Blackfriday in Multingual Mode.</a></p> + diff --git a/static/css/style.min.css b/static/css/style.min.css index 1f88e3102..2968a80a8 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.6em}h2.contents-list-heading{text-transform:uppercase;color:#737373}h2.contents-list-heading em{font-style:normal}h3{font-size:1.2em}h4{font-size:1.1em;margin-top:1em;margin-bottom:1em;color:#737373}h5{font-size:1em;font-weight:bold;margin-bottom:1em;color:#222}.functions{font-family:"courierprime",courier,monospace;font-weight:300;color:inherit}.functions>em{font-style:normal;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;padding-left:.25em;padding-right:.25em;font-size:.8em;position:relative;margin-bottom:.3em}.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}.body-copy .utils-list{list-style:none;margin-left:0px;padding-left:0px}.body-copy .utils-list li{list-style:none;display:inline;margin-left:0px;padding-left:0px}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;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}a.tooltip:hover::before{display:inline-block;position:absolute;line-height:1;bottom:-1.4em;font-size:12px;color:white;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;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}.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;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}.language-toml.hljs .hljs-section{color:#ff4088}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,button.download-button{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,button.download-button:hover{background-color:#0083C0;box-shadow:none}button.copy-button:active,button.copy-button:focus,button.download-button:active,button.download-button:focus{outline:none;position:absolute}a[role="button"].see-code-source{position:absolute;top:1.75em;right:0px;border-radius:0px;background:transparent;text-transform:uppercase;color:#f2f2f2;font-size:14px}a[href*="bitbucket"].see-code-source:after{content:'\f171';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="github"].see-code-source:after{content:'\f09b';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="gitlab"].see-code-source:after{content:'\f296';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}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}span.no code{background-color:#C9177E;color:#fff}span.no:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f165';margin-left:.5em;font-size:1.2em;color:#C9177E}span.break{position:relative;display:inline-block;font-weight:bold;text-align:center;width:auto;left:calc(50% - 40px)}span.break:before,span.break:after{content:"";position:absolute;display:inline-block;height:.2em;border-bottom:1px solid black;border-top:1px solid black;top:.666em;width:140px}span.break:before{right:100%;margin-right:.5em}span.break:after{left:100%;margin-left:.5em}span.yes code{color:#fff;background-color:#00A88A}span.yes:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f164';color:#00A88A;margin-left:.5em;font-size:1.2em}span.na code{background-color:transparent;color:#bbb}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,<svg width="10" height="10" viewBox="0 0 20 38" xmlns="http://www.w3.org/2000/svg"><path d="M1.49 4.31l14 16.126.002-2.624-14 16.074-1.314 1.51 3.017 2.626 1.313-1.508 14-16.075 1.142-1.313-1.14-1.313-14-16.125L3.2.18.18 2.8l1.31 1.51z" fill-rule="evenodd" fill="%231D3657" /></svg>');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,<svg viewBox='0 0 130 18' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient x1='-36.868%' y1='134.936%' x2='129.432%' y2='-27.7%' id='a'><stop stop-color='%2300AEFF' offset='0%'/><stop stop-color='%233369E7' offset='100%'/></linearGradient></defs><g fill='none' fill-rule='evenodd'><path d='M59.399.022h13.299a2.372 2.372 0 0 1 2.377 2.364V15.62a2.372 2.372 0 0 1-2.377 2.364H59.399a2.372 2.372 0 0 1-2.377-2.364V2.381A2.368 2.368 0 0 1 59.399.022z' fill='url(%23a)'/><path d='M66.257 4.56c-2.815 0-5.1 2.272-5.1 5.078 0 2.806 2.284 5.072 5.1 5.072 2.815 0 5.1-2.272 5.1-5.078 0-2.806-2.279-5.072-5.1-5.072zm0 8.652c-1.983 0-3.593-1.602-3.593-3.574 0-1.972 1.61-3.574 3.593-3.574 1.983 0 3.593 1.602 3.593 3.574a3.582 3.582 0 0 1-3.593 3.574zm0-6.418v2.664c0 .076.082.131.153.093l2.377-1.226c.055-.027.071-.093.044-.147a2.96 2.96 0 0 0-2.465-1.487c-.055 0-.11.044-.11.104l.001-.001zm-3.33-1.956l-.312-.311a.783.783 0 0 0-1.106 0l-.372.37a.773.773 0 0 0 0 1.101l.307.305c.049.049.121.038.164-.011.181-.245.378-.479.597-.697.225-.223.455-.42.707-.599.055-.033.06-.109.016-.158h-.001zm5.001-.806v-.616a.781.781 0 0 0-.783-.779h-1.824a.78.78 0 0 0-.783.779v.632c0 .071.066.12.137.104a5.736 5.736 0 0 1 1.588-.223c.52 0 1.035.071 1.534.207a.106.106 0 0 0 .131-.104z' fill='%23FFF'/><path d='M102.162 13.762c0 1.455-.372 2.517-1.123 3.193-.75.676-1.895 1.013-3.44 1.013-.564 0-1.736-.109-2.673-.316l.345-1.689c.783.163 1.819.207 2.361.207.86 0 1.473-.174 1.84-.523.367-.349.548-.866.548-1.553v-.349a6.374 6.374 0 0 1-.838.316 4.151 4.151 0 0 1-1.194.158 4.515 4.515 0 0 1-1.616-.278 3.385 3.385 0 0 1-1.254-.817 3.744 3.744 0 0 1-.811-1.351c-.192-.539-.29-1.504-.29-2.212 0-.665.104-1.498.307-2.054a3.925 3.925 0 0 1 .904-1.433 4.124 4.124 0 0 1 1.441-.926 5.31 5.31 0 0 1 1.945-.365c.696 0 1.337.087 1.961.191a15.86 15.86 0 0 1 1.588.332v8.456h-.001zm-5.954-4.206c0 .893.197 1.885.592 2.299.394.414.904.621 1.528.621.34 0 .663-.049.964-.142a2.75 2.75 0 0 0 .734-.332v-5.29a8.531 8.531 0 0 0-1.413-.18c-.778-.022-1.369.294-1.786.801-.411.507-.619 1.395-.619 2.223zm16.12 0c0 .719-.104 1.264-.318 1.858a4.389 4.389 0 0 1-.904 1.52c-.389.42-.854.746-1.402.975-.548.229-1.391.36-1.813.36-.422-.005-1.26-.125-1.802-.36a4.088 4.088 0 0 1-1.397-.975 4.486 4.486 0 0 1-.909-1.52 5.037 5.037 0 0 1-.329-1.858c0-.719.099-1.411.318-1.999.219-.588.526-1.09.92-1.509.394-.42.865-.741 1.402-.97a4.547 4.547 0 0 1 1.786-.338 4.69 4.69 0 0 1 1.791.338c.548.229 1.019.55 1.402.97.389.42.69.921.909 1.509.23.588.345 1.28.345 1.999h.001zm-2.191.005c0-.921-.203-1.689-.597-2.223-.394-.539-.948-.806-1.654-.806-.707 0-1.26.267-1.654.806-.394.539-.586 1.302-.586 2.223 0 .932.197 1.558.592 2.098.394.545.948.812 1.654.812.707 0 1.26-.272 1.654-.812.394-.545.592-1.166.592-2.098h-.001zm6.962 4.707c-3.511.016-3.511-2.822-3.511-3.274L113.583.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001zm3.774 0h-2.153V5.072l2.153-.338v9.534zm-1.079-10.542c.718 0 1.304-.578 1.304-1.291 0-.714-.581-1.291-1.304-1.291-.723 0-1.304.578-1.304 1.291 0 .714.586 1.291 1.304 1.291zm6.431 1.013c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.285.311.488.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.263.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a9.335 9.335 0 0 1 1.66-.142l-.001-.001zm.181 7.731c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.323.196.75.289 1.293.289h.001zM84.109 4.794c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.29.316.487.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.257.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a8.89 8.89 0 0 1 1.66-.142l-.001-.001zm.186 7.736c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.318.191.75.289 1.293.289h.001zm8.682 1.738c-3.511.016-3.511-2.822-3.511-3.274L89.461.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001z' fill='%23182359'/><path d='M5.027 11.025c0 .698-.252 1.246-.757 1.644-.505.397-1.201.596-2.089.596-.888 0-1.615-.138-2.181-.414v-1.214c.358.168.739.301 1.141.397.403.097.778.145 1.125.145.508 0 .884-.097 1.125-.29a.945.945 0 0 0 .363-.779.978.978 0 0 0-.333-.747c-.222-.204-.68-.446-1.375-.725-.716-.29-1.221-.621-1.515-.994-.294-.372-.44-.82-.44-1.343 0-.655.233-1.171.698-1.547.466-.376 1.09-.564 1.875-.564.752 0 1.5.165 2.245.494l-.408 1.047c-.698-.294-1.321-.44-1.869-.44-.415 0-.73.09-.945.271a.89.89 0 0 0-.322.717c0 .204.043.379.129.524.086.145.227.282.424.411.197.129.551.299 1.063.51.577.24.999.464 1.268.671.269.208.466.442.591.704.125.261.188.569.188.924l-.001.002zm3.98 2.24c-.924 0-1.646-.269-2.167-.808-.521-.539-.782-1.281-.782-2.226 0-.97.242-1.733.725-2.288.483-.555 1.148-.833 1.993-.833.784 0 1.404.238 1.858.714.455.476.682 1.132.682 1.966v.682H7.357c.018.577.174 1.02.467 1.329.294.31.707.465 1.241.465.351 0 .678-.033.98-.099a5.1 5.1 0 0 0 .975-.33v1.026a3.865 3.865 0 0 1-.935.312 5.723 5.723 0 0 1-1.08.091l.002-.001zm-.231-5.199c-.401 0-.722.127-.964.381s-.386.625-.432 1.112h2.696c-.007-.491-.125-.862-.354-1.115-.229-.252-.544-.379-.945-.379l-.001.001zm7.692 5.092l-.252-.827h-.043c-.286.362-.575.608-.865.739-.29.131-.662.196-1.117.196-.584 0-1.039-.158-1.367-.473-.328-.315-.491-.761-.491-1.337 0-.612.227-1.074.682-1.386.455-.312 1.148-.482 2.079-.51l1.026-.032v-.317c0-.38-.089-.663-.266-.851-.177-.188-.452-.282-.824-.282-.304 0-.596.045-.876.134a6.68 6.68 0 0 0-.806.317l-.408-.902a4.414 4.414 0 0 1 1.058-.384 4.856 4.856 0 0 1 1.085-.132c.756 0 1.326.165 1.711.494.385.329.577.847.577 1.552v4.002h-.902l-.001-.001zm-1.88-.859c.458 0 .826-.128 1.104-.384.278-.256.416-.615.416-1.077v-.516l-.763.032c-.594.021-1.027.121-1.297.298s-.406.448-.406.814c0 .265.079.47.236.615.158.145.394.218.709.218h.001zm7.557-5.189c.254 0 .464.018.628.054l-.124 1.176a2.383 2.383 0 0 0-.559-.064c-.505 0-.914.165-1.227.494-.313.329-.47.757-.47 1.284v3.105h-1.262V7.218h.988l.167 1.047h.064c.197-.354.454-.636.771-.843a1.83 1.83 0 0 1 1.023-.312h.001zm4.125 6.155c-.899 0-1.582-.262-2.049-.787-.467-.525-.701-1.277-.701-2.259 0-.999.244-1.767.733-2.304.489-.537 1.195-.806 2.119-.806.627 0 1.191.116 1.692.349l-.381 1.015c-.534-.208-.974-.312-1.321-.312-1.028 0-1.542.682-1.542 2.046 0 .666.128 1.166.384 1.501.256.335.631.502 1.125.502a3.23 3.23 0 0 0 1.595-.419v1.101a2.53 2.53 0 0 1-.722.285 4.356 4.356 0 0 1-.932.086v.002zm8.277-.107h-1.268V9.506c0-.458-.092-.8-.277-1.026-.184-.226-.477-.338-.878-.338-.53 0-.919.158-1.168.475-.249.317-.373.848-.373 1.593v2.949h-1.262V4.801h1.262v2.122c0 .34-.021.704-.064 1.09h.081a1.76 1.76 0 0 1 .717-.666c.306-.158.663-.236 1.072-.236 1.439 0 2.159.725 2.159 2.175v3.873l-.001-.001zm7.649-6.048c.741 0 1.319.269 1.732.806.414.537.62 1.291.62 2.261 0 .974-.209 1.732-.628 2.275-.419.542-1.001.814-1.746.814-.752 0-1.336-.27-1.751-.811h-.086l-.231.704h-.945V4.801h1.262v1.987l-.021.655-.032.553h.054c.401-.591.992-.886 1.772-.886zm-.328 1.031c-.508 0-.875.149-1.098.448-.224.299-.339.799-.346 1.501v.086c0 .723.115 1.247.344 1.571.229.324.603.486 1.123.486.448 0 .787-.177 1.018-.532.231-.354.346-.867.346-1.536 0-1.35-.462-2.025-1.386-2.025l-.001.001zm3.244-.924h1.375l1.209 3.368c.183.48.304.931.365 1.354h.043c.032-.197.091-.436.177-.717.086-.281.541-1.616 1.364-4.004h1.364l-2.541 6.73c-.462 1.235-1.232 1.853-2.31 1.853-.279 0-.551-.03-.816-.091v-.999c.19.043.406.064.65.064.609 0 1.037-.353 1.284-1.058l.22-.559-2.385-5.941h.001z' fill='%231D3657'/></g></svg>");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:280px;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: 1200px){aside#toc{box-shadow:none;top:50px;right:0px;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: 1200px){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:inline-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:hover .page-info{color:#fff}.prev-and-next-link:hover .page-info h5{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;color:#C9177E}.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:16px;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:#d9d9d9}table tbody tr:last-child{border-bottom:2px solid #737373}table tbody tr small{font-size:1em}table tbody td .purpose-title{font-style:italic;color:#C9177E;font-weight:bold}table tbody td.bf-default code{color:#0083C0;font-weight:bold}table tbody td.bf-flag code{color:#00A88A;font-weight:bold}table.utils-table tr{line-height:1.2}table.utils-table tr>td:first-child{min-width:220px}table.bf-configuration tbody tr td.purpose-description ul{list-style:none;margin-left:0px;padding-left:0px}table.bf-configuration tbody tr td.purpose-description ul li{list-style:none}@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}.twitter-tweet.twitter-tweet-rendered{display:block;margin-left:auto;margin-right:auto}.body-copy>div{margin-bottom:1.5em}.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.3}.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}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code>em{font-style:normal;family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}.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:100%;display:block;margin-left:auto;margin-right:auto;position:relative;min-height:calc(100vh - 100px)}@media only screen and (min-width: 1200px){main.main{width:100%;margin-right:0px;max-width:calc(100vw - 560px - 20px);float:left;padding-left:0px;padding-right:0px}}.content{width:90%;margin-left:auto;margin-right:auto}@media only screen and (min-width: 760px){.content{max-width:32em}}@media only screen and (min-width: 960px){.content{float:left;margin-left:5%;margin-right:auto}}@media only screen and (min-width: 1200px){.content{min-width:32em;max-width:90%}}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}main.showcase-list{width:90%;max-width:1200px;margin-left:auto;margin-right:auto}@media only screen and (min-width: 1200px){main.showcase-list{margin-left:5%}}#showcase{display:-ms-flexbox;display:flex;list-style:none;padding-left:0px;margin-left:0px;width:100%;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}#showcase li.showcase-site{list-style:none;padding-left:0px;margin-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;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);margin-bottom:1.5em}@media only screen and (min-width: 760px){#showcase li.showcase-site{width:48%}}@media only screen and (min-width: 1200px){#showcase li.showcase-site{width:32%}}#showcase li.showcase-site .image-wrapper{width:100%;max-width:100%}#showcase li.showcase-site .image-wrapper img{width:100%;max-width:100%;border-bottom:1px solid #d9d9d9}#showcase li.showcase-site ul.tags{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}#showcase li.showcase-site ul.tags li{margin-bottom:.25em;-ms-flex-item-align:start;align-self:flex-start;width:auto}#showcase li.showcase-site ul.tags li a{font-size:12px}#showcase li.showcase-site ul.tags li.tags-icon-li{box-shadow:none}#showcase li.showcase-site .showcase-meta{padding:10px}#showcase li.showcase-site .showcase-meta .showcase-links{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;font-size:.8em}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-source{font-size:.8em;text-transform:uppercase}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title{font-weight:bold}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title a{font-weight:bold}#site-footer{background-color:#000;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:auto;padding-bottom:1em}#site-footer .footer-content{width:90%;margin-left:auto;margin-right:auto;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}#site-footer .footer-content span{text-align:center;width:100%;display:block;margin-top:1em}#site-footer .footer-content img{max-width:200px;margin-left:auto;margin-right:auto;display:block}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;margin-right:1em;margin-top:1em}#site-footer .footer-content .footer-lists .footer-list{max-width:45%}@media only screen and (min-width: 760px){#site-footer .footer-content{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}#site-footer .footer-content div{min-width:50%;width:50%;max-width:50%}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#site-footer .footer-content .footer-lists .footer-list{max-width:auto;margin-right:2em}}@media only screen and (min-width: 760px) and (min-width: 960px){#site-footer .footer-content .footer-lists .footer-list{min-width:150px}}@media only screen and (min-width: 760px){#site-footer{-ms-flex-direction:row;flex-direction:row}}@media only screen and (min-width: 960px){#site-footer{width:calc(100% - 280px);margin-left:280px}}@media only screen and (min-width: 1200px){#site-footer.withtoc{max-width:calc(100vw - 560px)}}ul.footer-list{color:#fff;list-style:none;margin-left:0px;padding-left:0px;margin:0px;-ms-flex-wrap:wrap;flex-wrap:wrap}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}@media only screen and (min-width: 960px){.all-content-wrapper.home{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}}main#homepage{width:90%;margin-bottom:2.5em;margin-left:auto;margin-right:auto}.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;max-width:960px}.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}@media only screen and (min-width: 960px){.homepage-cards{margin-left:auto;margin-right:auto}}@media only screen and (min-width: 1200px){.homepage-cards{max-width:760px}}#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:36px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 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)}#outdated{background-color:#0083C0;color:white;position:absolute;right:40px;top:20px;-webkit-transform:rotate(10deg);transform:rotate(10deg);font-weight:bold;width:200px;font-size:32px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 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)} +/*! 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.6em}h2.contents-list-heading{text-transform:uppercase;color:#737373}h2.contents-list-heading em{font-style:normal}h3{font-size:1.2em}h4{font-size:1.1em;margin-top:1em;margin-bottom:1em;color:#737373}h5{font-size:1em;font-weight:bold;margin-bottom:1em;color:#222}.functions{font-family:"courierprime",courier,monospace;font-weight:300;color:inherit}.functions>em{font-style:normal;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;padding-left:.25em;padding-right:.25em;font-size:.8em;position:relative;margin-bottom:.3em}.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}.body-copy .utils-list{list-style:none;margin-left:0px;padding-left:0px}.body-copy .utils-list li{list-style:none;display:inline;margin-left:0px;padding-left:0px}.body-copy .task-list{list-style:none;margin-left:0px;padding-left:0px}.body-copy .task-list li{list-style:none}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;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}a.tooltip:hover::before{display:inline-block;position:absolute;line-height:1;bottom:-1.4em;font-size:12px;color:white;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;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}.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;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}.language-toml.hljs .hljs-section{color:#ff4088}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,button.download-button{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,button.download-button:hover{background-color:#0083C0;box-shadow:none}button.copy-button:active,button.copy-button:focus,button.download-button:active,button.download-button:focus{outline:none;position:absolute}a[role="button"].see-code-source{position:absolute;top:1.75em;right:0px;border-radius:0px;background:transparent;text-transform:uppercase;color:#f2f2f2;font-size:14px}a[href*="bitbucket"].see-code-source:after{content:'\f171';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="github"].see-code-source:after{content:'\f09b';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="gitlab"].see-code-source:after{content:'\f296';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}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}span.no code{background-color:#C9177E;color:#fff}span.no:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f165';margin-left:.5em;font-size:1.2em;color:#C9177E}span.break{position:relative;display:inline-block;font-weight:bold;text-align:center;width:auto;left:calc(50% - 40px)}span.break:before,span.break:after{content:"";position:absolute;display:inline-block;height:.2em;border-bottom:1px solid black;border-top:1px solid black;top:.666em;width:140px}span.break:before{right:100%;margin-right:.5em}span.break:after{left:100%;margin-left:.5em}span.yes code{color:#fff;background-color:#00A88A}span.yes:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f164';color:#00A88A;margin-left:.5em;font-size:1.2em}span.na code{background-color:transparent;color:#bbb}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,<svg width="10" height="10" viewBox="0 0 20 38" xmlns="http://www.w3.org/2000/svg"><path d="M1.49 4.31l14 16.126.002-2.624-14 16.074-1.314 1.51 3.017 2.626 1.313-1.508 14-16.075 1.142-1.313-1.14-1.313-14-16.125L3.2.18.18 2.8l1.31 1.51z" fill-rule="evenodd" fill="%231D3657" /></svg>');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,<svg viewBox='0 0 130 18' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient x1='-36.868%' y1='134.936%' x2='129.432%' y2='-27.7%' id='a'><stop stop-color='%2300AEFF' offset='0%'/><stop stop-color='%233369E7' offset='100%'/></linearGradient></defs><g fill='none' fill-rule='evenodd'><path d='M59.399.022h13.299a2.372 2.372 0 0 1 2.377 2.364V15.62a2.372 2.372 0 0 1-2.377 2.364H59.399a2.372 2.372 0 0 1-2.377-2.364V2.381A2.368 2.368 0 0 1 59.399.022z' fill='url(%23a)'/><path d='M66.257 4.56c-2.815 0-5.1 2.272-5.1 5.078 0 2.806 2.284 5.072 5.1 5.072 2.815 0 5.1-2.272 5.1-5.078 0-2.806-2.279-5.072-5.1-5.072zm0 8.652c-1.983 0-3.593-1.602-3.593-3.574 0-1.972 1.61-3.574 3.593-3.574 1.983 0 3.593 1.602 3.593 3.574a3.582 3.582 0 0 1-3.593 3.574zm0-6.418v2.664c0 .076.082.131.153.093l2.377-1.226c.055-.027.071-.093.044-.147a2.96 2.96 0 0 0-2.465-1.487c-.055 0-.11.044-.11.104l.001-.001zm-3.33-1.956l-.312-.311a.783.783 0 0 0-1.106 0l-.372.37a.773.773 0 0 0 0 1.101l.307.305c.049.049.121.038.164-.011.181-.245.378-.479.597-.697.225-.223.455-.42.707-.599.055-.033.06-.109.016-.158h-.001zm5.001-.806v-.616a.781.781 0 0 0-.783-.779h-1.824a.78.78 0 0 0-.783.779v.632c0 .071.066.12.137.104a5.736 5.736 0 0 1 1.588-.223c.52 0 1.035.071 1.534.207a.106.106 0 0 0 .131-.104z' fill='%23FFF'/><path d='M102.162 13.762c0 1.455-.372 2.517-1.123 3.193-.75.676-1.895 1.013-3.44 1.013-.564 0-1.736-.109-2.673-.316l.345-1.689c.783.163 1.819.207 2.361.207.86 0 1.473-.174 1.84-.523.367-.349.548-.866.548-1.553v-.349a6.374 6.374 0 0 1-.838.316 4.151 4.151 0 0 1-1.194.158 4.515 4.515 0 0 1-1.616-.278 3.385 3.385 0 0 1-1.254-.817 3.744 3.744 0 0 1-.811-1.351c-.192-.539-.29-1.504-.29-2.212 0-.665.104-1.498.307-2.054a3.925 3.925 0 0 1 .904-1.433 4.124 4.124 0 0 1 1.441-.926 5.31 5.31 0 0 1 1.945-.365c.696 0 1.337.087 1.961.191a15.86 15.86 0 0 1 1.588.332v8.456h-.001zm-5.954-4.206c0 .893.197 1.885.592 2.299.394.414.904.621 1.528.621.34 0 .663-.049.964-.142a2.75 2.75 0 0 0 .734-.332v-5.29a8.531 8.531 0 0 0-1.413-.18c-.778-.022-1.369.294-1.786.801-.411.507-.619 1.395-.619 2.223zm16.12 0c0 .719-.104 1.264-.318 1.858a4.389 4.389 0 0 1-.904 1.52c-.389.42-.854.746-1.402.975-.548.229-1.391.36-1.813.36-.422-.005-1.26-.125-1.802-.36a4.088 4.088 0 0 1-1.397-.975 4.486 4.486 0 0 1-.909-1.52 5.037 5.037 0 0 1-.329-1.858c0-.719.099-1.411.318-1.999.219-.588.526-1.09.92-1.509.394-.42.865-.741 1.402-.97a4.547 4.547 0 0 1 1.786-.338 4.69 4.69 0 0 1 1.791.338c.548.229 1.019.55 1.402.97.389.42.69.921.909 1.509.23.588.345 1.28.345 1.999h.001zm-2.191.005c0-.921-.203-1.689-.597-2.223-.394-.539-.948-.806-1.654-.806-.707 0-1.26.267-1.654.806-.394.539-.586 1.302-.586 2.223 0 .932.197 1.558.592 2.098.394.545.948.812 1.654.812.707 0 1.26-.272 1.654-.812.394-.545.592-1.166.592-2.098h-.001zm6.962 4.707c-3.511.016-3.511-2.822-3.511-3.274L113.583.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001zm3.774 0h-2.153V5.072l2.153-.338v9.534zm-1.079-10.542c.718 0 1.304-.578 1.304-1.291 0-.714-.581-1.291-1.304-1.291-.723 0-1.304.578-1.304 1.291 0 .714.586 1.291 1.304 1.291zm6.431 1.013c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.285.311.488.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.263.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a9.335 9.335 0 0 1 1.66-.142l-.001-.001zm.181 7.731c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.323.196.75.289 1.293.289h.001zM84.109 4.794c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.29.316.487.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.257.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a8.89 8.89 0 0 1 1.66-.142l-.001-.001zm.186 7.736c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.318.191.75.289 1.293.289h.001zm8.682 1.738c-3.511.016-3.511-2.822-3.511-3.274L89.461.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001z' fill='%23182359'/><path d='M5.027 11.025c0 .698-.252 1.246-.757 1.644-.505.397-1.201.596-2.089.596-.888 0-1.615-.138-2.181-.414v-1.214c.358.168.739.301 1.141.397.403.097.778.145 1.125.145.508 0 .884-.097 1.125-.29a.945.945 0 0 0 .363-.779.978.978 0 0 0-.333-.747c-.222-.204-.68-.446-1.375-.725-.716-.29-1.221-.621-1.515-.994-.294-.372-.44-.82-.44-1.343 0-.655.233-1.171.698-1.547.466-.376 1.09-.564 1.875-.564.752 0 1.5.165 2.245.494l-.408 1.047c-.698-.294-1.321-.44-1.869-.44-.415 0-.73.09-.945.271a.89.89 0 0 0-.322.717c0 .204.043.379.129.524.086.145.227.282.424.411.197.129.551.299 1.063.51.577.24.999.464 1.268.671.269.208.466.442.591.704.125.261.188.569.188.924l-.001.002zm3.98 2.24c-.924 0-1.646-.269-2.167-.808-.521-.539-.782-1.281-.782-2.226 0-.97.242-1.733.725-2.288.483-.555 1.148-.833 1.993-.833.784 0 1.404.238 1.858.714.455.476.682 1.132.682 1.966v.682H7.357c.018.577.174 1.02.467 1.329.294.31.707.465 1.241.465.351 0 .678-.033.98-.099a5.1 5.1 0 0 0 .975-.33v1.026a3.865 3.865 0 0 1-.935.312 5.723 5.723 0 0 1-1.08.091l.002-.001zm-.231-5.199c-.401 0-.722.127-.964.381s-.386.625-.432 1.112h2.696c-.007-.491-.125-.862-.354-1.115-.229-.252-.544-.379-.945-.379l-.001.001zm7.692 5.092l-.252-.827h-.043c-.286.362-.575.608-.865.739-.29.131-.662.196-1.117.196-.584 0-1.039-.158-1.367-.473-.328-.315-.491-.761-.491-1.337 0-.612.227-1.074.682-1.386.455-.312 1.148-.482 2.079-.51l1.026-.032v-.317c0-.38-.089-.663-.266-.851-.177-.188-.452-.282-.824-.282-.304 0-.596.045-.876.134a6.68 6.68 0 0 0-.806.317l-.408-.902a4.414 4.414 0 0 1 1.058-.384 4.856 4.856 0 0 1 1.085-.132c.756 0 1.326.165 1.711.494.385.329.577.847.577 1.552v4.002h-.902l-.001-.001zm-1.88-.859c.458 0 .826-.128 1.104-.384.278-.256.416-.615.416-1.077v-.516l-.763.032c-.594.021-1.027.121-1.297.298s-.406.448-.406.814c0 .265.079.47.236.615.158.145.394.218.709.218h.001zm7.557-5.189c.254 0 .464.018.628.054l-.124 1.176a2.383 2.383 0 0 0-.559-.064c-.505 0-.914.165-1.227.494-.313.329-.47.757-.47 1.284v3.105h-1.262V7.218h.988l.167 1.047h.064c.197-.354.454-.636.771-.843a1.83 1.83 0 0 1 1.023-.312h.001zm4.125 6.155c-.899 0-1.582-.262-2.049-.787-.467-.525-.701-1.277-.701-2.259 0-.999.244-1.767.733-2.304.489-.537 1.195-.806 2.119-.806.627 0 1.191.116 1.692.349l-.381 1.015c-.534-.208-.974-.312-1.321-.312-1.028 0-1.542.682-1.542 2.046 0 .666.128 1.166.384 1.501.256.335.631.502 1.125.502a3.23 3.23 0 0 0 1.595-.419v1.101a2.53 2.53 0 0 1-.722.285 4.356 4.356 0 0 1-.932.086v.002zm8.277-.107h-1.268V9.506c0-.458-.092-.8-.277-1.026-.184-.226-.477-.338-.878-.338-.53 0-.919.158-1.168.475-.249.317-.373.848-.373 1.593v2.949h-1.262V4.801h1.262v2.122c0 .34-.021.704-.064 1.09h.081a1.76 1.76 0 0 1 .717-.666c.306-.158.663-.236 1.072-.236 1.439 0 2.159.725 2.159 2.175v3.873l-.001-.001zm7.649-6.048c.741 0 1.319.269 1.732.806.414.537.62 1.291.62 2.261 0 .974-.209 1.732-.628 2.275-.419.542-1.001.814-1.746.814-.752 0-1.336-.27-1.751-.811h-.086l-.231.704h-.945V4.801h1.262v1.987l-.021.655-.032.553h.054c.401-.591.992-.886 1.772-.886zm-.328 1.031c-.508 0-.875.149-1.098.448-.224.299-.339.799-.346 1.501v.086c0 .723.115 1.247.344 1.571.229.324.603.486 1.123.486.448 0 .787-.177 1.018-.532.231-.354.346-.867.346-1.536 0-1.35-.462-2.025-1.386-2.025l-.001.001zm3.244-.924h1.375l1.209 3.368c.183.48.304.931.365 1.354h.043c.032-.197.091-.436.177-.717.086-.281.541-1.616 1.364-4.004h1.364l-2.541 6.73c-.462 1.235-1.232 1.853-2.31 1.853-.279 0-.551-.03-.816-.091v-.999c.19.043.406.064.65.064.609 0 1.037-.353 1.284-1.058l.22-.559-2.385-5.941h.001z' fill='%231D3657'/></g></svg>");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:280px;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: 1200px){aside#toc{box-shadow:none;top:50px;right:0px;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: 1200px){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:inline-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:hover .page-info{color:#fff}.prev-and-next-link:hover .page-info h5{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;color:#C9177E}.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:16px;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:#d9d9d9}table tbody tr:last-child{border-bottom:2px solid #737373}table tbody tr small{font-size:1em}table tbody td .purpose-title{font-style:italic;color:#C9177E;font-weight:bold}table tbody td.bf-default code{color:#0083C0;font-weight:bold}table tbody td.bf-flag code{color:#00A88A;font-weight:bold}table.utils-table tr{line-height:1.2}table.utils-table tr>td:first-child{min-width:220px}table.bf-configuration tbody tr td.purpose-description ul{list-style:none;margin-left:0px;padding-left:0px}table.bf-configuration tbody tr td.purpose-description ul li{list-style:none}@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}.twitter-tweet.twitter-tweet-rendered{display:block;margin-left:auto;margin-right:auto}.body-copy>div{margin-bottom:1.5em}.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.3}.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}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code>em{font-style:normal;family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}.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:100%;display:block;margin-left:auto;margin-right:auto;position:relative;min-height:calc(100vh - 100px)}@media only screen and (min-width: 1200px){main.main{width:100%;margin-right:0px;max-width:calc(100vw - 560px - 20px);float:left;padding-left:0px;padding-right:0px}}.content{width:90%;margin-left:auto;margin-right:auto}@media only screen and (min-width: 760px){.content{max-width:32em}}@media only screen and (min-width: 960px){.content{float:left;margin-left:5%;margin-right:auto}}@media only screen and (min-width: 1200px){.content{min-width:32em;max-width:90%}}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}main.showcase-list{width:90%;max-width:1200px;margin-left:auto;margin-right:auto}@media only screen and (min-width: 1200px){main.showcase-list{margin-left:5%}}#showcase{display:-ms-flexbox;display:flex;list-style:none;padding-left:0px;margin-left:0px;width:100%;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}#showcase li.showcase-site{list-style:none;padding-left:0px;margin-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;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);margin-bottom:1.5em}@media only screen and (min-width: 760px){#showcase li.showcase-site{width:48%}}@media only screen and (min-width: 1200px){#showcase li.showcase-site{width:32%}}#showcase li.showcase-site .image-wrapper{width:100%;max-width:100%}#showcase li.showcase-site .image-wrapper img{width:100%;max-width:100%;border-bottom:1px solid #d9d9d9}#showcase li.showcase-site ul.tags{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}#showcase li.showcase-site ul.tags li{margin-bottom:.25em;-ms-flex-item-align:start;align-self:flex-start;width:auto}#showcase li.showcase-site ul.tags li a{font-size:12px}#showcase li.showcase-site ul.tags li.tags-icon-li{box-shadow:none}#showcase li.showcase-site .showcase-meta{padding:10px}#showcase li.showcase-site .showcase-meta .showcase-links{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;font-size:.8em}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-source{font-size:.8em;text-transform:uppercase}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title{font-weight:bold}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title a{font-weight:bold}#site-footer{background-color:#000;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:auto;padding-bottom:1em}#site-footer .footer-content{width:90%;margin-left:auto;margin-right:auto;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}#site-footer .footer-content span{text-align:center;width:100%;display:block;margin-top:1em}#site-footer .footer-content img{max-width:200px;margin-left:auto;margin-right:auto;display:block}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;margin-right:1em;margin-top:1em}#site-footer .footer-content .footer-lists .footer-list{max-width:45%}@media only screen and (min-width: 760px){#site-footer .footer-content{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}#site-footer .footer-content div{min-width:50%;width:50%;max-width:50%}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#site-footer .footer-content .footer-lists .footer-list{max-width:auto;margin-right:2em}}@media only screen and (min-width: 760px) and (min-width: 960px){#site-footer .footer-content .footer-lists .footer-list{min-width:150px}}@media only screen and (min-width: 760px){#site-footer{-ms-flex-direction:row;flex-direction:row}}@media only screen and (min-width: 960px){#site-footer{width:calc(100% - 280px);margin-left:280px}}@media only screen and (min-width: 1200px){#site-footer.withtoc{max-width:calc(100vw - 560px)}}ul.footer-list{color:#fff;list-style:none;margin-left:0px;padding-left:0px;margin:0px;-ms-flex-wrap:wrap;flex-wrap:wrap}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}@media only screen and (min-width: 960px){.all-content-wrapper.home{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}}main#homepage{width:90%;margin-bottom:2.5em;margin-left:auto;margin-right:auto}.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;max-width:960px}.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}@media only screen and (min-width: 960px){.homepage-cards{margin-left:auto;margin-right:auto}}@media only screen and (min-width: 1200px){.homepage-cards{max-width:760px}}#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:36px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 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)}#outdated{background-color:#0083C0;color:white;position:absolute;right:40px;top:20px;-webkit-transform:rotate(10deg);transform:rotate(10deg);font-weight:bold;width:200px;font-size:32px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 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)} diff --git a/themes/hugodocs/pipeline/scss/components/_lists.scss b/themes/hugodocs/pipeline/scss/components/_lists.scss index 432ee968a..ba11a7359 100644 --- a/themes/hugodocs/pipeline/scss/components/_lists.scss +++ b/themes/hugodocs/pipeline/scss/components/_lists.scss @@ -114,3 +114,17 @@ aside { } } } + +//for Hugo's native support of Github-flavored task list synax +.body-copy { + .task-list { + list-style: none; + margin-left: 0px; + padding-left: 0px; + li { + list-style: none; + // padding-left:0px; + // margin-left:0px; + } + } +}