From cd22dcc1e6a09bd6ed5721dbada18c527a658565 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 19 Dec 2018 14:36:12 -0700 Subject: [PATCH 01/28] established asset pipeline --- .gitignore | 1 + README.md | 6 + assets/styles/_normalize.scss | 3 + assets/styles/normalize/_import-now.scss | 11 + assets/styles/normalize/_normalize-mixin.scss | 666 ++++++++++++++++++ assets/styles/normalize/_variables.scss | 36 + assets/styles/normalize/_vertical-rhythm.scss | 61 ++ assets/styles/styles-dark.scss | 7 + assets/styles/styles-light.scss | 1 + config.toml | 7 + content/v2.0/UI/using-tasks.md | 4 +- layouts/_default/section.html | 2 + layouts/partials/header.html | 1 + layouts/partials/nested/stylesheets.html | 9 + layouts/partials/sidebar.html | 0 layouts/partials/topnav.html | 0 16 files changed, 813 insertions(+), 2 deletions(-) create mode 100755 assets/styles/_normalize.scss create mode 100755 assets/styles/normalize/_import-now.scss create mode 100755 assets/styles/normalize/_normalize-mixin.scss create mode 100755 assets/styles/normalize/_variables.scss create mode 100755 assets/styles/normalize/_vertical-rhythm.scss create mode 100644 assets/styles/styles-dark.scss create mode 100644 assets/styles/styles-light.scss create mode 100644 layouts/partials/nested/stylesheets.html create mode 100644 layouts/partials/sidebar.html create mode 100644 layouts/partials/topnav.html diff --git a/.gitignore b/.gitignore index fabdaab2c..3ce9386e0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ deploy .*.swp node_modules *.log +/resources diff --git a/README.md b/README.md index 8b918dca8..d075ffec8 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,12 @@ accessible at [docs.influxdata.com](https://docs.influxdata.com). Hugo is the static site generator used to build the InfluxData documentation. [Download and install Hugo](https://gohugo.io/getting-started/installing/) to run the docs locally. +### Install NodeJS + +```sh +npm i -g postcss-cli autoprefixer +``` + ### Fork and clone the docs repository [Fork this repository](https://help.github.com/articles/fork-a-repo/) and [clone it](https://help.github.com/articles/cloning-a-repository/) to your local machine. diff --git a/assets/styles/_normalize.scss b/assets/styles/_normalize.scss new file mode 100755 index 000000000..fd669eb9b --- /dev/null +++ b/assets/styles/_normalize.scss @@ -0,0 +1,3 @@ +@import 'normalize/variables'; +@import 'normalize/vertical-rhythm'; +@import 'normalize/normalize-mixin'; diff --git a/assets/styles/normalize/_import-now.scss b/assets/styles/normalize/_import-now.scss new file mode 100755 index 000000000..aac5d2b69 --- /dev/null +++ b/assets/styles/normalize/_import-now.scss @@ -0,0 +1,11 @@ +// Import Now +// +// If you import this module directly, it will immediately output all the CSS +// needed to normalize default HTML elements across all browsers. +// +// ``` +// @import "normalize/import-now"; +// ``` + +@import '../normalize'; +@include normalize(); diff --git a/assets/styles/normalize/_normalize-mixin.scss b/assets/styles/normalize/_normalize-mixin.scss new file mode 100755 index 000000000..a366f7b9e --- /dev/null +++ b/assets/styles/normalize/_normalize-mixin.scss @@ -0,0 +1,666 @@ +// Helper function for the normalize() mixin. +@function _normalize-include($section, $exclude: null) { + // Initialize the global variables needed by this function. + @if not global_variable_exists(_normalize-include) { + $_normalize-include: () !global; + $_normalize-exclude: () !global; + } + // Since we are given 2 parameters, set the global variables. + @if $exclude != null { + $include: $section; + // Sass doesn't have static variables, so the work-around is to stuff these + // values into global variables so we can access them in future calls. + $_normalize-include: if(type-of($include) == 'list', $include, ($include)) !global; + $_normalize-exclude: if(type-of($exclude) == 'list', $exclude, ($exclude)) !global; + @return true; + } + + // Check if $section is in the $include list. + @if index($_normalize-include, $section) { + @return true; + } + // If $include is set to (all), make sure $section is not in $exclude. + @else if not index($_normalize-exclude, $section) and index($_normalize-include, all) { + @return true; + } + @return false; +} + +@mixin normalize($include: (all), $exclude: ()) { + // Initialize the helper function by passing it this mixin's parameters. + $init: _normalize-include($include, $exclude); + + // If we've customized any font variables, we'll need extra properties. + @if $base-line-height != 24px + or $base-unit != 'em' + or $h2-font-size != 1.5 * $base-font-size + or $h3-font-size != 1.17 * $base-font-size + or $h4-font-size != 1 * $base-font-size + or $h5-font-size != 0.83 * $base-font-size + or $h6-font-size != 0.67 * $base-font-size { + $normalize-vertical-rhythm: true !global; + } + + /*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */ + + @if _normalize-include(document) { + /* Document + ========================================================================== */ + + /** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ + + html { + @if $base-font-family { + /* Change the default font family in all browsers (opinionated). */ + font-family: $base-font-family; + } + @if $base-font-size != 16px or $normalize-vertical-rhythm { + // Correct old browser bug that prevented accessible resizing of text + // when root font-size is set with px or em. + font-size: ($base-font-size / 16px) * 100%; + } + @if $normalize-vertical-rhythm { + line-height: ($base-line-height / $base-font-size) * 1em; /* 1 */ + } + @else { + line-height: 1.15; /* 1 */ + } + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ + } + } + + @if _normalize-include(sections) { + /* Sections + ========================================================================== */ + + /** + * Remove the margin in all browsers (opinionated). + */ + + body { + margin: 0; + } + + /** + * Add the correct display in IE 9-. + */ + + article, + aside, + footer, + header, + nav, + section { + display: block; + } + + /** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + + h1 { + @include normalize-font-size($h1-font-size); + @if $normalize-vertical-rhythm { + @include normalize-line-height($h1-font-size); + } + + @if $normalize-vertical-rhythm { + /* Set 1 unit of vertical rhythm on the top and bottom margins. */ + @include normalize-margin(1 0, $h1-font-size); + } + @else { + margin: 0.67em 0; + } + } + + @if $normalize-vertical-rhythm { + h2 { + @include normalize-font-size($h2-font-size); + @include normalize-line-height($h2-font-size); + @include normalize-margin(1 0, $h2-font-size); + } + + h3 { + @include normalize-font-size($h3-font-size); + @include normalize-line-height($h3-font-size); + @include normalize-margin(1 0, $h3-font-size); + } + + h4 { + @include normalize-font-size($h4-font-size); + @include normalize-line-height($h4-font-size); + @include normalize-margin(1 0, $h4-font-size); + } + + h5 { + @include normalize-font-size($h5-font-size); + @include normalize-line-height($h5-font-size); + @include normalize-margin(1 0, $h5-font-size); + } + + h6 { + @include normalize-font-size($h6-font-size); + @include normalize-line-height($h6-font-size); + @include normalize-margin(1 0, $h6-font-size); + } + } + } + + @if _normalize-include(grouping) { + /* Grouping content + ========================================================================== */ + + @if $normalize-vertical-rhythm { + /** + * Set 1 unit of vertical rhythm on the top and bottom margin. + */ + + blockquote { + @include normalize-margin(1 $indent-amount); + } + + dl, + ol, + ul { + @include normalize-margin(1 0); + } + + /** + * Turn off margins on nested lists. + */ + + ol, + ul { + ol, + ul { + margin: 0; + } + } + + dd { + margin: 0 0 0 $indent-amount; + } + + ol, + ul { + padding: 0 0 0 $indent-amount; + } + } + + /** + * Add the correct display in IE 9-. + */ + + figcaption, + figure { + display: block; + } + + /** + * Add the correct margin in IE 8. + */ + + figure { + @if $normalize-vertical-rhythm { + @include normalize-margin(1 $indent-amount); + } + @else { + margin: 1em $indent-amount; + } + } + + /** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + + hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ + } + + /** + * Add the correct display in IE. + */ + + main { + display: block; + } + + @if $normalize-vertical-rhythm { + /** + * Set 1 unit of vertical rhythm on the top and bottom margin. + */ + + p, + pre { + @include normalize-margin(1 0); + } + } + + /** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + + pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ + } + } + + @if _normalize-include(links) { + /* Links + ========================================================================== */ + + /** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + + a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ + } + } + + @if _normalize-include(text) { + /* Text-level semantics + ========================================================================== */ + + /** + * 1. Remove the bottom border in Chrome 57- and Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + + abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ + } + + /** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + + b, + strong { + font-weight: inherit; + } + + /** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + + b, + strong { + font-weight: bolder; + } + + /** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + + code, + kbd, + samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ + } + + /** + * Add the correct font style in Android 4.3-. + */ + + dfn { + font-style: italic; + } + + /** + * Add the correct background and color in IE 9-. + */ + + mark { + background-color: #ff0; + color: #000; + } + + /** + * Add the correct font size in all browsers. + */ + + small { + font-size: 80%; + } + + /** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + + sub, + sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + + sub { + bottom: -0.25em; + } + + sup { + top: -0.5em; + } + } + + @if _normalize-include(embedded) { + /* Embedded content + ========================================================================== */ + + /** + * Add the correct display in IE 9-. + */ + + audio, + video { + display: inline-block; + } + + /** + * Add the correct display in iOS 4-7. + */ + + audio:not([controls]) { + display: none; + height: 0; + } + + /** + * Remove the border on images inside links in IE 10-. + */ + + img { + border-style: none; + } + + /** + * Hide the overflow in IE. + */ + + svg:not(:root) { + overflow: hidden; + } + } + + @if _normalize-include(forms) { + /* Forms + ========================================================================== */ + + /** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + + button, + input, + optgroup, + select, + textarea { + font-family: if($base-font-family, $base-font-family, sans-serif); /* 1 */ + font-size: 100%; /* 1 */ + @if $normalize-vertical-rhythm { + line-height: ($base-line-height / $base-font-size) * 1em; /* 1 */ + } + @else { + line-height: 1.15; /* 1 */ + } + margin: 0; /* 2 */ + } + + /** + * Show the overflow in IE. + */ + + button { + overflow: visible; + } + + /** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + + button, + select { /* 1 */ + text-transform: none; + } + + /** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + + button, + html [type="button"], /* 1 */ + [type="reset"], + [type="submit"] { + -webkit-appearance: button; /* 2 */ + } + + button, + [type="button"], + [type="reset"], + [type="submit"] { + + /** + * Remove the inner border and padding in Firefox. + */ + + &::-moz-focus-inner { + border-style: none; + padding: 0; + } + + /** + * Restore the focus styles unset by the previous rule. + */ + + &:-moz-focusring { + outline: 1px dotted ButtonText; + } + } + + /** + * Show the overflow in Edge. + */ + + input { + overflow: visible; + } + + /** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + + [type="checkbox"], + [type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + } + + /** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + + [type="number"]::-webkit-inner-spin-button, + [type="number"]::-webkit-outer-spin-button { + height: auto; + } + + /** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + + [type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ + + /** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ + + &::-webkit-search-cancel-button, + &::-webkit-search-decoration { + -webkit-appearance: none; + } + } + + /** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + + ::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ + } + + /** + * Correct the padding in Firefox. + */ + + fieldset { + padding: 0.35em 0.75em 0.625em; + } + + /** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + + legend { + box-sizing: border-box; /* 1 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + color: inherit; /* 2 */ + white-space: normal; /* 1 */ + } + + /** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + + progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ + } + + /** + * Remove the default vertical scrollbar in IE. + */ + + textarea { + overflow: auto; + } + } + + @if _normalize-include(interactive) { + /* Interactive + ========================================================================== */ + + /* + * Add the correct display in Edge, IE, and Firefox. + */ + + details { + display: block; + } + + /* + * Add the correct display in all browsers. + */ + + summary { + display: list-item; + } + + /* + * Add the correct display in IE 9-. + */ + + menu { + display: block; + + @if $normalize-vertical-rhythm { + /* + * 1. Set 1 unit of vertical rhythm on the top and bottom margin. + * 2. Set consistent space for the list style image. + */ + + @include normalize-margin(1 0); /* 1 */ + padding: 0 0 0 $indent-amount; /* 2 */ + + /** + * Turn off margins on nested lists. + */ + + menu &, + ol &, + ul & { + margin: 0; + } + } + } + } + + @if _normalize-include(scripting) { + /* Scripting + ========================================================================== */ + + /** + * Add the correct display in IE 9-. + */ + + canvas { + display: inline-block; + } + + /** + * Add the correct display in IE. + */ + + template { + display: none; + } + } + + @if _normalize-include(hidden) { + /* Hidden + ========================================================================== */ + + /** + * Add the correct display in IE 10-. + */ + + [hidden] { + display: none; + } + } +} diff --git a/assets/styles/normalize/_variables.scss b/assets/styles/normalize/_variables.scss new file mode 100755 index 000000000..10d05ed76 --- /dev/null +++ b/assets/styles/normalize/_variables.scss @@ -0,0 +1,36 @@ +// +// Variables +// +// You can override the default values by setting the variables in your Sass +// before importing the normalize-scss library. + +// The font size set on the root html element. +$base-font-size: 16px !default; + +// The base line height determines the basic unit of vertical rhythm. +$base-line-height: 24px !default; + +// The length unit in which to output vertical rhythm values. +// Supported values: px, em, rem. +$base-unit: 'em' !default; + +// The default font family. +$base-font-family: null !default; + +// The font sizes for h1-h6. +$h1-font-size: 2 * $base-font-size !default; +$h2-font-size: 1.5 * $base-font-size !default; +$h3-font-size: 1.17 * $base-font-size !default; +$h4-font-size: 1 * $base-font-size !default; +$h5-font-size: 0.83 * $base-font-size !default; +$h6-font-size: 0.67 * $base-font-size !default; + +// The amount lists and blockquotes are indented. +$indent-amount: 40px !default; + +// The following variable controls whether normalize-scss will output +// font-sizes, line-heights and block-level top/bottom margins that form a basic +// vertical rhythm on the page, which differs from the original Normalize.css. +// However, changing any of the variables above will cause +// $normalize-vertical-rhythm to be automatically set to true. +$normalize-vertical-rhythm: false !default; diff --git a/assets/styles/normalize/_vertical-rhythm.scss b/assets/styles/normalize/_vertical-rhythm.scss new file mode 100755 index 000000000..4f53647ca --- /dev/null +++ b/assets/styles/normalize/_vertical-rhythm.scss @@ -0,0 +1,61 @@ +// +// Vertical Rhythm +// +// This is the minimal amount of code needed to create vertical rhythm in our +// CSS. If you are looking for a robust solution, look at the excellent Typey +// library. @see https://github.com/jptaranto/typey + +@function normalize-rhythm($value, $relative-to: $base-font-size, $unit: $base-unit) { + @if unit($value) != px { + @error "The normalize vertical-rhythm module only supports px inputs. The typey library is better."; + } + @if $unit == rem { + @return ($value / $base-font-size) * 1rem; + } + @else if $unit == em { + @return ($value / $relative-to) * 1em; + } + @else { // $unit == px + @return $value; + } +} + +@mixin normalize-font-size($value, $relative-to: $base-font-size) { + @if unit($value) != 'px' { + @error "normalize-font-size() only supports px inputs. The typey library is better."; + } + font-size: normalize-rhythm($value, $relative-to); +} + +@mixin normalize-rhythm($property, $values, $relative-to: $base-font-size) { + $value-list: $values; + $sep: space; + @if type-of($values) == 'list' { + $sep: list-separator($values); + } + @else { + $value-list: append((), $values); + } + + $normalized-values: (); + @each $value in $value-list { + @if unitless($value) and $value != 0 { + $value: $value * normalize-rhythm($base-line-height, $relative-to); + } + $normalized-values: append($normalized-values, $value, $sep); + } + #{$property}: $normalized-values; +} + +@mixin normalize-margin($values, $relative-to: $base-font-size) { + @include normalize-rhythm(margin, $values, $relative-to); +} + +@mixin normalize-line-height($font-size, $min-line-padding: 2px) { + $lines: ceil($font-size / $base-line-height); + // If lines are cramped include some extra leading. + @if ($lines * $base-line-height - $font-size) < ($min-line-padding * 2) { + $lines: $lines + 1; + } + @include normalize-rhythm(line-height, $lines, $font-size); +} diff --git a/assets/styles/styles-dark.scss b/assets/styles/styles-dark.scss new file mode 100644 index 000000000..93e860fb6 --- /dev/null +++ b/assets/styles/styles-dark.scss @@ -0,0 +1,7 @@ +@import "normalize/import-now"; + +html { + width: 100%; + display: flex; +} +body { height: 100%; } diff --git a/assets/styles/styles-light.scss b/assets/styles/styles-light.scss new file mode 100644 index 000000000..3e21bf50d --- /dev/null +++ b/assets/styles/styles-light.scss @@ -0,0 +1 @@ +@import "normalize/import-now"; diff --git a/config.toml b/config.toml index 965f80dc0..e6a024426 100644 --- a/config.toml +++ b/config.toml @@ -1,3 +1,10 @@ baseURL = "http://docs.influxdata.com/" languageCode = "en-us" title = "InfluxDB Documentation" + +# Git history information for lastMod-type functionality +enableGitInfo = true + +# Syntax Highlighting +pygmentsCodefences = true +pygmentsUseClasses = true diff --git a/content/v2.0/UI/using-tasks.md b/content/v2.0/UI/using-tasks.md index 1107084c6..7014b0731 100644 --- a/content/v2.0/UI/using-tasks.md +++ b/content/v2.0/UI/using-tasks.md @@ -3,7 +3,7 @@ title: Using tasks description: This is just an example post to show the format of new 2.0 posts menu: v2_0: - name: Example post + name: Using tasks weight: 1 --- @@ -11,7 +11,7 @@ menu: * Enable the **Show Inactive** option to include inactive tasks on the list. * Enter text in the **Filter tasks by name** field to search for tasks by name. * Select an organization from the **All Organizations** dropdown to filter the list by organization. -* Click on the heading of any column to sort by that field. +* Click on the heading of any column to sort by that field. **To import a task**: 1. Click the Tasks (calendar) icon in the left navigation menu. diff --git a/layouts/_default/section.html b/layouts/_default/section.html index a903ad606..49d44285b 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -1,4 +1,6 @@ {{ partial "header.html" . }} +{{ partial "topnav.html" . }} +{{ partial "sidebar.html" . }}

{{ .Title }}

diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 1cb1441bd..efb22e6ef 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -6,5 +6,6 @@ {{ if .Params.seotitle }} {{ .Params.seotitle }} {{ else if .Title }} {{ .Title }} {{ end }} | InfluxData Documentation + {{ partial "nested/stylesheets.html"}} diff --git a/layouts/partials/nested/stylesheets.html b/layouts/partials/nested/stylesheets.html new file mode 100644 index 000000000..409c4dd94 --- /dev/null +++ b/layouts/partials/nested/stylesheets.html @@ -0,0 +1,9 @@ +{{ $cssOptionsDark := (dict "targetPath" "dark-theme.css" "compressed" "nested" "enableSourceMap" true) }} +{{ $cssOptionsLight := (dict "targetPath" "light-theme.css" "compressed" "nested" "enableSourceMap" true) }} +{{ $PostCSSOptions := (dict "use" "autoprefixer" "noMap" false) }} + +{{ $stylesDark := resources.Get "styles/styles-dark.scss" | toCSS $cssOptionsDark | postCSS $PostCSSOptions | minify | fingerprint }} + + +{{ $stylesLight := resources.Get "styles/styles-light.scss" | toCSS $cssOptionsLight | postCSS $PostCSSOptions | minify | fingerprint }} + diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html new file mode 100644 index 000000000..e69de29bb diff --git a/layouts/partials/topnav.html b/layouts/partials/topnav.html new file mode 100644 index 000000000..e69de29bb From 1572941a188d5c1295158e2148edf5e493915462 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 19 Dec 2018 14:40:52 -0700 Subject: [PATCH 02/28] finished nodejs content in the readme --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d075ffec8..aebe7d681 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,10 @@ accessible at [docs.influxdata.com](https://docs.influxdata.com). Hugo is the static site generator used to build the InfluxData documentation. [Download and install Hugo](https://gohugo.io/getting-started/installing/) to run the docs locally. -### Install NodeJS +### Install NodeJS & Asset Pipeline Tools +This project uses tools built in NodeJS to build and process stylesheets and javascript. +In order for the asset pipeline to work, [install NodeJS](https://nodejs.org/en/download/) +and run the following to install the necessary tools: ```sh npm i -g postcss-cli autoprefixer From 6039a52f27d4b47bb88c56ea22fc808312640996 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 20 Dec 2018 11:37:31 -0700 Subject: [PATCH 03/28] established base for top nav structure and styles --- assets/styles/layouts/_layout-global.scss | 30 +++++ assets/styles/layouts/_layout-topnav.scss | 49 +++++++ assets/styles/normalize/_import-now.scss | 2 +- assets/styles/{ => normalize}/_normalize.scss | 0 assets/styles/styles-dark.scss | 7 - assets/styles/styles-default.scss | 13 ++ assets/styles/styles-light.scss | 9 +- assets/styles/themes/_theme-dark.scss | 19 +++ assets/styles/themes/_theme-light.scss | 13 ++ assets/styles/tools/_color-palette.scss | 73 ++++++++++ assets/styles/tools/_icomoon.scss | 125 ++++++++++++++++++ layouts/_default/section.html | 1 - layouts/partials/header.html | 8 +- .../{nested => header}/stylesheets.html | 2 +- layouts/partials/topnav.html | 14 ++ static/fonts/KlavikaBoldBoldItalic.otf | Bin 0 -> 19956 bytes static/fonts/KlavikaLight-ItalicTF.otf | Bin 0 -> 19576 bytes static/fonts/icomoon.eot | Bin 0 -> 8088 bytes static/fonts/icomoon.svg | 43 ++++++ static/fonts/icomoon.ttf | Bin 0 -> 7924 bytes static/fonts/icomoon.woff | Bin 0 -> 8000 bytes 21 files changed, 395 insertions(+), 13 deletions(-) create mode 100644 assets/styles/layouts/_layout-global.scss create mode 100644 assets/styles/layouts/_layout-topnav.scss rename assets/styles/{ => normalize}/_normalize.scss (100%) delete mode 100644 assets/styles/styles-dark.scss create mode 100644 assets/styles/styles-default.scss create mode 100644 assets/styles/themes/_theme-dark.scss create mode 100644 assets/styles/themes/_theme-light.scss create mode 100644 assets/styles/tools/_color-palette.scss create mode 100644 assets/styles/tools/_icomoon.scss rename layouts/partials/{nested => header}/stylesheets.html (81%) create mode 100644 static/fonts/KlavikaBoldBoldItalic.otf create mode 100644 static/fonts/KlavikaLight-ItalicTF.otf create mode 100755 static/fonts/icomoon.eot create mode 100755 static/fonts/icomoon.svg create mode 100755 static/fonts/icomoon.ttf create mode 100755 static/fonts/icomoon.woff diff --git a/assets/styles/layouts/_layout-global.scss b/assets/styles/layouts/_layout-global.scss new file mode 100644 index 000000000..42d0de952 --- /dev/null +++ b/assets/styles/layouts/_layout-global.scss @@ -0,0 +1,30 @@ +@font-face { + font-family: 'Klavika-Light'; + src: url(../fonts/KlavikaLight-ItalicTF.otf); + font-weight: 200; + font-style: italic; +} +@font-face { + font-family: 'Klavika-Bold'; + src: url(../fonts/KlavikaBoldBoldItalic.otf); + font-weight: 700; + font-style: italic; +} + +html { + height: 100%; +} + +body { + min-height: 100%; + font-family: Roboto, sans-serif; + background: $body-bg; +} + +* { + box-sizing: border-box; +} + +a { + transition: all .2s; +} diff --git a/assets/styles/layouts/_layout-topnav.scss b/assets/styles/layouts/_layout-topnav.scss new file mode 100644 index 000000000..af95a2f92 --- /dev/null +++ b/assets/styles/layouts/_layout-topnav.scss @@ -0,0 +1,49 @@ +.topnav { + padding: .75em; + + &--left { + + } + &--right { + + } + + .influx-home { + font-family: 'icomoon'; + font-size: 2.1em; + color: $topnav-logo; + text-decoration: none; + vertical-align: middle; + + &:hover { + color: $topnav-logo-hover; + } + + .icon-influx-logotype { + margin-left: -.8rem; + } + } + + .divider { + height: 100%; border-left: 1px solid rgba($topnav-logo, .5); + margin-right: 1rem; + } + + .docs-home { + display: inline-block; + vertical-align: text-top; + font-family: 'Klavika-Light'; + font-size: 1.25rem; + color: $topnav-logo; + text-decoration: none; + + &:hover { + color: $topnav-logo-hover; + } + } + + + + + +} diff --git a/assets/styles/normalize/_import-now.scss b/assets/styles/normalize/_import-now.scss index aac5d2b69..edbdfff05 100755 --- a/assets/styles/normalize/_import-now.scss +++ b/assets/styles/normalize/_import-now.scss @@ -7,5 +7,5 @@ // @import "normalize/import-now"; // ``` -@import '../normalize'; +@import 'normalize'; @include normalize(); diff --git a/assets/styles/_normalize.scss b/assets/styles/normalize/_normalize.scss similarity index 100% rename from assets/styles/_normalize.scss rename to assets/styles/normalize/_normalize.scss diff --git a/assets/styles/styles-dark.scss b/assets/styles/styles-dark.scss deleted file mode 100644 index 93e860fb6..000000000 --- a/assets/styles/styles-dark.scss +++ /dev/null @@ -1,7 +0,0 @@ -@import "normalize/import-now"; - -html { - width: 100%; - display: flex; -} -body { height: 100%; } diff --git a/assets/styles/styles-default.scss b/assets/styles/styles-default.scss new file mode 100644 index 000000000..1f1acd290 --- /dev/null +++ b/assets/styles/styles-default.scss @@ -0,0 +1,13 @@ +// InfluxData Docs Default Theme (Dark) + +// Import Tools +@import "tools/color-palette", + "tools/icomoon"; + +// Import default dark theme +@import "themes/theme-dark.scss"; + +// Import Layout Styles +@import "normalize/import-now", + "layouts/layout-global", + "layouts/layout-topnav"; diff --git a/assets/styles/styles-light.scss b/assets/styles/styles-light.scss index 3e21bf50d..e15b24e57 100644 --- a/assets/styles/styles-light.scss +++ b/assets/styles/styles-light.scss @@ -1 +1,8 @@ -@import "normalize/import-now"; +// InfluxData Docs Theme File +// Light Theme + +// Provide light them overrides +@import "themes/theme-light"; + +// Import default theme +@import "styles-default"; diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss new file mode 100644 index 000000000..e23ee2ceb --- /dev/null +++ b/assets/styles/themes/_theme-dark.scss @@ -0,0 +1,19 @@ +/* + + DARK THEME + ____________________________________________________________ + + Notes: + - This file is interchangeable with themes/theme-light.scss + - Only contains color variables + +*/ + +// General Styles +// -------------------------------------------------- + +$body-bg: $g1-raven !default; + +// TopNav Colors +$topnav-logo: $g20-white !default; +$topnav-logo-hover: $b-ocean !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss new file mode 100644 index 000000000..1d52590d0 --- /dev/null +++ b/assets/styles/themes/_theme-light.scss @@ -0,0 +1,13 @@ +/* + + LIGHT THEME + ____________________________________________________________ + + Notes: + - This file is interchangeable with themes/theme-dark.scss + - Only contains color variables + +*/ + +// General Styles +// -------------------------------------------------- diff --git a/assets/styles/tools/_color-palette.scss b/assets/styles/tools/_color-palette.scss new file mode 100644 index 000000000..ae3aa0e57 --- /dev/null +++ b/assets/styles/tools/_color-palette.scss @@ -0,0 +1,73 @@ +// Influx Color Palette + +// Greys (Dark to Light) +$g0-obsidian: #0F0E15; +$g1-raven: #1C1C21; +$g2-kevlar: #202028; +$g3-castle: #292933; +$g4-onyx: #2C2C38; +$g5-pepper: #383846; +$g6-smoke: #434453; +$g7-graphite: #545667; +$g8-storm: #676978; +$g9-mountain: #757888; +$g10-wolf: #8E91A1; +$g11-sidewalk: #999DAB; +$g12-forge: #A4A8B6; +$g13-mist: #BEC2CC; +$g14-chromium: #C6CAD3; +$g15-platinum: #D4D7DD; +$g16-pearl: #E7E8EB; +$g17-whisper: #EEEFF2; +$g18-cloud: #F6F6F8; +$g19-ghost: #FAFAFC; +$g20-white: #ffffff; + +// Oranges (Dark to Light) +$o-basalt: #2F1F29; +$o-ember: #6F3943; +$o-ruby: #BF3D5E; +$o-fire: #DC4E58; +$o-curacao: #F95F53; +$o-dreamsicle: #FF8564; +$o-tungsten: #FFB6A0; +$o-marmelade: #FFDCCF; +$o-orangecream: #EADAD8; +$o-flan: #FFF7F4; + +// Blues (Dark to Light) +$b-abyss: #182838; +$b-deepsea: #32547F; +$b-sapphire: #326BBA; +$b-ocean: #4591ED; +$b-pool: #22ADF6; +$b-laser: #00C9FF; +$b-hydrogen: #6BDFFF; +$b-neutrino: #BEF0FF; +$b-snow: #C9E0ED; +$b-yeti: #F0FCFF; + +// Purples (Dark to Light) +$p-shadow: #1F2039; +$p-void: #311F94; +$p-purplerain: #484281; +$p-planet: #513CC6; +$p-star: #7A65F2; +$p-comet: #9394FF; +$p-potassium: #B1B6FF; +$p-moonstone: #C9D0FF; +$p-quartz: #D6D5ED; +$p-violettecreme: #F2F4FF; + +// Greens (Dark to Light) +$gr-gypsy: #152B2D; +$gr-grass: #2B6058; +$gr-emerald: #108174; +$gr-viridian: #32B08C; +$gr-canopy: #20B76F; +$gr-rainforest: #4ED8A0; +$gr-honeydew: #7CE490; +$gr-krypton: #A5F3B4; +$gr-wasabi: #C6FFD0; +$gr-forestfog: #CFE6E1; +$gr-mint: #F2FFF4; diff --git a/assets/styles/tools/_icomoon.scss b/assets/styles/tools/_icomoon.scss new file mode 100644 index 000000000..41f13b515 --- /dev/null +++ b/assets/styles/tools/_icomoon.scss @@ -0,0 +1,125 @@ +@font-face { + font-family: 'icomoon'; + src: url('fonts/icomoon.eot?qtz244'); + src: url('fonts/icomoon.eot?qtz244#iefix') format('embedded-opentype'), + url('fonts/icomoon.ttf?qtz244') format('truetype'), + url('fonts/icomoon.woff?qtz244') format('woff'), + url('fonts/icomoon.svg?qtz244#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="icon-"], [class*=" icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-influx-logo:before { + content: "\e900"; +} +.icon-influx-logotype:before { + content: "\e901"; +} +.icon-sun:before { + content: "\e902"; +} +.icon-moon:before { + content: "\e903"; +} +.icon-files-empty:before { + content: "\e925"; +} +.icon-folder-download:before { + content: "\e933"; +} +.icon-folder-upload:before { + content: "\e934"; +} +.icon-map2:before { + content: "\e94c"; +} +.icon-clock:before { + content: "\e94e"; +} +.icon-download:before { + content: "\e960"; +} +.icon-upload:before { + content: "\e961"; +} +.icon-zoom-in:before { + content: "\e987"; +} +.icon-zoom-out:before { + content: "\e988"; +} +.icon-cog:before { + content: "\e994"; +} +.icon-plus:before { + content: "\ea0a"; +} +.icon-minus:before { + content: "\ea0b"; +} +.icon-cancel-circle:before { + content: "\ea0d"; +} +.icon-blocked:before { + content: "\ea0e"; +} +.icon-cross:before { + content: "\ea0f"; +} +.icon-checkmark:before { + content: "\ea10"; +} +.icon-checkmark2:before { + content: "\ea11"; +} +.icon-arrow-up-left2:before { + content: "\ea39"; +} +.icon-arrow-up2:before { + content: "\ea3a"; +} +.icon-arrow-up-right2:before { + content: "\ea3b"; +} +.icon-arrow-right2:before { + content: "\ea3c"; +} +.icon-arrow-down-right2:before { + content: "\ea3d"; +} +.icon-arrow-down2:before { + content: "\ea3e"; +} +.icon-arrow-down-left2:before { + content: "\ea3f"; +} +.icon-arrow-left2:before { + content: "\ea40"; +} +.icon-new-tab:before { + content: "\ea7e"; +} +.icon-tux:before { + content: "\eabd"; +} +.icon-appleinc:before { + content: "\eabe"; +} +.icon-windows8:before { + content: "\eac2"; +} diff --git a/layouts/_default/section.html b/layouts/_default/section.html index 49d44285b..45b26052f 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -1,5 +1,4 @@ {{ partial "header.html" . }} -{{ partial "topnav.html" . }} {{ partial "sidebar.html" . }}

{{ .Title }}

diff --git a/layouts/partials/header.html b/layouts/partials/header.html index efb22e6ef..ace695190 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -5,7 +5,11 @@ - {{ if .Params.seotitle }} {{ .Params.seotitle }} {{ else if .Title }} {{ .Title }} {{ end }} | InfluxData Documentation - {{ partial "nested/stylesheets.html"}} + {{ if .Params.seotitle }} {{ print .Params.seotitle " | " }} {{ else if .Title }} {{ print .Title " | " }} {{ end }}InfluxData Documentation + + {{ partial "header/stylesheets.html"}} + + + {{ partial "topnav.html" }} diff --git a/layouts/partials/nested/stylesheets.html b/layouts/partials/header/stylesheets.html similarity index 81% rename from layouts/partials/nested/stylesheets.html rename to layouts/partials/header/stylesheets.html index 409c4dd94..f1ea19ab1 100644 --- a/layouts/partials/nested/stylesheets.html +++ b/layouts/partials/header/stylesheets.html @@ -2,7 +2,7 @@ {{ $cssOptionsLight := (dict "targetPath" "light-theme.css" "compressed" "nested" "enableSourceMap" true) }} {{ $PostCSSOptions := (dict "use" "autoprefixer" "noMap" false) }} -{{ $stylesDark := resources.Get "styles/styles-dark.scss" | toCSS $cssOptionsDark | postCSS $PostCSSOptions | minify | fingerprint }} +{{ $stylesDark := resources.Get "styles/styles-default.scss" | toCSS $cssOptionsDark | postCSS $PostCSSOptions | minify | fingerprint }} {{ $stylesLight := resources.Get "styles/styles-light.scss" | toCSS $cssOptionsLight | postCSS $PostCSSOptions | minify | fingerprint }} diff --git a/layouts/partials/topnav.html b/layouts/partials/topnav.html index e69de29bb..0a7c1eabf 100644 --- a/layouts/partials/topnav.html +++ b/layouts/partials/topnav.html @@ -0,0 +1,14 @@ +
+
+ + + + + + Docs +
+
+
+
+
+
diff --git a/static/fonts/KlavikaBoldBoldItalic.otf b/static/fonts/KlavikaBoldBoldItalic.otf new file mode 100644 index 0000000000000000000000000000000000000000..95bdd9767874e58ab0106761f41ae90ece185e38 GIT binary patch literal 19956 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%0Am><3; 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 GgZ>XobyQIR literal 0 HcmV?d00001 diff --git a/static/fonts/icomoon.eot b/static/fonts/icomoon.eot new file mode 100755 index 0000000000000000000000000000000000000000..322c61988b2a1bd0ffdf5a1d1cbfa862bba4fc73 GIT binary patch literal 8088 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 literal 0 HcmV?d00001 diff --git a/static/fonts/icomoon.svg b/static/fonts/icomoon.svg new file mode 100755 index 000000000..128b87444 --- /dev/null +++ b/static/fonts/icomoon.svg @@ -0,0 +1,43 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/fonts/icomoon.ttf b/static/fonts/icomoon.ttf new file mode 100755 index 0000000000000000000000000000000000000000..016ad4a762899b63d81c1dc95a933dd86c6daa58 GIT binary patch literal 7924 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 literal 0 HcmV?d00001 diff --git a/static/fonts/icomoon.woff b/static/fonts/icomoon.woff new file mode 100755 index 0000000000000000000000000000000000000000..373ce80e32854ac02bcce1d92040fe48c2c698e4 GIT binary patch literal 8000 zcmb_h4U}8Ob)Gx(e)OKCT}e;U+g)i_(rP8`k9W0Nt)%teS{PW{;2*Gwivu>hHj6Q^ zHrOU1g(LzR!f#7!3i&Cg+tZZxa0=u!O=){l&@oWLX--ZHZ4#2S*@V!rZlGyePI4Ob z+;5(=W`oTpIqB2;xpU{vy>sW@xpQaq;T=;`j2Ny&m3ig2=YQn;T-T0W`7y@GgSu(? zw1+(Qfw`F*fx8yvFUe>2?%5X)&Kv`d_n|Clu zi?2g{Sw3BFtvhiokiZ>BS+?(MZ}&cY?cDKOfcq5656S0uKd+D6aO42!y1|camCx2q1yCGy5{~07sp3pw^Z53m zCklSVl8a(7vpBxEb#eRR%;MdP51sO!3ZAN-`q-&wPMtj6IDHz_3{(tMMVD%N@spr3 zPx()+2G!rSsOa=-wi10U`nBk@(PyGhMDLD%H0p`!k%h<~M`k1YTk>6IE53*kWVXA# zZ4z?EDyv-;-_>(voCmhsE^ZKGtcMM;3ATmpW(V1E_6ZD?7@=HdgwnlQJGGH*^^mRh zP;sohfhH+Ob~M~hS~gGFvTa4RJdMx>Dn}EPsg%bO6h$ko7q#ORE0--NsD~sXr{*Nx zBsCFjl&k1kRw86$T^4d83lZh0c z;29%Txm;Dbb4=IyMch;#SB3uHuYOTc51|KtsjAnZL(X@-Y zvgk6poqmu01lH4{YiX=pDp+SM7zsyVyo#Rd&6dVpBNoS^w%$f*QK*!&Lxh)J(0jE= zL3fQF1`AZT+QH@p*iJ8?0XVFK!6dt1Ns!*^l~vBBTatd6?zz2z?6hv{uK(FRv=*L2 z;3It#9d33?ss+}v(-PI{xh)l$q*BHuZwUlX(8&IPP%mgvyI@Dll}V~tQmxjAOhU(~ zEt=h~P_L#}#(O1yy@ivW3zA4!i?o!Jn9_JQodK1cAWOa-kv-K5OS}ql49vGl5n)x7 zyC-9M^weXnq*O#7$WNKwAKby z0z&11o?f3xgI5Yc&KJPfQk7DC(%$IuO(oM8bgQ?vyL<=1w=JFAocJd+gZLe!iHM@u zfziN*^StNA@yycb30-hLKA*Yr0JT;HRZoJcmC}catpc?&u9WX?ojl~`SHIk(iol}re^q5s{EHbf6X}rE z!KE)4^gPJg4bSN6AywJH#s5Z=HsV}fkdiJZrN3-c_^98|Rp+-&Rq@gWD-?$gx^P~V z<>$?aqHVeKXXJctf|z`n=ongJ@#&RKnjb7l z5}D&{WME)@Fcb=|9~c-}4sYDIZ=-ztmgQge{BYPbjhNxS9eY_})bdv)9bSBX39=f$ z31ZV6cHca)yfA;Z%%*&&)|9+)AJyMw+E@nD51S0#w{vt^;bg0;!%Ln1^LM*zIBQYp zLT3#014#m>F7{3S6aF;IvNdv*(6Jgl?` zk9D$MXt51?z^U9joq`(#vCyTk_65hYxg4A?UBb%>YpBcuSuTzi*C1#YTz^5+rAD@_ zOO23tI5^zdRkU*hUgyD7KA+;#seD`f6L!Y`nc#qZ#Lye_x?$+6*W9~$jpbi(zSW}4 z#0;H&pttcW>|$5va4_DMPc@Q~1O3Q5kSp5*!O!?JcH`r+HDAz;1;0fPH>tW;sbWMo zG%rKOCY2Ob$#F&%r2c4k3lMh#}vOwdok3}u3%1jl1{m+{EnK3#{5I&@00^^9e5!D7S~E5-;nRFuZu zz)>7?!$>6T1{HqdmD&?;UblDOef_xZ+qd_+*67y8W*)jfEI9$Q@Nx_tP-tR18p%V-V`KIxTJ{#ks<{f|Sk9B8O23 zV%veVXZ^TG>55%U{H*3JRu~w0HT~*ceK-F<=_^u^)UT=M+f;LYZ7r+NQ2Jg7@$N0y zbR#lR}Y_{*}NXGAc za44Hu9l*6ZlO0+H)4p^zyCsnbKjm+050v`S1D#`b+O{q5d(z)$qjqyL5q{DqYtw!G zorR^^r+j_(+*$luyfGkWVoMr@6r#SH7X+~s$c&YCY>IsVI?3DsUeXLQu1B89|KNGjGh1n(>x^fz!5r3R-Q7pIG%B1G z+53`ni|hIZ2d^xQ6|rJpIXKwY7msI6T-kWM@BM3{*;HdOf72um(y$gZST@D&Get4@ z%Q5+R_RhnTH|4pV%F56;wF8C5;!*)7hHvoGCxs)PVY?8ACa7Q#UNY;&Aqk=|lBOl3 z9H!=}3I=5fiTYMFMw=z19JJwu)a!(fos+_; z0>p9(s-Vd-ihJIR0FPglsnnIRWGhF(YM9dv64Op{VV-KdCaMy`QdL9jVr&p}yRmNi zF)CEC$tHv6(1advj=k_@dh&(F1I~9S#q~YT&M)s7q`ObPK!5sN;}N>sd5xUQojrel zIpo!FhBqgw$R5B2+XK19#+<{bMhY_FlT#ZjncTaV$HiRZt=D6jOw6fSDP8bPESBMx z(c$xT7}gWqlI3Vf^=nQ|QoY`I%QOr#REC@rn5=VR4(DOe3;T!W)?))TWt4(&(WZ=? zm~-l(a>%J8|1F1Jkvv~%iLm%ERV~Y{x2%^NpOsSh?8{9lNFby>y97oG87!-`4l3M) z73pX}Cb2SR$)k-hqWM_m&G+wfXcrH;y3)J4Hr`z7i0hYC$a+Eyvu-(d*a9tWh?;VW zDLII)96q-~w|7w$dP;)#sw?$50sFM{u`qX~0x~vY(J2)WlHKi{%(Y=MY{^cn)Mx%m z0mtllmC)Oi>;($}>lqzvC<>2%+-WCK_JBM6^p9&Q%E(;|jfFIS0eZpxaQxz)^k6Tl3u}cgi{TZ#(Sod9uupx-KG22A zWA5o{$~{<0ryvvuOxUW?i4{7%l6|mef?wA$W`gOMiD9f>*i{H@Ehv}^rf{4q7nNXL zuxbMnw*hM=t4?*kK3$&|C<@l7N;EdQ?<@dvD`+0>g^a$L$3BB|fXmrk>~Gl{@H1p1 zZj@{8CE>$z*5C{gfiP2ctK0>`j<(hby@;rXXxF^QjpB_TwE$Lu*&==D&uCH zB8Zyfqb0y#j8kd=AO;dQ#rA1pCvm^YoJDYuBtucW~Z+kzPm>EN+V zQ9!Pv9N;tZk!SIV$+_I{RKV=eb=B(dm| zqsJoGa6ukZ_<91liHRKH5YNOS$2VO|{OV1~wYKy_&h{fu{v+hctJrFUB-j`h%W62S zmfiri2np~nSRT=#W&dU-oD=X&*G=Rphp?|#hHvg%cU@0nPvN|qdf@<_u~;g(W2~@l z?b@})(&l6)MHGn?qYVEd?*#)y-Exv<@OtM=*;|-yKv0UOwh^%Q`mY31-^`GRgRs% ze5y_j+sZmkj5`m}hc0ren5vuU7U#hdtwlU>uOrWP{p_mtb#F5-nB)4!dAGU$BsRaN z>)ve`DfvI3T%+ZMcJ6;=%=>v+^ln??Bunmw{7WHXc>0`)$8r|}nA7rs?V^9!EP zIqLZ`Tn+FEJn~y@!As>`EgZvlKc41gBBJ%MpNe%#RJlcYLsitIx>NlN_1l`JeN6k2 zUeo_df7!Fn^SrUf*lrv(9y7ja2F#7-E#~9qf;Z%?`hLszJ-^4*I75%gTm{$C$TVd% z-)-#4*0>NNsXJ;erOu{Xco|`3CLu2c@Xak)#pz0<1#7@x+=5N~k8>{qEGY&sZK!F& z9Pq&wEC8=>!3yBpTCmEZEZKrJ;CHrQlZ~^_9XfDi?#PkD><~M^j^JSS2!4lm&mKK? z=*Zz@VPq8l_06)Q>=+180X_vb!bZ>8>YT`(vj=a!Vdf}=&Z46?vm4k9J9<({*NTL95}KKeH+2fLCQW3=?B5)u-l^ Date: Thu, 20 Dec 2018 23:31:58 -0700 Subject: [PATCH 04/28] finished out topnav along with js interactions --- assets/js/docs-themes.js | 39 +++++ assets/js/jquery-3.3.1.min.js | 2 + assets/js/js.cookie.js | 165 +++++++++++++++++++++ assets/js/version-selector.js | 11 ++ assets/styles/layouts/_layout-global.scss | 4 + assets/styles/layouts/_layout-sidebar.scss | 0 assets/styles/layouts/_layout-topnav.scss | 107 +++++++++++-- assets/styles/styles-default.scss | 3 +- assets/styles/themes/_theme-dark.scss | 11 +- assets/styles/themes/_theme-light.scss | 12 ++ assets/styles/tools/_icomoon.scss | 19 ++- content/v2.0/_index.md | 4 +- layouts/_default/section.html | 11 +- layouts/_default/single.html | 10 +- layouts/partials/footer.html | 1 + layouts/partials/footer/javascript.html | 4 + layouts/partials/header.html | 6 +- layouts/partials/header/javascript.html | 6 + layouts/partials/header/stylesheets.html | 12 +- layouts/partials/topnav.html | 14 +- static/fonts/icomoon.eot | Bin 8088 -> 8984 bytes static/fonts/icomoon.svg | 3 + static/fonts/icomoon.ttf | Bin 7924 -> 8820 bytes static/fonts/icomoon.woff | Bin 8000 -> 8896 bytes 24 files changed, 402 insertions(+), 42 deletions(-) create mode 100644 assets/js/docs-themes.js create mode 100644 assets/js/jquery-3.3.1.min.js create mode 100644 assets/js/js.cookie.js create mode 100644 assets/js/version-selector.js create mode 100644 assets/styles/layouts/_layout-sidebar.scss create mode 100644 layouts/partials/footer/javascript.html create mode 100644 layouts/partials/header/javascript.html diff --git a/assets/js/docs-themes.js b/assets/js/docs-themes.js new file mode 100644 index 000000000..720517f77 --- /dev/null +++ b/assets/js/docs-themes.js @@ -0,0 +1,39 @@ +/* + Copied and pasted this script for CSS swaps w/ cookies from + http://www.thesitewizard.com/javascripts/change-style-sheets.shtml +*/ + +// *** TO BE CUSTOMISED *** +var style_cookie_name = "influx-docs-theme" ; +var style_cookie_duration = 30 ; +var style_domain = "docs.influxdata.com" ; + +// *** END OF CUSTOMISABLE SECTION *** +// You do not need to customise anything below this line + +function switch_style ( css_title ) +{ +// You may use this script on your site free of charge provided +// you do not remove this notice or the URL below. Script from +// http://www.thesitewizard.com/javascripts/change-style-sheets.shtml + var i, link_tag ; + for (i = 0, link_tag = document.getElementsByTagName("link") ; + i < link_tag.length ; i++ ) { + if ((link_tag[i].rel.indexOf("stylesheet") != -1) && + link_tag[i].title) { + link_tag[i].disabled = true ; + if (link_tag[i].title == css_title) { + link_tag[i].disabled = false ; + } + } + Cookies.set(style_cookie_name, css_title); + } +} + +function set_style_from_cookie() +{ + var css_title = Cookies.get(style_cookie_name); + if (css_title !== undefined) { + switch_style(css_title); + } +} diff --git a/assets/js/jquery-3.3.1.min.js b/assets/js/jquery-3.3.1.min.js new file mode 100644 index 000000000..4d9b3a258 --- /dev/null +++ b/assets/js/jquery-3.3.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" diff --git a/layouts/partials/header.html b/layouts/partials/header.html index ace695190..8254c7c88 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -10,6 +10,10 @@ {{ partial "header/stylesheets.html"}} + + {{ partial "header/javascript.html"}} + + - {{ partial "topnav.html" }} + {{ partial "topnav.html" . }} diff --git a/layouts/partials/header/javascript.html b/layouts/partials/header/javascript.html new file mode 100644 index 000000000..6b54a4cf9 --- /dev/null +++ b/layouts/partials/header/javascript.html @@ -0,0 +1,6 @@ +{{ $jquery := resources.Get "js/jquery-3.3.1.min.js" }} +{{ $cookies := resources.Get "js/js.cookie.js" }} +{{ $themes := resources.Get "js/docs-themes.js" }} +{{ $headerjs := slice $jquery $cookies $themes | resources.Concat "js/header.bundle.js" }} + + diff --git a/layouts/partials/header/stylesheets.html b/layouts/partials/header/stylesheets.html index f1ea19ab1..52db3f8a7 100644 --- a/layouts/partials/header/stylesheets.html +++ b/layouts/partials/header/stylesheets.html @@ -1,9 +1,9 @@ -{{ $cssOptionsDark := (dict "targetPath" "dark-theme.css" "compressed" "nested" "enableSourceMap" true) }} -{{ $cssOptionsLight := (dict "targetPath" "light-theme.css" "compressed" "nested" "enableSourceMap" true) }} +{{ $cssOptionsDark := (dict "targetPath" "dark-theme.css" "outputStyle" "compressed" "enableSourceMap" true) }} +{{ $cssOptionsLight := (dict "targetPath" "light-theme.css" "outputStyle" "compressed" "enableSourceMap" true) }} {{ $PostCSSOptions := (dict "use" "autoprefixer" "noMap" false) }} -{{ $stylesDark := resources.Get "styles/styles-default.scss" | toCSS $cssOptionsDark | postCSS $PostCSSOptions | minify | fingerprint }} - +{{ $stylesDark := resources.Get "styles/styles-default.scss" | toCSS $cssOptionsDark | postCSS $PostCSSOptions | fingerprint }} + -{{ $stylesLight := resources.Get "styles/styles-light.scss" | toCSS $cssOptionsLight | postCSS $PostCSSOptions | minify | fingerprint }} - +{{ $stylesLight := resources.Get "styles/styles-light.scss" | toCSS $cssOptionsLight | postCSS $PostCSSOptions | fingerprint }} + diff --git a/layouts/partials/topnav.html b/layouts/partials/topnav.html index 0a7c1eabf..7b89880a8 100644 --- a/layouts/partials/topnav.html +++ b/layouts/partials/topnav.html @@ -8,7 +8,17 @@ Docs
-
-
+
+ {{ $currentVersion := (index (findRE "[^/]+.*?" .RelPermalink) 0) }} +

{{ $currentVersion }}

+
    + {{ range .Site.Menus.versions.ByName.Reverse }} +
  • {{ .Name }}
  • + {{ end }} +
+ + + +
diff --git a/static/fonts/icomoon.eot b/static/fonts/icomoon.eot index 322c61988b2a1bd0ffdf5a1d1cbfa862bba4fc73..70942ccb6f8fdac918e5d8a29349decd941db914 100755 GIT binary patch delta 1224 zcmZWoU1%It6h3$6X72oKb|%cvhGaJhyW8E3vYW6wJG1_EDakA*LIbg<R1NEUb{V ziwz`-vc4!vUrZ;}RH!J@pwx##Dike+`XCj2P0@#fYs!N;Lx?pEBpR$31j0(V@L;pt7s=0?RuyAar2jr8}aVvtIjR} z`4u4XW~*6W9=Uh(Jiz!djB{FepsLC_^f%E@x7w@g=Pya8(7%HIrzk67c~&dF1&z#{_5BLNOPC0T!&oF;<5M_x$W zv3|C`v#wj0tkc%pmSV}~ZFAdfnN3V0ew~Z^9ZuSLi`y5w9PGkb{z>jG6ySM)1IcWG zWHV*kJxE-~b*z{ruqZK&*cgdfrJ{r9xMjg16H@#`P?V$|q&pl}b=<|_n6A%GO}U~< zDK8`@G}TF^Cv$UgVTdu2NF&|Rg<`SNt{&En*?hsCdwp!AGG^!VGlm{LI~-ed-Gh~4 zaba{sA|ewtAwHLzOsC7LHlAP{PgSu}n3~mfE;_zGZ|4g$hHBr+gTUlf@s;!34~e|q61Y%QcIu|@I@r?#+*{oG7W)G3Z@a< zRN2mClbPp82qcIhu*dYVRG9b-2{OAuKsIAniBpVOhDvY%v4;rU#|Yg269`!Dk$euk zM#Bqi+ViFZlQm67`x@uuF@`EVQRL-;+LGKwWJys~naY&08cN3%p}l^}odKDz;j1wb zV>sGI5Uec8n!1CCD0)c7n1=`%?$z`fB+;un?Jb3&VTBsS(jhypJiQn;B+E0}eV+E% zgO&2jy?zv|v&_?eL*b3w@26-NDaC`n5K3X^HRXw+`2Nb}wd3lue}Y1T7YIKc`ayf} z^{>QTlJocCDQOqcTWG$oCEi~+DinlIgl~kKOk^!~hFukHaa(ev73n?cclix@PoYXq uIi`G|e6Q?B3Xv0$4dZ2L0{r~k(-;_JG=O}SjNFoni5uAUfP5by ze@ae%a$=)G`xPJ`sGq?nH?g9C!I*Ic1B0v%kgt%Jn43D&i}N>-4^+?CR*+v@!oUoa zVUPprVNhUTW?|HxoWj`6$UON2qqpp1v1?-c#rBD<73&bI72^ + + + diff --git a/static/fonts/icomoon.ttf b/static/fonts/icomoon.ttf index 016ad4a762899b63d81c1dc95a933dd86c6daa58..842f1c9844517e22e07f8a5e323df18044c578d5 100755 GIT binary patch delta 1232 zcmZWpU1%It6h3$7X6~Jt?cRwqI~$YTB<^l^H_GmY{h3*R+E9`SCYA zt_>v6RD|t|qVz>OsaheTNJFJQ1fn2X#0rXn_?A*1ih|G=p)FFSpn_*+SFr8Cxp&U_ z?)lE&<=))0%4)qPx)2+_h`sTK>iuz}$zu!LI zI8guS%m+w1{wx|6JN5Myu*n6~KSq80#d@cCZeIBde}BLrudWuc+>wQZfYPFb3zMt_ZNMO)G4&Ng{S>4snz&PtDjeuDx$39vVr zEs$)cT5YbQcsMssG&VP-x0_7KdVnF;gr$ zTu>^>iE&-nsq{o{E-nu;#)&fA9a$)qYMrS=hB=cjROU{O4%bF2`TVqLM9vPy79D4Q ztyEeV8CD2qT$kf>xrubTD)g}g3rSS)TA?^&7@^46`g|o{m^RHrQ+pzYIi1f}Mj!Qi zBEdB{FO6V7H7$%>k?l$4{U zKdEXZlTBv!kpM^#Q)c(o$5Mgg8YLWX)V-3CeYqE5O?!Oo$>(SAa~L~iz7^ox|DpE-`;!yTizog7jrunbt{(Uv zUx(iAnQ@2Yyo2$SvWw_76whnNUtf4mF39i6pUYPmXDxPyUE&qKrPxYac}@9UeM!Bg zQ7xw((caL$)$W7~;iKWV!rz7ej64>3C-Nnd`!80GY{4Es5`?_V#MoI#oG1SRw9MK^ delta 377 zcmez3^2N5EfsuiMft#U$ftkU;KUm+0Ux-5-D6$8L6OwZi3sO5$k25eZ%7Dbu6N?Lg zv;dHQ14whE=TxT21RXB|@*glTNC{-5CZ0pzP> zqgU|^8d0rC~{5_3~$dU5^+ z@_`x{+Y0iFOMngq0y&@_1_cIY7VU`#x*3@#`!IS-J{G$swqIF?P`h zqKidSMUysfU{vJXY|E!ED3iZm>UTW9%~u9)7LYLvHymrYVf5q%d2>e9$vfng8675n zke8nPU!G$!w?dLT3#$Ta5bGw^J8W!hb!;El8`!t8U*fRgIKpYg>Bm{bxs3A`mjIU& pR|VH9t_R#g+zvb~Jdb!ez(K3ZxQu}pY!%bwgN(wP&nqlt1OQ}RT?+sJ diff --git a/static/fonts/icomoon.woff b/static/fonts/icomoon.woff index 373ce80e32854ac02bcce1d92040fe48c2c698e4..c897e8a4ada84ca341af54c0f326a63bef4dfb62 100755 GIT binary patch delta 1276 zcmZWp-HRJl6u)=o?%X>wX=aw0OhPu<#AKRewaG5|n2BGz%I*YrgG)L zUD$=)iWpxMp)cBLbt_aVYH8_9VfDq9vi3pr57?qeQ4k6uv_()>RPfwMDz**$?#w+O zzjJ=)-pTItu4is8H5v#b_+@sH8ay|AEX3YBWb}l~kKID4ITa}}Y~1&DDt;GU?X5K0r+ zpW`@tSzhlRYeC#%`cp70b6h<6@mjCB1%=c5uulhY@P${Ky*5IR#GuKyInFG|f2|!` z-vBk|{)-dgO(c0ggim0}-^R};Z&}}4*R8Lt%hn0&O-r?u$j_1UkxrzIM1(=Ty<-c1 zvc7=!&}s28;a5~b&mnX$lP}?Xu2yxYvFo^w6}2Q9#t}0*j-ytk?0_9!DK}CnE8gb{ z9iN_RnpRoT3(G>=f`2ezXem(F+K8bl|p9kb~)fw!Rqn4>* z7(nzs0{0;T_x}VElzSjwKwhimaZGvM6o;bg3g8QvlSe72^cWMBk;aPB2hWPCX$nyY zr45h{E4c0sQ*MnYVgqhX1bh@m+v36MilS>f;9<-IGD)$fR8z|L19t`7Q9q0XvEh7AQLa%Y&LUm^qyLm`Bqow)kwXkx$n z`Q|IyQ@81Mf|M4|vAkO{DxE5=Xq3q>}WJ^rduz zGTNah=~Y%`=VeFk%J0a(DX%GaRiYNum(_RGuhsofDRemWe(0OfAK@p$+u>_ah5yeL KcHT%{$NvJj%-)6o delta 403 zcmX@$dcaPk+~3WOfsp|S}(> zF;I+21<2=sVuAFW$~2&u4g-Uf00_$j9WTmAO-x~6kg)-(F#}<#cQ%tVfPz4=5+EO> zUxlBads;?rNd-`B29Q4mgePub*UQOI2CDOu1scfU1Hz38?N@RWD}WZu0u?hTfUz;- zioC?!RG=78Gh-VF&-CK_U65Z4v_KxB2Bel5sG6BYdomAWHzV`p8I0btkHxNu?HAi8 zwpOe|tX7Oej9v7B=wi`S(IlW+MxgIiHmflG+t@F0*l---wBq#R nEaF_od5cSc%ZaOkYZcc6ZXs?5o)(@*yd2=*SKa(i;SeJL3Y1zu From e55ed7fc28ce3aaa5bb36d9ec3216d1462cd9adb Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Fri, 21 Dec 2018 10:12:28 -0700 Subject: [PATCH 05/28] styled sidebar searchbar --- assets/styles/layouts/_layout-article.scss | 5 +++ assets/styles/layouts/_layout-global.scss | 1 + assets/styles/layouts/_layout-sidebar.scss | 44 ++++++++++++++++++++++ assets/styles/styles-default.scss | 4 +- assets/styles/themes/_theme-dark.scss | 9 +++++ assets/styles/themes/_theme-light.scss | 13 ++++++- config.toml | 5 +++ layouts/partials/sidebar.html | 17 +++++++++ layouts/partials/topnav.html | 2 - 9 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 assets/styles/layouts/_layout-article.scss diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss new file mode 100644 index 000000000..41cc44ea3 --- /dev/null +++ b/assets/styles/layouts/_layout-article.scss @@ -0,0 +1,5 @@ +.article { + flex-grow: 3; + background: $article-bg; + border-radius: $border-radius 0 0 0; +} diff --git a/assets/styles/layouts/_layout-global.scss b/assets/styles/layouts/_layout-global.scss index 8022b0e08..8d9fab43f 100644 --- a/assets/styles/layouts/_layout-global.scss +++ b/assets/styles/layouts/_layout-global.scss @@ -31,4 +31,5 @@ a { .page-wrapper { display: flex; + flex-grow: 1; } diff --git a/assets/styles/layouts/_layout-sidebar.scss b/assets/styles/layouts/_layout-sidebar.scss index e69de29bb..e343cf6e9 100644 --- a/assets/styles/layouts/_layout-sidebar.scss +++ b/assets/styles/layouts/_layout-sidebar.scss @@ -0,0 +1,44 @@ +.sidebar { + display: block; + flex-grow: 1; + padding: 0 1em 1em 1em; + max-width: 25%; + + &--search { + position: relative; + &:after { + content: '\e905'; + display: block; + font-family: 'icomoon'; + position: absolute; + top: .15rem; + right: .25rem; + color: $article-text; + font-size: 1.75rem; + } + + input { + background: $article-bg; + border-radius: $border-radius; + border: 1px solid $search-border; + padding: .5em; + width: 100%; + color: $article-text; + transition-property: border, box-shadow; + transition-duration: .2s; + &:focus { + outline: none; + border: 1px solid $search-highlight; + box-shadow: 0px 0px 7px rgba($search-highlight, .65); + border-radius: $border-radius; + } + &::placeholder { + font-family: 'Roboto'; + font-weight: 500; + color: rgba($article-text, .35); + } + } + + + } +} diff --git a/assets/styles/styles-default.scss b/assets/styles/styles-default.scss index 7868d5ee2..f8fbfea50 100644 --- a/assets/styles/styles-default.scss +++ b/assets/styles/styles-default.scss @@ -9,4 +9,6 @@ // Import Layout Styles @import "normalize/import-now", "layouts/layout-global", - "layouts/layout-topnav"; + "layouts/layout-topnav", + "layouts/layout-sidebar", + "layouts/layout-article"; diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 7200f6762..04c3391c3 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -24,3 +24,12 @@ $version-selector-top: $b-ocean !default; $version-selector-bottom: $p-star !default; $theme-switch-light: inline-block !default; $theme-switch-dark: none !default; + +// Sidebar +$search-border: $g5-pepper !default; +$search-highlight: $b-pool !default; + +// Article Content +$article-bg: $g3-castle !default; +$article-heading: $g19-ghost !default; +$article-text: $g14-chromium !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index 7ddd093b2..930e8ad79 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -19,7 +19,16 @@ $body-bg: $g18-cloud; // TopNav Colors $topnav-link: $g3-castle; $topnav-link-hover: $b-ocean; -$version-selector-top: $b-pool !default; -$version-selector-bottom: $gr-viridian !default; +$version-selector-top: $b-pool; +$version-selector-bottom: $gr-viridian; $theme-switch-light: none; $theme-switch-dark: inline-block; + +// Sidebar +$search-border: $g15-platinum; +$search-highlight: $b-pool; + +// Article Content +$article-bg: $g20-white; +$article-heading: $g5-pepper; +$article-text: $g7-graphite; diff --git a/config.toml b/config.toml index e6a024426..202625296 100644 --- a/config.toml +++ b/config.toml @@ -8,3 +8,8 @@ enableGitInfo = true # Syntax Highlighting pygmentsCodefences = true pygmentsUseClasses = true + +[menu] + [[menu.versions]] + name = "v1.x" + url = "https://docs.influxdata.com" diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html index e69de29bb..88e7f29eb 100644 --- a/layouts/partials/sidebar.html +++ b/layouts/partials/sidebar.html @@ -0,0 +1,17 @@ +{{ $currentVersion := (index (findRE "[^/]+.*?" .RelPermalink) 0) }} + diff --git a/layouts/partials/topnav.html b/layouts/partials/topnav.html index 7b89880a8..e42946296 100644 --- a/layouts/partials/topnav.html +++ b/layouts/partials/topnav.html @@ -16,9 +16,7 @@
  • {{ .Name }}
  • {{ end }} - - From f64a1760ed862317208bbe00351660039f2d2e1a Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Fri, 21 Dec 2018 16:59:12 -0700 Subject: [PATCH 06/28] WIP article content styles --- assets/js/content-interactions.js | 20 ++ assets/styles/layouts/_layout-article.scss | 136 +++++++++++ assets/styles/layouts/_layout-global.scss | 2 + assets/styles/layouts/_layout-topnav.scss | 4 +- .../styles/layouts/_syntax-highlighting.scss | 172 ++++++++++++++ assets/styles/styles-default.scss | 3 +- assets/styles/themes/_theme-dark.scss | 16 ++ assets/styles/themes/_theme-light.scss | 22 +- config.toml | 3 + content/v2.0/example.md | 222 +++++++++++++++++- layouts/_default/section.html | 6 +- layouts/_default/single.html | 6 +- layouts/partials/footer/javascript.html | 3 +- layouts/partials/header.html | 2 +- 14 files changed, 605 insertions(+), 12 deletions(-) create mode 100644 assets/js/content-interactions.js create mode 100644 assets/styles/layouts/_syntax-highlighting.scss diff --git a/assets/js/content-interactions.js b/assets/js/content-interactions.js new file mode 100644 index 000000000..aa39444ed --- /dev/null +++ b/assets/js/content-interactions.js @@ -0,0 +1,20 @@ +// Make headers linkable +$("h2,h3,h4,h5,h6").each(function() { + var link = "" + $(this).wrapInner( link ); + }) + +// Smooth Scroll +var topBuffer = 0; + $('a[href^="#"]').on('click',function (e) { + e.preventDefault(); + + var target = this.hash; + var $target = $(target); + + $('html, body').stop().animate({ + 'scrollTop': ($target.offset().top - topBuffer) + }, 400, 'swing', function () { + window.location.hash = target; + }); + }); diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 41cc44ea3..999e6cf20 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -2,4 +2,140 @@ flex-grow: 3; background: $article-bg; border-radius: $border-radius 0 0 0; + padding: 2rem 4rem 3rem; +} + +.article--content{ + max-width: 700px; + h1,h2,h3,h4,h5,h6 { + color: $article-heading; + a { + color: inherit; + text-decoration: none; + } + } + h1 { + font-family: $klavika; + font-weight: 300; + font-style: italic; + font-size: 2.65rem; + margin-bottom: 1em; + } + h2 { + font-size: 2rem; + margin: -1.5rem 0 .5rem; + padding-top: 1.75rem; + } + h3 { + font-size: 1.65rem; + margin: -1.5rem 0 .5rem; + padding-top: 1.75rem; + } + h4 { + font-size: 1.25rem; + font-style: italic; + margin: -1.5rem 0 .5rem; + padding-top: 1.75rem; + } + h5 { + font-size: 1rem; + margin: -1.5rem 0 .25rem; + padding-top: 1.75rem; + } + h6 { + font-size: 1rem; + font-style: italic; + margin: -1.5rem 0 .25rem; + padding-top: 1.75rem; + } + + p,li { + color: $article-text; + line-height: 1.5rem; + } + + p { + margin: 0 0 1.5em; + } + + a { + color: $article-link; + font-weight: bold; + text-decoration: none; + &:hover { + color: $article-link-hover; + } + code { + font-weight: normal; + transition: color .2s; + position: relative; + &:after { + content: ""; + position: absolute; + display: block; + top: 0; + right: 0; + border-style: solid; + border-width: 0 .4rem .4rem 0; + border-color: transparent rgba($article-code, .35) transparent transparent; + transition: border .2s; + } + &:hover { + color: $article-code-hover; + &:after { + border-color: transparent $article-code-hover transparent transparent; + } + } + } + } + + // Lists + + ol, ul { + padding-left: 1.6rem; + } + + ul { + list-style-type: disc; + } + + ol { + list-style: none; + counter-reset: item; + li { + position: relative; + counter-increment: item; + &:before { + content: counter(item) ". "; + position: absolute; + left: -1.6em; + color: $article-bold; + font-weight: bold; + } + } + } + + li { + margin: .2rem 0; + } + + // Code + + code,pre { + background: $article-code-bg; + font-family: 'Inconsolata', monospace; + } + + code { + padding: .15rem .45rem .25rem; + border-radius: $border-radius; + color: $article-code; + } + + pre { + margin: 2rem 0 3rem; + padding: 1.5em; + border-radius: $border-radius; + overflow: scroll; + } } diff --git a/assets/styles/layouts/_layout-global.scss b/assets/styles/layouts/_layout-global.scss index 8d9fab43f..f82229f14 100644 --- a/assets/styles/layouts/_layout-global.scss +++ b/assets/styles/layouts/_layout-global.scss @@ -11,6 +11,8 @@ font-style: italic; } +$klavika: 'Klavika-Light', 'Titillium Web', 'Roboto', sans-serif; + html { height: 100%; } diff --git a/assets/styles/layouts/_layout-topnav.scss b/assets/styles/layouts/_layout-topnav.scss index cbae2089a..ced6cb29a 100644 --- a/assets/styles/layouts/_layout-topnav.scss +++ b/assets/styles/layouts/_layout-topnav.scss @@ -28,7 +28,9 @@ .docs-home { display: inline-block; vertical-align: text-top; - font-family: 'Klavika-Light'; + font-family: $klavika; + font-style: italic; + font-weight: 300; font-size: 1.2rem; color: $topnav-link; text-decoration: none; diff --git a/assets/styles/layouts/_syntax-highlighting.scss b/assets/styles/layouts/_syntax-highlighting.scss new file mode 100644 index 000000000..c52d5332c --- /dev/null +++ b/assets/styles/layouts/_syntax-highlighting.scss @@ -0,0 +1,172 @@ +code[class*="language-"], +pre[class*="language-"] { + /*text-shadow: 0 1px #101419;*/ + direction: ltr; + text-align: left; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + + -moz-tab-size: 1; + -o-tab-size: 1; + tab-size: 1; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + background: rgba($article-code-select, .25); +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + background: rgba($article-code-select, .25); +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + white-space: normal; +} + +.highlight { color: $article-code; + + line-height: 1.25rem; + + // COLORS + + .gh, /* Generic.Heading */ + .go, /* Generic.Output */ + .na, /* Name.Attribute */ + .nt, /* Name.Tag */ + .nv, /* Name.Variable */ + .ow /* Operator.Word */ + { color: $article-code } + + .c, /* Comment */ + .ch, /* Comment.Hashbang */ + .cm, /* Comment.Multiline */ + .cpf, /* Comment.PreprocFile */ + .c1, /* Comment.Single */ + .cs, /* Comment.Special */ + .w /* Text.Whitespace */ + { color: $article-code-accent1; } + + .gi /* Generic.Inserted */ + { background-color: $article-code-accent1; } + + .k, /* Keyword */ + .kc, /* Keyword.Constant */ + .kd, /* Keyword.Declaration */ + .kn, /* Keyword.Namespace */ + .kp, /* Keyword.Pseudo */ + .kr, /* Keyword.Reserved */ + .nn /* Name.Namespace */ + { color: $article-code-accent2; } + + .bp, /* Name.Builtin.Pseudo */ + .cp, /* Comment.Preproc */ + .dl, /* Literal.String.Delimiter */ + .gt, /* Generic.Traceback */ + .gu, /* Generic.Subheading */ + .kt, /* Keyword.Type */ + .nb, /* Name.Builtin */ + .nc, /* Name.Class */ + .no, /* Name.Constant */ + .sa, /* Literal.String.Affix */ + .sb, /* Literal.String.Backtick */ + .sc, /* Literal.String.Char */ + .sd, /* Literal.String.Doc */ + .se, /* Literal.String.Escape */ + .sh, /* Literal.String.Heredoc */ + .sx, /* Literal.String.Other */ + .sr, /* Literal.String.Regex */ + .s1, /* Literal.String.Single */ + .s2 /* Literal.String.Double */ + { color: $article-code-accent3 } + + .err, /* Error */ + .fm, /* Name.Function.Magic */ + .gr, /* Generic.Error */ + .gd, /* Generic.Deleted */ + .nd, /* Name.Decorator */ + .ne, /* Name.Exception */ + .nf, /* Name.Function */ + .nl, /* Name.Label */ + .si /* Literal.String.Interpol */ + { color: $article-code-accent4 } + + .m, /* Literal.Number */ + .ni, /* Name.Entity */ + .mb, /* Literal.Number.Bin */ + .mf, /* Literal.Number.Float */ + .mh, /* Literal.Number.Hex */ + .mi, /* Literal.Number.Integer */ + .mo, /* Literal.Number.Oct */ + .vc, /* Name.Variable.Class */ + .vg, /* Name.Variable.Global */ + .vi, /* Name.Variable.Instance */ + .vm, /* Name.Variable.Magic */ + .il /* Literal.Number.Integer.Long */ + { color: $article-code-accent5 } + + .gp, /* Generic.Prompt */ + .o /* Operator */ + { color: $article-code-accent6 } + + .ss /* Literal.String.Symbol */ + { color: $article-code-accent7 } + + // FONT STYLES + + .cs /* Comment.Special */ + .gh, /* Generic.Heading */ + .gu, /* Generic.Subheading */ + .gp, /* Generic.Prompt */ + .gs, /* Generic.Strong */ + .k, /* Keyword */ + .kc, /* Keyword.Constant */ + .kd, /* Keyword.Declaration */ + .kn, /* Keyword.Namespace */ + .kp, /* Keyword.Pseudo */ + .kr, /* Keyword.Reserved */ + .kt, /* Keyword.Type */ + .nc, /* Name.Class */ + .ne, /* Name.Exception */ + .ni, /* Name.Entity */ + .nn /* Name.Namespace */ + .nt, /* Name.Tag */ + .ow, /* Operator.Word */ + .se /* Literal.String.Escape */ + { font-weight: bold } + + .c, /* Comment */ + .ch, /* Comment.Hashbang */ + .cm, /* Comment.Multiline */ + .cpf, /* Comment.PreprocFile */ + .c1, /* Comment.Single */ + .cs, /* Comment.Special */ + .ge, /* Generic.Emph */ + .sd , /* Literal.String.Doc */ + .w /* Text.Whitespace */ + { font-style: italic } +} diff --git a/assets/styles/styles-default.scss b/assets/styles/styles-default.scss index f8fbfea50..e578cbbdf 100644 --- a/assets/styles/styles-default.scss +++ b/assets/styles/styles-default.scss @@ -11,4 +11,5 @@ "layouts/layout-global", "layouts/layout-topnav", "layouts/layout-sidebar", - "layouts/layout-article"; + "layouts/layout-article", + "layouts/syntax-highlighting"; diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 04c3391c3..679424f3c 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -33,3 +33,19 @@ $search-highlight: $b-pool !default; $article-bg: $g3-castle !default; $article-heading: $g19-ghost !default; $article-text: $g14-chromium !default; +$article-bold: $g19-ghost !default; +$article-link: $b-pool !default; +$article-link-hover: $g20-white !default; + +// Article Code +$article-code: $p-potassium !default; +$article-code-bg: $g1-raven !default; +$article-code-accent1: $g9-mountain !default; +$article-code-accent2: $b-pool !default; +$article-code-accent3: $gr-viridian !default; +$article-code-accent4: $o-ruby !default; +$article-code-accent5: #ff6db0 !default; +$article-code-accent6: $b-pool !default; +$article-code-accent7: #e90 !default; +$article-code-select: $b-pool !default; +$article-code-hover: $g20-white !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index 930e8ad79..e7ca88c44 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -17,7 +17,7 @@ $body-bg: $g18-cloud; // TopNav Colors -$topnav-link: $g3-castle; +$topnav-link: $g5-pepper; $topnav-link-hover: $b-ocean; $version-selector-top: $b-pool; $version-selector-bottom: $gr-viridian; @@ -30,5 +30,21 @@ $search-highlight: $b-pool; // Article Content $article-bg: $g20-white; -$article-heading: $g5-pepper; -$article-text: $g7-graphite; +$article-heading: $g6-smoke; +$article-text: $g8-storm; +$article-bold: $g8-storm; +$article-link: $b-ocean; +$article-link-hover: $gr-viridian; + +// Article Code +$article-code: $p-star; +$article-code-bg: $p-violettecreme; +$article-code-accent1: $p-potassium; +$article-code-accent2: $b-ocean; +$article-code-accent3: #0e9e75; +$article-code-accent4: $o-ruby; +$article-code-accent5: #e24bbb; +$article-code-accent6: $b-pool; +$article-code-accent7: #e90; +$article-code-select: $b-pool; +$article-code-hover: $b-sapphire; diff --git a/config.toml b/config.toml index 202625296..8cff8a408 100644 --- a/config.toml +++ b/config.toml @@ -13,3 +13,6 @@ pygmentsUseClasses = true [[menu.versions]] name = "v1.x" url = "https://docs.influxdata.com" + +[blackfriday] + hrefTargetBlank = true diff --git a/content/v2.0/example.md b/content/v2.0/example.md index 53df16e85..c2853aaae 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -7,4 +7,224 @@ menu: weight: 1 --- -_This is just an example post._ +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +## h2 This is a header2 +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +### h3 This is a header3 +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +#### h4 This is a header4 +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. [Link to h2](#h2-this-is-a-header2) + +##### h5 This is a header5 +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +###### h6 This is a header6 +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo.This is a paragraph + +#### Inline Styles +This is an [inline link](#). This is `inline code`. +This is an [`inline code link`](#) . +This is **bold**. This is _italic_. + +- Unordered list line-item 1 +- Unordered list line-item 2 + - Unordered list line-item 2.1 + - Unordered list line-item 2.2 + - Unordered list line-item 2.3 +- Unordered list line-item 3 +- Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +- Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +1. Unordered list line-item 1 +2. Unordered list line-item 2 + 1. Unordered list line-item 2.1 + 2. Unordered list line-item 2.2 + 3. Unordered list line-item 2.3 +3. Unordered list line-item 3 +4. Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +5. Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +```js +// This is a code block +cpu = from(bucket:"telegraf/autogen") + |> range(start:-30m) + |> filter(fn:(r) => r._measurement == "cpu") + |> filter(fn:(r) => r._measurement == "cpu") |> filter(fn:(r) => r._measurement == "cpu") |> filter(fn:(r) => r._measurement == "cpu") + +avg_cpu = cpu |> window(every:5m) |> mean() + +avg_cpu + |> group(none:true) + |> yield() +// +``` + +###### This is a table +| Column 1 | Column 2 | Column 3 | Column 4 | +| -------- | -------- | -------- | -------- | +| Row 1.1 | Row 1.2 | Row 1.3 | Row 1.4 | +| Row 2.1 | Row 2.2 | Row 2.3 | Row 2.4 | +| Row 3.1 | Row 3.2 | Row 3.3 | Row 3.4 | +| Row 4.1 | Row 4.2 | Row 4.3 | Row 4.4 | + +###### This is a table with lots of stuff +| Column 1 | Column 2 | Column 3 | Column 4 | +| -------- | -------- | -------- | -------- | +| Row 1.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | +| Row 2.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | +| Row 3.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | +| Row 4.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | + +> This is a basic block quote + +Paragraph after a blockquote. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +> This is a multiple paragraph blockquote with internal elements. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> ## h2 This is a header2 +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> ### h3 This is a header3 +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> #### h4 This is a header4 +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> ##### h5 This is a header5 +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> ###### h6 This is a header6 +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> #### Inline Styles +> This is an [inline link](#). This is `inline code`. +> This is an [`inline code link`](#) . +> This is **bold**. This is _italic_. +> +> ```js +// This is a code block inside of a blockquote +cpu = from(bucket:"telegraf/autogen") + |> range(start:-30m) + |> filter(fn:(r) => r._measurement == "cpu") +``` +> +> ###### This is a table in a blockquote +| Column 1 | Column 2 | Column 3 | Column 4 | +| -------- | -------- | -------- | -------- | +| Row 1.1 | Row 1.2 | Row 1.3 | Row 1.4 | +| Row 2.1 | Row 2.2 | Row 2.3 | Row 2.4 | +| Row 3.1 | Row 3.2 | Row 3.3 | Row 3.4 | +| Row 4.1 | Row 4.2 | Row 4.3 | Row 4.4 | + + +
    + +This is a multiple paragraph blockquote with internal elements. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. + +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +## h2 This is a header2 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +### h3 This is a header3 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +#### h4 This is a header4 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +##### h5 This is a header5 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +###### h6 This is a header6 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +#### Inline Styles +This is an [inline link](#). This is `inline code`. +This is an [`inline code link`](#) . +This is **bold**. This is _italic_. + +```js +// This is a code block inside of a blockquote +cpu = from(bucket:"telegraf/autogen") + |> range(start:-30m) + |> filter(fn:(r) => r._measurement == "cpu") +``` + +###### This is a table in a blockquote +| Column 1 | Column 2 | Column 3 | Column 4 | +| -------- | -------- | -------- | -------- | +| Row 1.1 | Row 1.2 | Row 1.3 | Row 1.4 | +| Row 2.1 | Row 2.2 | Row 2.3 | Row 2.4 | +| Row 3.1 | Row 3.2 | Row 3.3 | Row 3.4 | +| Row 4.1 | Row 4.2 | Row 4.3 | Row 4.4 | + +
    diff --git a/layouts/_default/section.html b/layouts/_default/section.html index 9d36bc18e..50a91df3f 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -3,8 +3,10 @@
    {{ partial "sidebar.html" . }}
    -

    {{ .Title }}

    - {{ .Content }} +
    +

    {{ .Title }}

    + {{ .Content }} +
    diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 9d36bc18e..50a91df3f 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -3,8 +3,10 @@
    {{ partial "sidebar.html" . }}
    -

    {{ .Title }}

    - {{ .Content }} +
    +

    {{ .Title }}

    + {{ .Content }} +
    diff --git a/layouts/partials/footer/javascript.html b/layouts/partials/footer/javascript.html index 9d6b074e9..bc153aef4 100644 --- a/layouts/partials/footer/javascript.html +++ b/layouts/partials/footer/javascript.html @@ -1,4 +1,5 @@ {{ $versionSelector := resources.Get "js/version-selector.js" }} -{{ $footerjs := slice $versionSelector | resources.Concat "js/footer.bundle.js" }} +{{ $contentInteractions := resources.Get "js/content-interactions.js" }} +{{ $footerjs := slice $versionSelector $contentInteractions | resources.Concat "js/footer.bundle.js" }} diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 8254c7c88..af701de07 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -9,7 +9,7 @@ {{ partial "header/stylesheets.html"}} - + {{ partial "header/javascript.html"}} From 41f859512c13d2c94d6e60e1f85f5fa9a5860080 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 31 Dec 2018 10:30:41 -0700 Subject: [PATCH 07/28] styled tables --- assets/styles/layouts/_layout-article.scss | 48 +++++++++++++++++++++- assets/styles/themes/_theme-dark.scss | 6 +++ assets/styles/themes/_theme-light.scss | 6 +++ 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 999e6cf20..86956ecb9 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -10,7 +10,7 @@ h1,h2,h3,h4,h5,h6 { color: $article-heading; a { - color: inherit; + color: inherit !important; text-decoration: none; } } @@ -89,7 +89,7 @@ } } - // Lists + //////////////////////////////////// Lists //////////////////////////////////// ol, ul { padding-left: 1.6rem; @@ -138,4 +138,48 @@ border-radius: $border-radius; overflow: scroll; } + + //////////////////////////////////// Tables //////////////////////////////////// + + table { + margin: 1rem 0 3rem; + border-spacing: 0; + color: $article-text; + max-width: 100%; + overflow: scroll; + box-shadow: 1px 3px 15px $article-table-shadow; + border-radius: ($border-radius * 1.5); + + th, td { + padding: .85rem 1.25rem; + } + thead { + background: linear-gradient(to right, $article-table-header-left, $article-table-header-right); + background-attachment: fixed; + } + + th { + color: $g20-white; + &:first-child { + border-radius: ($border-radius * 1.5) 0 0 0; + } + &:last-child { + border-radius: 0 ($border-radius * 1.5) 0 0; + } + } + + tr{ + &:nth-child(even) { + background: $article-table-row-alt; + } + &:last-child { + td { + &:first-child { border-radius: 0 0 0 ($border-radius * 1.5); } + &:last-child { border-radius: 0 0 ($border-radius * 1.5) 0; } + } + + } + } + + } } diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 679424f3c..b76258c0d 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -49,3 +49,9 @@ $article-code-accent6: $b-pool !default; $article-code-accent7: #e90 !default; $article-code-select: $b-pool !default; $article-code-hover: $g20-white !default; + +// Article Tables +$article-table-header-left: $p-planet !default; +$article-table-header-right: $b-sapphire !default; +$article-table-shadow: #191a1b !default; +$article-table-row-alt: $g2-kevlar !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index e7ca88c44..ef95ccf15 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -48,3 +48,9 @@ $article-code-accent6: $b-pool; $article-code-accent7: #e90; $article-code-select: $b-pool; $article-code-hover: $b-sapphire; + +// Article Tables +$article-table-header-left: $b-pool; +$article-table-header-right: $gr-honeydew; +$article-table-shadow: #c8cdd0; +$article-table-row-alt: $g18-cloud; From f0d45ccd46d3ef07c58dd007e774ff0670c9c783 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 31 Dec 2018 12:17:36 -0700 Subject: [PATCH 08/28] styled notes and warnings, updated readme with notes and warnings shortcodes --- README.md | 13 +++ assets/styles/layouts/_layout-article.scss | 101 ++++++++++++++++++++- assets/styles/themes/_theme-dark.scss | 23 +++++ assets/styles/themes/_theme-light.scss | 23 +++++ content/v2.0/example.md | 72 ++++++++------- layouts/shortcodes/note.html | 3 + layouts/shortcodes/warn.html | 3 + 7 files changed, 206 insertions(+), 32 deletions(-) create mode 100644 layouts/shortcodes/note.html create mode 100644 layouts/shortcodes/warn.html diff --git a/README.md b/README.md index aebe7d681..ff1b3b17e 100644 --- a/README.md +++ b/README.md @@ -94,3 +94,16 @@ It should be short and assume the context of its parent if it has one. Use only h2-h6 headings in markdown content. h1 headings act as the page title and are populated automatically from the `title` frontmatter. h2-h6 headings act as section headings. + +### Notes & Warnings +Shortcodes are available for formatting notes and warnings in each article: + +```md +{{% note %}} +Insert note markdown content here. +{{% /note %}} + +{{% warn %}} +Insert warning markdown content here. +{{% /warn %}} +``` diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 86956ecb9..2aab2acf9 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -168,6 +168,11 @@ } } + td { + font-size: .95rem; + line-height: 1.5em; + } + tr{ &:nth-child(even) { background: $article-table-row-alt; @@ -180,6 +185,100 @@ } } - } + + //////////////////////// Blockquotes, Notes, Warnings //////////////////////// + + blockquote, + .note, + .warn { + padding: 1.65rem 2rem .1rem 2rem; + margin: 1rem 0 2rem; + border-width: 0 0 0 4px; + border-style: solid + } + + blockquote { + border-color: rgba($article-text, .25); + p { + font-size: 1.15rem; + font-style: italic; + color: rgba($article-text, .5); + } + } + + .note { + border-color: $article-note-base; + background: rgba($article-note-base, .08); + h1,h2,h3,h4,h5,h6 { + color: $article-note-heading; + } + p { + color: $article-note-text; + } + a { + color: $article-note-link; + code:after { + border-color: transparent rgba($article-note-code, .35) transparent transparent; + } + &:hover { + color: $article-note-link-hover; + code:after { + border-color: transparent $article-note-link-hover transparent transparent; + } + } + } + code, pre{ + color: $article-note-code; + background: $article-note-code-bg; + } + table{ + color: $article-note-text; + box-shadow: 1px 3px 15px $article-note-table-shadow; + thead{ + background: $article-note-table-header; + } + tr:nth-child(even) td { + background: $article-note-table-row-alt; + } + } + } + + .warn { + border-color: $article-warn-base; + background: rgba($article-warn-base, .08); + h1,h2,h3,h4,h5,h6 { + color: $article-warn-heading; + } + p { + color: $article-warn-text; + } + a { + color: $article-warn-link; + code:after { + border-color: transparent rgba($article-warn-code, .35) transparent transparent; + } + &:hover { + color: $article-warn-link-hover; + code:after { + border-color: transparent $article-warn-link-hover transparent transparent; + } + } + } + code, pre{ + color: $article-warn-code; + background: $article-warn-code-bg; + } + table{ + color: $article-warn-text; + box-shadow: 1px 3px 15px $article-warn-table-shadow; + thead{ + background: $article-warn-table-header; + } + tr:nth-child(even) td { + background: $article-warn-table-row-alt; + } + } + } + } diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index b76258c0d..1606aec2a 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -55,3 +55,26 @@ $article-table-header-left: $p-planet !default; $article-table-header-right: $b-sapphire !default; $article-table-shadow: #191a1b !default; $article-table-row-alt: $g2-kevlar !default; + +// Article Notes & Warnings +$article-note-base: $gr-viridian !default; +$article-note-heading: $g20-white !default; +$article-note-text: $gr-viridian !default; +$article-note-link: $gr-rainforest !default; +$article-note-link-hover: $g20-white !default; +$article-note-code: #75d2f1 !default; +$article-note-code-bg: #20272b !default; +$article-note-table-header: $gr-viridian !default; +$article-note-table-row-alt: #21272d !default; +$article-note-table-shadow: #191a1b !default; + +$article-warn-base: $o-dreamsicle !default; +$article-warn-heading: $g20-white !default; +$article-warn-text: $o-dreamsicle !default; +$article-warn-link: $o-tungsten !default; +$article-warn-link-hover: $g20-white !default; +$article-warn-code: #ec6e6e !default; +$article-warn-code-bg: #292024 !default; +$article-warn-table-header: $o-dreamsicle !default; +$article-warn-table-row-alt: #2b252b !default; +$article-warn-table-shadow: #191a1b !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index ef95ccf15..e31fd2327 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -54,3 +54,26 @@ $article-table-header-left: $b-pool; $article-table-header-right: $gr-honeydew; $article-table-shadow: #c8cdd0; $article-table-row-alt: $g18-cloud; + +// Article Notes & Warnings +$article-note-base: $gr-rainforest; +$article-note-heading: $gr-emerald; +$article-note-text: $gr-emerald; +$article-note-link: rgba($gr-emerald, .75); +$article-note-link-hover: $b-pool; +$article-note-code: #147572; +$article-note-code-bg: #d6f7ec; +$article-note-table-header: $gr-viridian; +$article-note-table-row-alt: #d6f5e9; +$article-note-table-shadow: #8cb7ab !default; + +$article-warn-base: $o-dreamsicle; +$article-warn-heading: $o-fire; +$article-warn-text: $o-curacao; +$article-warn-link: rgba($o-curacao, .75); +$article-warn-link-hover: $p-planet; +$article-warn-code: #f52f75; +$article-warn-code-bg: #ffebeb; +$article-warn-table-header: $o-dreamsicle; +$article-warn-table-row-alt: #ffe6df; +$article-warn-table-shadow: #b98a7d !default; diff --git a/content/v2.0/example.md b/content/v2.0/example.md index c2853aaae..6254a5973 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -133,40 +133,45 @@ Etiam tristique nisi et tristique auctor. > Etiam tristique nisi et tristique auctor. > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> -> ## h2 This is a header2 -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> ### h3 This is a header3 -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> #### h4 This is a header4 -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> ##### h5 This is a header5 -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> ###### h6 This is a header6 -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> #### Inline Styles -> This is an [inline link](#). This is `inline code`. -> This is an [`inline code link`](#) . -> This is **bold**. This is _italic_. -> -> ```js + +{{% note %}} +This is a basic note. +{{% /note %}} + +{{% note %}} +## h2 This is a header2 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +### h3 This is a header3 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +#### h4 This is a header4 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +##### h5 This is a header5 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +###### h6 This is a header6 +Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +Etiam tristique nisi et tristique auctor. + +#### Inline Styles +This is an [inline link](#). This is `inline code`. +This is an [`inline code link`](#) . +This is **bold**. This is _italic_. + +```js // This is a code block inside of a blockquote cpu = from(bucket:"telegraf/autogen") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu") ``` -> -> ###### This is a table in a blockquote + +###### This is a table in a blockquote | Column 1 | Column 2 | Column 3 | Column 4 | | -------- | -------- | -------- | -------- | | Row 1.1 | Row 1.2 | Row 1.3 | Row 1.4 | @@ -174,9 +179,14 @@ cpu = from(bucket:"telegraf/autogen") | Row 3.1 | Row 3.2 | Row 3.3 | Row 3.4 | | Row 4.1 | Row 4.2 | Row 4.3 | Row 4.4 | +{{% /note %}} -
    +{{% warn %}} +This is a basic warning. +{{% /warn %}} + +{{% warn %}} This is a multiple paragraph blockquote with internal elements. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. @@ -227,4 +237,4 @@ cpu = from(bucket:"telegraf/autogen") | Row 3.1 | Row 3.2 | Row 3.3 | Row 3.4 | | Row 4.1 | Row 4.2 | Row 4.3 | Row 4.4 | -
    +{{% /warn %}} diff --git a/layouts/shortcodes/note.html b/layouts/shortcodes/note.html new file mode 100644 index 000000000..dff259244 --- /dev/null +++ b/layouts/shortcodes/note.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    diff --git a/layouts/shortcodes/warn.html b/layouts/shortcodes/warn.html new file mode 100644 index 000000000..a5963d4c8 --- /dev/null +++ b/layouts/shortcodes/warn.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    From 1edcb9c00ee5f6fc72d1b52b74b716021d644f93 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 31 Dec 2018 15:55:04 -0700 Subject: [PATCH 09/28] added enterprise formatting and shortcode, updated readme with enterprise info --- README.md | 33 ++++++- assets/styles/layouts/_layout-article.scss | 73 +++++++++++++-- assets/styles/themes/_theme-dark.scss | 7 +- assets/styles/themes/_theme-light.scss | 9 +- content/v2.0/example.md | 104 ++++++++++++++++++++- layouts/_default/section.html | 1 + layouts/_default/single.html | 1 + layouts/partials/article/enterprise.html | 20 ++++ layouts/shortcodes/enterprise.html | 4 + 9 files changed, 240 insertions(+), 12 deletions(-) create mode 100644 layouts/partials/article/enterprise.html create mode 100644 layouts/shortcodes/enterprise.html diff --git a/README.md b/README.md index ff1b3b17e..c27176295 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ menu: parent: # Specifies a parent group and nests navigation items weight: # Determines sort order. draft: # If true, will not render page on build +enterprise_all: # If true, specifies the doc as a whole is specific to InfluxDB Enterprise +enterprise_some: # If true, specifies the doc includes some content specific to InfluxDB Enterprise ``` #### Title usage @@ -95,7 +97,7 @@ Use only h2-h6 headings in markdown content. h1 headings act as the page title and are populated automatically from the `title` frontmatter. h2-h6 headings act as section headings. -### Notes & Warnings +### Notes and warnings Shortcodes are available for formatting notes and warnings in each article: ```md @@ -107,3 +109,32 @@ Insert note markdown content here. Insert warning markdown content here. {{% /warn %}} ``` + +### Enterprise Content +Many articles are unique to InfluxDB enterprise or at least contain some information specific to InfluxDB Enterprise. +There are frontmatter and an enterprise shortcode that help to properly identify this content. + +#### All content is Enterprise-specific +If all content in an article is Enterprise-specific, set the `enterprise_all` frontmatter to `true`. + +```yaml +enterprise_all: true +``` + +This will display a message at the top of page indicating that the things discussed are unique to InfluxDB Enterprise. + +#### Only some content is Enterprise-specific +If only some content in the article is enterprise specific, set the `enterprise_some` frontmatter to `true`. + +```yaml +enterprise_some: true +``` + +This will display a message at the top of page indicating some things are unique to InfluxDB Enterprise. +To format Enterprise-specific content, wrap it in the `{{% enterprise %}}` shortcode: + +```md +{{% enterprise %}} +Insert enterprise-specific markdown content here. +{{% /enterprise %}} +``` diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 2aab2acf9..aebdc5a49 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -119,7 +119,7 @@ margin: .2rem 0; } - // Code + //////////////////////////////////// Code //////////////////////////////////// code,pre { background: $article-code-bg; @@ -187,20 +187,22 @@ } } - //////////////////////// Blockquotes, Notes, Warnings //////////////////////// + ////////////////// Blockquotes, Notes, Warnings, & Messages ////////////////// blockquote, .note, - .warn { + .warn, + #enterprise-msg { padding: 1.65rem 2rem .1rem 2rem; margin: 1rem 0 2rem; border-width: 0 0 0 4px; - border-style: solid + border-style: solid; + border-radius: 0 $border-radius $border-radius 0; } blockquote { border-color: rgba($article-text, .25); - p { + p, li { font-size: 1.15rem; font-style: italic; color: rgba($article-text, .5); @@ -213,7 +215,7 @@ h1,h2,h3,h4,h5,h6 { color: $article-note-heading; } - p { + p, li { color: $article-note-text; } a { @@ -228,6 +230,9 @@ } } } + ol li:before { + color: $article-note-text; + } code, pre{ color: $article-note-code; background: $article-note-code-bg; @@ -250,7 +255,7 @@ h1,h2,h3,h4,h5,h6 { color: $article-warn-heading; } - p { + p, li { color: $article-warn-text; } a { @@ -265,6 +270,9 @@ } } } + ol li:before { + color: $article-warn-text; + } code, pre{ color: $article-warn-code; background: $article-warn-code-bg; @@ -281,4 +289,55 @@ } } + ///////////////////////////////// Enterprise ///////////////////////////////// + #enterprise-msg { + border-color: $article-enterprise-base; + background: rgba($article-enterprise-base, .15); + font-style: italic; + display: flex; + p { + color: $article-enterprise-text; + } + a { + color: $article-enterprise-link; + &:hover { + color: $article-enterprise-link-hover; + } + } + div:first-child { margin-right: 1.25rem; } + } + + .enterprise-flag { + padding: .2rem .4rem; + background: $article-enterprise-base; + font-size: .75rem; + font-style: normal; + font-weight: bold; + color: $g20-white; + border-radius: $border-radius; + vertical-align: text-bottom; + &:before { + content: "E"; + } + } + + .enterprise { + position: relative; + padding: 0 0 .01rem 2rem; + margin-left: -2rem; + border-left: 2px solid $article-enterprise-base; + + .enterprise-flag { + position: absolute; + top: -.15rem; + left: -.68rem; + transform: scale(.8); + transition: all .2s; + &:hover { + transform: scale(1); + color: $g20-white; + } + } + } + } diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 1606aec2a..1d2a9d96a 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -56,7 +56,7 @@ $article-table-header-right: $b-sapphire !default; $article-table-shadow: #191a1b !default; $article-table-row-alt: $g2-kevlar !default; -// Article Notes & Warnings +// Article Notes, Warnings, & Messages $article-note-base: $gr-viridian !default; $article-note-heading: $g20-white !default; $article-note-text: $gr-viridian !default; @@ -78,3 +78,8 @@ $article-warn-code-bg: #292024 !default; $article-warn-table-header: $o-dreamsicle !default; $article-warn-table-row-alt: #2b252b !default; $article-warn-table-shadow: #191a1b !default; + +$article-enterprise-base: $p-star !default; +$article-enterprise-text: $p-potassium !default; +$article-enterprise-link: $p-moonstone !default; +$article-enterprise-link-hover: $g20-white !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index e31fd2327..33bf916b0 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -65,7 +65,7 @@ $article-note-code: #147572; $article-note-code-bg: #d6f7ec; $article-note-table-header: $gr-viridian; $article-note-table-row-alt: #d6f5e9; -$article-note-table-shadow: #8cb7ab !default; +$article-note-table-shadow: #8cb7ab; $article-warn-base: $o-dreamsicle; $article-warn-heading: $o-fire; @@ -76,4 +76,9 @@ $article-warn-code: #f52f75; $article-warn-code-bg: #ffebeb; $article-warn-table-header: $o-dreamsicle; $article-warn-table-row-alt: #ffe6df; -$article-warn-table-shadow: #b98a7d !default; +$article-warn-table-shadow: #b98a7d; + +$article-enterprise-base: $p-comet; +$article-enterprise-text: $p-star; +$article-enterprise-link: $p-star; +$article-enterprise-link-hover: $b-ocean; diff --git a/content/v2.0/example.md b/content/v2.0/example.md index 6254a5973..9d16076a7 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -5,6 +5,8 @@ menu: v2_0: name: Example post weight: 1 +#enterprise_all: true +enterprise_some: true --- This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. @@ -14,10 +16,12 @@ This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nu This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. +{{% enterprise %}} ### h3 This is a header3 This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. +{{% /enterprise %}} #### h4 This is a header4 This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. @@ -101,7 +105,7 @@ avg_cpu |> yield() // ``` - +{{% enterprise %}} ###### This is a table | Column 1 | Column 2 | Column 3 | Column 4 | | -------- | -------- | -------- | -------- | @@ -109,6 +113,7 @@ avg_cpu | Row 2.1 | Row 2.2 | Row 2.3 | Row 2.4 | | Row 3.1 | Row 3.2 | Row 3.3 | Row 3.4 | | Row 4.1 | Row 4.2 | Row 4.3 | Row 4.4 | +| Row 5.1 | Row 5.2 | Row 5.3 | Row 5.4 | ###### This is a table with lots of stuff | Column 1 | Column 2 | Column 3 | Column 4 | @@ -137,6 +142,7 @@ Etiam tristique nisi et tristique auctor. {{% note %}} This is a basic note. {{% /note %}} +{{% /enterprise %}} {{% note %}} ## h2 This is a header2 @@ -164,6 +170,54 @@ This is an [inline link](#). This is `inline code`. This is an [`inline code link`](#) . This is **bold**. This is _italic_. +- Unordered list line-item 1 +- Unordered list line-item 2 + - Unordered list line-item 2.1 + - Unordered list line-item 2.2 + - Unordered list line-item 2.3 +- Unordered list line-item 3 +- Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +- Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +1. Unordered list line-item 1 +2. Unordered list line-item 2 + 1. Unordered list line-item 2.1 + 2. Unordered list line-item 2.2 + 3. Unordered list line-item 2.3 +3. Unordered list line-item 3 +4. Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +5. Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + ```js // This is a code block inside of a blockquote cpu = from(bucket:"telegraf/autogen") @@ -222,6 +276,54 @@ This is an [inline link](#). This is `inline code`. This is an [`inline code link`](#) . This is **bold**. This is _italic_. +- Unordered list line-item 1 +- Unordered list line-item 2 + - Unordered list line-item 2.1 + - Unordered list line-item 2.2 + - Unordered list line-item 2.3 +- Unordered list line-item 3 +- Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +- Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +1. Unordered list line-item 1 +2. Unordered list line-item 2 + 1. Unordered list line-item 2.1 + 2. Unordered list line-item 2.2 + 3. Unordered list line-item 2.3 +3. Unordered list line-item 3 +4. Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +5. Unordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + ```js // This is a code block inside of a blockquote cpu = from(bucket:"telegraf/autogen") diff --git a/layouts/_default/section.html b/layouts/_default/section.html index 50a91df3f..2c28a3252 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -5,6 +5,7 @@

    {{ .Title }}

    + {{ partial "article/enterprise.html" . }} {{ .Content }}
    diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 50a91df3f..2c28a3252 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -5,6 +5,7 @@

    {{ .Title }}

    + {{ partial "article/enterprise.html" . }} {{ .Content }}
    diff --git a/layouts/partials/article/enterprise.html b/layouts/partials/article/enterprise.html new file mode 100644 index 000000000..8dbb5f2c6 --- /dev/null +++ b/layouts/partials/article/enterprise.html @@ -0,0 +1,20 @@ +{{ if ( $.Params.enterprise_all ) }} +
    +

    + The features and functionality discussed on this page are unique to the Enterprise edition of InfluxDB. + Learn more about InfluxDB Enterprise. +

    +
    +{{ else if ( $.Params.enterprise_some ) }} +
    +
    + +
    +
    +

    + This page includes features and functionality unique to the Enterprise edition of InfluxDB. + Learn more about InfluxDB Enterprise. +

    +
    +
    +{{ end }} diff --git a/layouts/shortcodes/enterprise.html b/layouts/shortcodes/enterprise.html new file mode 100644 index 000000000..b32106e64 --- /dev/null +++ b/layouts/shortcodes/enterprise.html @@ -0,0 +1,4 @@ +
    + + {{ .Inner }} +
    From a009677f22ba1c4b32ffd5f8b786eb0a6c4f92dc Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 31 Dec 2018 16:59:16 -0700 Subject: [PATCH 10/28] general styles cleanup --- assets/styles/layouts/_layout-article.scss | 32 ++++++++++++++++++---- assets/styles/layouts/_layout-sidebar.scss | 2 +- assets/styles/themes/_theme-light.scss | 2 +- content/v2.0/example.md | 10 +++++++ 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index aebdc5a49..9f07fbe24 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -12,6 +12,9 @@ a { color: inherit !important; text-decoration: none; + code:after { + border: none; + } } } h1 { @@ -34,24 +37,24 @@ h4 { font-size: 1.25rem; font-style: italic; - margin: -1.5rem 0 .5rem; + margin: -1.25rem 0 .5rem; padding-top: 1.75rem; } h5 { font-size: 1rem; - margin: -1.5rem 0 .25rem; + margin: -1.25rem 0 .25rem; padding-top: 1.75rem; } h6 { font-size: 1rem; font-style: italic; - margin: -1.5rem 0 .25rem; + margin: -1.25rem 0 .25rem; padding-top: 1.75rem; } p,li { color: $article-text; - line-height: 1.5rem; + line-height: 1.6rem; } p { @@ -97,6 +100,9 @@ ul { list-style-type: disc; + li:before{ + content: "" !important; + } } ol { @@ -112,11 +118,19 @@ color: $article-bold; font-weight: bold; } + ul { + counter-reset: item; + } } } + & > ol, + & > ul { + margin: 1rem 0 1.5rem 0; + } + li { - margin: .2rem 0; + margin: .25rem 0; } //////////////////////////////////// Code //////////////////////////////////// @@ -247,6 +261,10 @@ background: $article-note-table-row-alt; } } + blockquote { + border-color: rgba($article-note-text, .25); + p { color: rgba($article-note-text, .6); } + } } .warn { @@ -287,6 +305,10 @@ background: $article-warn-table-row-alt; } } + blockquote { + border-color: rgba($article-warn-text, .25); + p { color: rgba($article-warn-text, .6); } + } } ///////////////////////////////// Enterprise ///////////////////////////////// diff --git a/assets/styles/layouts/_layout-sidebar.scss b/assets/styles/layouts/_layout-sidebar.scss index e343cf6e9..90dc5f3a3 100644 --- a/assets/styles/layouts/_layout-sidebar.scss +++ b/assets/styles/layouts/_layout-sidebar.scss @@ -21,7 +21,7 @@ background: $article-bg; border-radius: $border-radius; border: 1px solid $search-border; - padding: .5em; + padding: .5em 2.15rem .5rem .5rem; width: 100%; color: $article-text; transition-property: border, box-shadow; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index 33bf916b0..bad36b790 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -30,7 +30,7 @@ $search-highlight: $b-pool; // Article Content $article-bg: $g20-white; -$article-heading: $g6-smoke; +$article-heading: $g7-graphite; $article-text: $g8-storm; $article-bold: $g8-storm; $article-link: $b-ocean; diff --git a/content/v2.0/example.md b/content/v2.0/example.md index 9d16076a7..6cce26114 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -165,6 +165,11 @@ Etiam tristique nisi et tristique auctor. Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. + #### Inline Styles This is an [inline link](#). This is `inline code`. This is an [`inline code link`](#) . @@ -271,6 +276,11 @@ Etiam tristique nisi et tristique auctor. Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. + #### Inline Styles This is an [inline link](#). This is `inline code`. This is an [`inline code link`](#) . From ae8880f6967b14999f8be76d76503642054c8f3d Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 31 Dec 2018 22:14:53 -0700 Subject: [PATCH 11/28] added latest version checker and warning --- assets/styles/themes/_theme-light.scss | 2 +- layouts/_default/section.html | 1 + layouts/_default/single.html | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index bad36b790..5cc5cdc1c 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -71,7 +71,7 @@ $article-warn-base: $o-dreamsicle; $article-warn-heading: $o-fire; $article-warn-text: $o-curacao; $article-warn-link: rgba($o-curacao, .75); -$article-warn-link-hover: $p-planet; +$article-warn-link-hover: $b-sapphire; $article-warn-code: #f52f75; $article-warn-code-bg: #ffebeb; $article-warn-table-header: $o-dreamsicle; diff --git a/layouts/_default/section.html b/layouts/_default/section.html index 2c28a3252..a92405eb7 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -5,6 +5,7 @@

    {{ .Title }}

    + {{ partial "article/latest-version.html" . }} {{ partial "article/enterprise.html" . }} {{ .Content }}
    diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 2c28a3252..a92405eb7 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -5,6 +5,7 @@

    {{ .Title }}

    + {{ partial "article/latest-version.html" . }} {{ partial "article/enterprise.html" . }} {{ .Content }}
    From 93bc532ad1c045ca1c6d98a74e74bc5da2d114df Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 31 Dec 2018 22:15:06 -0700 Subject: [PATCH 12/28] added latest version checker and warning --- data/versions.yaml | 1 + layouts/partials/article/latest-version.html | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 data/versions.yaml create mode 100644 layouts/partials/article/latest-version.html diff --git a/data/versions.yaml b/data/versions.yaml new file mode 100644 index 000000000..704caf399 --- /dev/null +++ b/data/versions.yaml @@ -0,0 +1 @@ +latest_version: v2.0 diff --git a/layouts/partials/article/latest-version.html b/layouts/partials/article/latest-version.html new file mode 100644 index 000000000..f9a75775e --- /dev/null +++ b/layouts/partials/article/latest-version.html @@ -0,0 +1,11 @@ +{{ $currentVersion := (index (findRE "[^/]+.*?" .RelPermalink) 0) .RelPermalink }} +{{ $latestVersion := $.Site.Data.versions.latest_version }} +{{ $latestVersionURL := replaceRE "[^/]+.*?[0]" $latestVersion .RelPermalink }} +{{ if not (eq $currentVersion $latestVersion) }} +
    +

    + This page documents an earlier version of InfluxDB. + View the latest version of this page in the InfluxDB {{ $latestVersion }} documentation. +

    +
    +{{ end }} From bab8e2cc129fd271eb2a64ffe80e2dc436d3dc66 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 2 Jan 2019 10:32:44 -0700 Subject: [PATCH 13/28] added tabbed content functionality and styles --- README.md | 47 ++++++++++++++++++ assets/js/content-interactions.js | 57 +++++++++++++++++----- assets/styles/layouts/_layout-article.scss | 45 +++++++++++++++++ assets/styles/themes/_theme-dark.scss | 6 +++ assets/styles/themes/_theme-light.scss | 6 +++ content/v2.0/example.md | 52 ++++++++++++++++++++ layouts/_default/section.html | 4 +- layouts/_default/single.html | 4 +- layouts/shortcodes/tab-content.html | 3 ++ layouts/shortcodes/tabs-wrapper.html | 3 ++ layouts/shortcodes/tabs.html | 3 ++ 11 files changed, 214 insertions(+), 16 deletions(-) create mode 100644 layouts/shortcodes/tab-content.html create mode 100644 layouts/shortcodes/tabs-wrapper.html create mode 100644 layouts/shortcodes/tabs.html diff --git a/README.md b/README.md index c27176295..490a20265 100644 --- a/README.md +++ b/README.md @@ -138,3 +138,50 @@ To format Enterprise-specific content, wrap it in the `{{% enterprise %}}` short Insert enterprise-specific markdown content here. {{% /enterprise %}} ``` + +### Tabbed Content +Shortcodes are available for creating "tabbed" content (content that is changed by a users' selection). +Ther following three must be used: + +`{{< tabs-wrapper >}}` +This shortcode creates a wrapper or container for the tabbed content. +All UI interactions are limited to the scope of each container. +If you have more than one "group" of tabbed content in a page, each needs its own `tabs-wrapper`. +This shortcode must be closed with `{{< /tabs-wrapper >}}`. + +**Note**: The `<` and `>` characters used in this shortcode indicate that the contents should be processed as HTML. + +`{{% tabs %}}` +This shortcode creates a container for buttons that control the display of tabbed content. +It should contain simple markdown links with anonymous anchors (`#`). +The link text is used as the button text. +This shortcode must be closed with `{{% /tabs %}}`. + +**Note**: The `%` characters used in this shortcode indicate that the contents should be processed as Markdown. + +`{{% tab-content %}}` +This shortcode creates a container for a content block. +Each content block in the tab group needs to be wrapped in this shortcode. +This shortcode must be closed with `{{% /tab-content %}}`. + +**Note**: The `%` characters used in this shortcode indicate that the contents should be processed as Markdown. + +#### Example tabbed content group +```md +{{< tabs-wrapper >}} + +{{% tabs %}} +[Button text for tab 1](#) +[Button text for tab 2](#) +{{% /tabs %}} + +{{% tab-content %}} +Markdown content for tab 1. +{{% /tab-content %}} + +{{% tab-content %}} +Markdown content for tab 2. +{{% /tab-content %}} + +{{< /tabs-wrapper >}} +``` diff --git a/assets/js/content-interactions.js b/assets/js/content-interactions.js index aa39444ed..1b7dc21de 100644 --- a/assets/js/content-interactions.js +++ b/assets/js/content-interactions.js @@ -1,20 +1,53 @@ -// Make headers linkable +///////////////////////////// Make headers linkable ///////////////////////////// + $("h2,h3,h4,h5,h6").each(function() { var link = "" $(this).wrapInner( link ); }) -// Smooth Scroll -var topBuffer = 0; - $('a[href^="#"]').on('click',function (e) { - e.preventDefault(); +///////////////////////////////// Smooth Scroll ///////////////////////////////// - var target = this.hash; - var $target = $(target); +$('a[href^="#"]:not(.tabs p a)').on('click',function (e) { + e.preventDefault(); - $('html, body').stop().animate({ - 'scrollTop': ($target.offset().top - topBuffer) - }, 400, 'swing', function () { - window.location.hash = target; - }); + var target = this.hash; + var $target = $(target); + + $('html, body').stop().animate({ + 'scrollTop': ($target.offset().top) + }, 400, 'swing', function () { + window.location.hash = target; }); +}); + +//////////////////////////////// Tabbed Content //////////////////////////////// + +$(function() { + const container = '.tabs-wrapper' + const tab = '.tabs p a'; + const content = '.tab-content'; + + // Add the active class to the first tab in each tab group, + // in case it wasn't already set in the markup. + $(container).each(function () { + $(tab, this).removeClass('is-active'); + $(tab + ':first', this).addClass('is-active'); + }); + + $(tab).on('click', function(e) { + e.preventDefault(); + + // Make sure the tab being clicked is marked as active, and make the rest inactive. + $(this).addClass('is-active').siblings().removeClass('is-active'); + + // Render the correct tab content based on the position of the tab being clicked. + const activeIndex = $(tab).index(this); + $(content).each(function(i) { + if (i === activeIndex) { + $(this).show(); + $(this).siblings(content).hide(); + } + }); + console.log(activeIndex); + }); +}); diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 9f07fbe24..a31719819 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -362,4 +362,49 @@ } } + /////////////////////////////// Tabbed Content /////////////////////////////// + + .tabs-wrapper{ + margin: 2rem 0 .5rem; + } + .tabs p { + display: flex; + flex-wrap: wrap; + } + .tabs a { + flex-grow: 1; + margin: 2px; + font-size: 0.875rem; + color: $article-tab-text; + padding: .35rem .75rem; + display: inline-block; + text-align: center; + border-radius: $border-radius; + background-color: $article-tab-bg; + transition: background-color .2s, color .2s; + + &:hover { + color: $article-tab-active-text; + background: $article-tab-active-bg; + } + &.is-active { + color: $article-tab-active-text; + background: $article-tab-active-bg; + } + } + + .tab-content { + padding: 1.5rem 0; + width: 100%; + + & > * { + width: 100% !important; + margin-left: 0 !important; + } + } + + .tab-content:not(:first-of-type) { + display: none; + } + } diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 1d2a9d96a..1ba338012 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -83,3 +83,9 @@ $article-enterprise-base: $p-star !default; $article-enterprise-text: $p-potassium !default; $article-enterprise-link: $p-moonstone !default; $article-enterprise-link-hover: $g20-white !default; + +// Article Tabs for tabbed content +$article-tab-text: $g12-forge !default; +$article-tab-bg: $g4-onyx !default; +$article-tab-active-text: $g20-white !default; +$article-tab-active-bg: $b-ocean !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index 5cc5cdc1c..968f74da4 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -82,3 +82,9 @@ $article-enterprise-base: $p-comet; $article-enterprise-text: $p-star; $article-enterprise-link: $p-star; $article-enterprise-link-hover: $b-ocean; + +// Article Tabs for tabbed content +$article-tab-text: $g8-storm; +$article-tab-bg: $g18-cloud; +$article-tab-active-text: $g20-white; +$article-tab-active-bg: $b-pool; diff --git a/content/v2.0/example.md b/content/v2.0/example.md index 6cce26114..c085072a4 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -350,3 +350,55 @@ cpu = from(bucket:"telegraf/autogen") | Row 4.1 | Row 4.2 | Row 4.3 | Row 4.4 | {{% /warn %}} + +{{< tabs-wrapper >}} +{{% tabs %}} +[tab 1.1](#) +[tab 1.2](#) +[tab 1.3](#) +[tab 1.4](#) +{{% /tabs %}} + +{{% tab-content %}} +This is tab 1.1 content. +{{% /tab-content %}} + +{{% tab-content %}} +This is tab 1.2 content. +{{% /tab-content %}} + +{{% tab-content %}} +This is tab 1.3 content. +{{% /tab-content %}} + +{{% tab-content %}} +This is tab 1.4 content. +{{% /tab-content %}} + +{{< /tabs-wrapper >}} + +{{< tabs-wrapper >}} +{{% tabs %}} +[tab 2.1](#) +[tab 2.2](#) +[tab 2.3](#) +[tab 2.4](#) +{{% /tabs %}} + +{{% tab-content %}} +This is tab 2.1 content. +{{% /tab-content %}} + +{{% tab-content %}} +This is tab 2.2 content. +{{% /tab-content %}} + +{{% tab-content %}} +This is tab 2.3 content. +{{% /tab-content %}} + +{{% tab-content %}} +This is tab 2.4 content. +{{% /tab-content %}} + +{{< /tabs-wrapper >}} diff --git a/layouts/_default/section.html b/layouts/_default/section.html index a92405eb7..09197a540 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -3,12 +3,12 @@
    {{ partial "sidebar.html" . }}
    -
    +

    {{ .Title }}

    {{ partial "article/latest-version.html" . }} {{ partial "article/enterprise.html" . }} {{ .Content }} -
    +
    diff --git a/layouts/_default/single.html b/layouts/_default/single.html index a92405eb7..09197a540 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -3,12 +3,12 @@
    {{ partial "sidebar.html" . }}
    -
    +

    {{ .Title }}

    {{ partial "article/latest-version.html" . }} {{ partial "article/enterprise.html" . }} {{ .Content }} -
    +
    diff --git a/layouts/shortcodes/tab-content.html b/layouts/shortcodes/tab-content.html new file mode 100644 index 000000000..d88086a17 --- /dev/null +++ b/layouts/shortcodes/tab-content.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    diff --git a/layouts/shortcodes/tabs-wrapper.html b/layouts/shortcodes/tabs-wrapper.html new file mode 100644 index 000000000..4b935378b --- /dev/null +++ b/layouts/shortcodes/tabs-wrapper.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    diff --git a/layouts/shortcodes/tabs.html b/layouts/shortcodes/tabs.html new file mode 100644 index 000000000..94db29833 --- /dev/null +++ b/layouts/shortcodes/tabs.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    From fe23c61ae23e889ed650eebdcda70132a12b2ca2 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 2 Jan 2019 10:34:34 -0700 Subject: [PATCH 14/28] minor update to tabbed shortcode content in readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 490a20265..ebe3110db 100644 --- a/README.md +++ b/README.md @@ -162,6 +162,7 @@ This shortcode must be closed with `{{% /tabs %}}`. `{{% tab-content %}}` This shortcode creates a container for a content block. Each content block in the tab group needs to be wrapped in this shortcode. +**The number of `tab-content` blocks must match the number of links provided in the `tabs` shortcode** This shortcode must be closed with `{{% /tab-content %}}`. **Note**: The `%` characters used in this shortcode indicate that the contents should be processed as Markdown. From b1498565cb95f5c4cd26f4e6042ce04df6cd094e Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 2 Jan 2019 17:18:01 -0700 Subject: [PATCH 15/28] added left nav --- assets/js/content-interactions.js | 13 ++- assets/styles/layouts/_layout-sidebar.scss | 98 ++++++++++++++++++++++ assets/styles/themes/_theme-dark.scss | 10 +++ assets/styles/themes/_theme-light.scss | 10 +++ content/v2.0/_index.md | 3 + layouts/partials/sidebar.html | 84 ++++++++++++++++++- 6 files changed, 212 insertions(+), 6 deletions(-) diff --git a/assets/js/content-interactions.js b/assets/js/content-interactions.js index 1b7dc21de..54245c7b0 100644 --- a/assets/js/content-interactions.js +++ b/assets/js/content-interactions.js @@ -7,7 +7,7 @@ $("h2,h3,h4,h5,h6").each(function() { ///////////////////////////////// Smooth Scroll ///////////////////////////////// -$('a[href^="#"]:not(.tabs p a)').on('click',function (e) { +$('.article a[href^="#"]:not(.tabs p a)').on('click',function (e) { e.preventDefault(); var target = this.hash; @@ -20,6 +20,16 @@ $('a[href^="#"]:not(.tabs p a)').on('click',function (e) { }); }); +///////////////////////////// Left Nav Interactions ///////////////////////////// + +$(document).ready( function() { + $(".children-toggle").click(function(e) { + e.preventDefault() + $(this).toggleClass('open'); + $(this).siblings('.children').toggleClass('open'); + }) +}) + //////////////////////////////// Tabbed Content //////////////////////////////// $(function() { @@ -48,6 +58,5 @@ $(function() { $(this).siblings(content).hide(); } }); - console.log(activeIndex); }); }); diff --git a/assets/styles/layouts/_layout-sidebar.scss b/assets/styles/layouts/_layout-sidebar.scss index 90dc5f3a3..d0422135e 100644 --- a/assets/styles/layouts/_layout-sidebar.scss +++ b/assets/styles/layouts/_layout-sidebar.scss @@ -38,7 +38,105 @@ color: rgba($article-text, .35); } } + } + #nav-tree { + list-style: none; + padding-left: 1.5rem; + ul { + list-style: none; + padding-left: 2rem; + border-left: 2px solid $nav-border; + } + + li { + margin-top: .5rem; + position: relative; + &:before { + content: ""; + width: 4px; + height: 4px; + top: .45em; + left: -1em; + display: block; + position: absolute; + background: $nav-border; + } + ul { + margin-left: -.95em; + } + } + + a { + text-decoration: none; + font-weight: 600; + display: inline-block; + } + .nav-category > a { + color: $nav-category; + font-size: 1.1rem; + &:hover { + color: $nav-category-hover; + } + } + .nav-item > a { + color: $nav-item; + &:hover { + color: $nav-item-hover; + } + } + + .children { + height: 0; + overflow: hidden; + &.open { + height: auto; + } + } + + .children-toggle { + width: 1rem; + height: 1rem; + position: absolute; + top: .05rem; + left: -1.4rem; + display: block; + background: $nav-border; + border-radius: 50%; + + &:before, &:after { + content: ""; + position: absolute; + display: block; + background: $nav-toggle; + transition: all .3s; + } + &:before { + top: 4px; + left: 7px; + height: 8px; + width: 2px; + } + &:after { + top: 7px; + left: 4px; + height: 2px; + width: 8px; + } + + &:hover { + background: $nav-toggle-bg-hover; + &:before, + &:after { + background: $nav-toggle-hover; + } + } + + &.open { + &:before { transform: rotate(90deg); } + &:after { transform: rotate(180deg); } + } + } } } diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 1ba338012..485e78e3b 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -89,3 +89,13 @@ $article-tab-text: $g12-forge !default; $article-tab-bg: $g4-onyx !default; $article-tab-active-text: $g20-white !default; $article-tab-active-bg: $b-ocean !default; + +// Left Navigation +$nav-category: $b-ocean !default; +$nav-category-hover: $g20-white !default; +$nav-item: $g16-pearl !default; +$nav-item-hover: $b-ocean !default; +$nav-border: $g5-pepper !default; +$nav-toggle: $g16-pearl !default; +$nav-toggle-hover: $g16-pearl !default; +$nav-toggle-bg-hover: $b-ocean !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index 968f74da4..00892d2bb 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -88,3 +88,13 @@ $article-tab-text: $g8-storm; $article-tab-bg: $g18-cloud; $article-tab-active-text: $g20-white; $article-tab-active-bg: $b-pool; + +// Left Navigation +$nav-category: $b-ocean; +$nav-category-hover: $gr-viridian; +$nav-item: $g9-mountain; +$nav-item-hover: $gr-viridian; +$nav-border: $g14-chromium; +$nav-toggle: $g9-mountain; +$nav-toggle-hover: $g20-white; +$nav-toggle-bg-hover: $b-ocean; diff --git a/content/v2.0/_index.md b/content/v2.0/_index.md index ad73a01f3..fee3384b5 100644 --- a/content/v2.0/_index.md +++ b/content/v2.0/_index.md @@ -5,6 +5,9 @@ description: placeholder menu: versions: name: v2.0 + v2_0: + name: Introduction + weight: 1 --- _This placeholder content for the landing page for v2.0._ diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html index 88e7f29eb..337d94d44 100644 --- a/layouts/partials/sidebar.html +++ b/layouts/partials/sidebar.html @@ -1,5 +1,6 @@ +{{ $currentPage := . }} {{ $currentVersion := (index (findRE "[^/]+.*?" .RelPermalink) 0) }} - + + + From f0ab0ec8b151658e6bd72b0efeb6e9fa15dcff31 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 3 Jan 2019 09:46:23 -0700 Subject: [PATCH 16/28] added tabbed codeblock shortcodes and styles --- README.md | 39 ++++++++++++++++++++++ assets/styles/layouts/_layout-article.scss | 33 ++++++++++++++++++ assets/styles/themes/_theme-dark.scss | 6 ++++ assets/styles/themes/_theme-light.scss | 10 ++++-- content/v2.0/example.md | 25 ++++++++++++++ layouts/shortcodes/code-tab-content.html | 3 ++ layouts/shortcodes/code-tabs-wrapper.html | 3 ++ layouts/shortcodes/code-tabs.html | 3 ++ 8 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 layouts/shortcodes/code-tab-content.html create mode 100644 layouts/shortcodes/code-tabs-wrapper.html create mode 100644 layouts/shortcodes/code-tabs.html diff --git a/README.md b/README.md index ebe3110db..b132550e0 100644 --- a/README.md +++ b/README.md @@ -186,3 +186,42 @@ Markdown content for tab 2. {{< /tabs-wrapper >}} ``` + +#### Tabbed code blocks +Shortcodes are also available for tabbed code blocks primarily used to give users +the option to choose between different languages and syntax. +The shortcode structure is the same as above, but the shortcode names are different: + +`{{< code-tabs-wrapper >}}` +`{{% code-tabs %}}` +`{{% code-tab-content %}}` + +~~~md +{{< code-tabs-wrapper >}} + +{{% code-tabs %}} +[Flux](#) +[InfluxQL](#) +{{% /code-tabs %}} + +{{% code-tab-content %}} +```js +data = from(bucket: "telegraf/autogen") + |> range(start: -15m) + |> filter(fn: (r) => + r._measurement == "mem" AND + r._field == "used_percent" + ) +``` +{{% /code-tab-content %}} + +{{% code-tab-content %}} +```sql +SELECT "used_percent" +FROM "telegraf"."autogen"."mem" +WHERE time > now() - 15m +``` +{{% /code-tab-content %}} + +{{< /code-tabs-wrapper >}} +~~~ diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index a31719819..8f48ad169 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -151,6 +151,7 @@ padding: 1.5em; border-radius: $border-radius; overflow: scroll; + code { padding: 0; } } //////////////////////////////////// Tables //////////////////////////////////// @@ -407,4 +408,36 @@ display: none; } + .tabs-wrapper.code { + .tabs { + p { + margin: 0; + text-align: right; + display: block; + } + a { + margin: 0; + border-radius: $border-radius $border-radius 0 0; + display: inline-block; + background: $article-tab-code-bg; + color: $article-tab-code-text; + &:hover { + background: $article-tab-code-bg-hover; + color: $article-tab-code-text-hover; + } + &.is-active { + background-color: $article-code-bg; + color: $article-tab-code-active-text; + } + } + } + .tab-content { + padding: 0; + pre { + margin: 0 0 3rem; + border-radius: $border-radius 0 $border-radius $border-radius; + } + } + } + } diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 485e78e3b..3657ff10b 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -90,6 +90,12 @@ $article-tab-bg: $g4-onyx !default; $article-tab-active-text: $g20-white !default; $article-tab-active-bg: $b-ocean !default; +$article-tab-code-text: $g9-mountain !default; +$article-tab-code-bg: $g5-pepper !default; +$article-tab-code-text-hover: $g20-white !default; +$article-tab-code-bg-hover: $b-ocean !default; +$article-tab-code-active-text: $g20-white !default; + // Left Navigation $nav-category: $b-ocean !default; $nav-category-hover: $g20-white !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index 00892d2bb..a1d8e890e 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -41,10 +41,10 @@ $article-code: $p-star; $article-code-bg: $p-violettecreme; $article-code-accent1: $p-potassium; $article-code-accent2: $b-ocean; -$article-code-accent3: #0e9e75; +$article-code-accent3: #008e7c; $article-code-accent4: $o-ruby; $article-code-accent5: #e24bbb; -$article-code-accent6: $b-pool; +$article-code-accent6: $b-ocean; $article-code-accent7: #e90; $article-code-select: $b-pool; $article-code-hover: $b-sapphire; @@ -89,6 +89,12 @@ $article-tab-bg: $g18-cloud; $article-tab-active-text: $g20-white; $article-tab-active-bg: $b-pool; +$article-tab-code-text: $p-potassium; +$article-tab-code-bg: $g20-white; +$article-tab-code-text-hover: $g20-white; +$article-tab-code-bg-hover: $p-comet; +$article-tab-code-active-text: $p-star; + // Left Navigation $nav-category: $b-ocean; $nav-category-hover: $gr-viridian; diff --git a/content/v2.0/example.md b/content/v2.0/example.md index c085072a4..6a05ba789 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -16,6 +16,31 @@ This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nu This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. +{{< code-tabs-wrapper >}} +{{% code-tabs %}} +[Flux](#) +[InfluxQL](#) +{{% /code-tabs %}} + +{{% code-tab-content %}} +```js +data = from(bucket: "telegraf/autogen") + |> range(start: -15m) + |> filter(fn: (r) => + r._measurement == "mem" AND + r._field == "used_percent" + ) +``` +{{% /code-tab-content %}} +{{% code-tab-content %}} +```sql +SELECT "used_percent" +FROM "telegraf"."autogen"."mem" +WHERE time > now() - 15m +``` +{{% /code-tab-content %}} +{{< /code-tabs-wrapper >}} + {{% enterprise %}} ### h3 This is a header3 This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. diff --git a/layouts/shortcodes/code-tab-content.html b/layouts/shortcodes/code-tab-content.html new file mode 100644 index 000000000..d88086a17 --- /dev/null +++ b/layouts/shortcodes/code-tab-content.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    diff --git a/layouts/shortcodes/code-tabs-wrapper.html b/layouts/shortcodes/code-tabs-wrapper.html new file mode 100644 index 000000000..e42d0856e --- /dev/null +++ b/layouts/shortcodes/code-tabs-wrapper.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    diff --git a/layouts/shortcodes/code-tabs.html b/layouts/shortcodes/code-tabs.html new file mode 100644 index 000000000..94db29833 --- /dev/null +++ b/layouts/shortcodes/code-tabs.html @@ -0,0 +1,3 @@ +
    + {{ .Inner }} +
    From 8edc3da27f627802f427c39905530a7fb84f149f Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 3 Jan 2019 11:23:17 -0700 Subject: [PATCH 17/28] added image styles and hd image shortcode --- README.md | 16 ++++++++++++++++ assets/js/content-interactions.js | 10 ++++------ assets/styles/layouts/_layout-article.scss | 20 ++++++++++++++++---- assets/styles/themes/_theme-dark.scss | 6 +++--- assets/styles/themes/_theme-light.scss | 6 +++--- content/v2.0/example.md | 8 ++++++++ layouts/shortcodes/img-hd.html | 7 +++++++ static/img/test-image-2.png | Bin 0 -> 181452 bytes 8 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 layouts/shortcodes/img-hd.html create mode 100644 static/img/test-image-2.png diff --git a/README.md b/README.md index b132550e0..26c6d8fec 100644 --- a/README.md +++ b/README.md @@ -225,3 +225,19 @@ WHERE time > now() - 15m {{< /code-tabs-wrapper >}} ~~~ + +### High-resolution images +In many cases, screenshots included in the docs are taken from high-resolution (retina) screens. +Because of this, the actual pixel dimension is 2x larger than it needs to be and is rendered 2x bigger than it should be. +The following shortcode automatically sets a fixed width on the image using half of its actual pixel dimension. +This preserves the detail of the image and renders it at a size where there should be little to no "blur" +cause by browser image resizing. + +```html +{{< img-hd src="/path/to/image" alt="Alternate title" />}} +``` + +###### Notes +- This should only be used on screenshots takes from high-resolution screens. +- Image widths are limited to the width of the article content container and will scale accordingly, + even with the `width` explicitly set. diff --git a/assets/js/content-interactions.js b/assets/js/content-interactions.js index 54245c7b0..c29abf538 100644 --- a/assets/js/content-interactions.js +++ b/assets/js/content-interactions.js @@ -22,12 +22,10 @@ $('.article a[href^="#"]:not(.tabs p a)').on('click',function (e) { ///////////////////////////// Left Nav Interactions ///////////////////////////// -$(document).ready( function() { - $(".children-toggle").click(function(e) { - e.preventDefault() - $(this).toggleClass('open'); - $(this).siblings('.children').toggleClass('open'); - }) +$(".children-toggle").click(function(e) { + e.preventDefault() + $(this).toggleClass('open'); + $(this).siblings('.children').toggleClass('open'); }) //////////////////////////////// Tabbed Content //////////////////////////////// diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 8f48ad169..1527f769b 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -6,7 +6,7 @@ } .article--content{ - max-width: 700px; + max-width: 760px; h1,h2,h3,h4,h5,h6 { color: $article-heading; a { @@ -92,6 +92,12 @@ } } + img { + max-width: 100%; + border-radius: ($border-radius * 1.5); + box-shadow: 1px 3px 10px $article-shadow; + } + //////////////////////////////////// Lists //////////////////////////////////// ol, ul { @@ -162,7 +168,7 @@ color: $article-text; max-width: 100%; overflow: scroll; - box-shadow: 1px 3px 15px $article-table-shadow; + box-shadow: 1px 3px 10px $article-shadow; border-radius: ($border-radius * 1.5); th, td { @@ -252,9 +258,12 @@ color: $article-note-code; background: $article-note-code-bg; } + img { + box-shadow: 1px 3px 10px $article-note-shadow; + } table{ color: $article-note-text; - box-shadow: 1px 3px 15px $article-note-table-shadow; + box-shadow: 1px 3px 10px $article-note-shadow; thead{ background: $article-note-table-header; } @@ -296,9 +305,12 @@ color: $article-warn-code; background: $article-warn-code-bg; } + img { + box-shadow: 1px 3px 10px $article-warn-shadow; + } table{ color: $article-warn-text; - box-shadow: 1px 3px 15px $article-warn-table-shadow; + box-shadow: 1px 3px 10px $article-warn-shadow; thead{ background: $article-warn-table-header; } diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 3657ff10b..4ffd578c8 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -36,6 +36,9 @@ $article-text: $g14-chromium !default; $article-bold: $g19-ghost !default; $article-link: $b-pool !default; $article-link-hover: $g20-white !default; +$article-shadow: #191a1b !default; +$article-note-shadow: #191a1b !default; +$article-warn-shadow: #191a1b !default; // Article Code $article-code: $p-potassium !default; @@ -53,7 +56,6 @@ $article-code-hover: $g20-white !default; // Article Tables $article-table-header-left: $p-planet !default; $article-table-header-right: $b-sapphire !default; -$article-table-shadow: #191a1b !default; $article-table-row-alt: $g2-kevlar !default; // Article Notes, Warnings, & Messages @@ -66,7 +68,6 @@ $article-note-code: #75d2f1 !default; $article-note-code-bg: #20272b !default; $article-note-table-header: $gr-viridian !default; $article-note-table-row-alt: #21272d !default; -$article-note-table-shadow: #191a1b !default; $article-warn-base: $o-dreamsicle !default; $article-warn-heading: $g20-white !default; @@ -77,7 +78,6 @@ $article-warn-code: #ec6e6e !default; $article-warn-code-bg: #292024 !default; $article-warn-table-header: $o-dreamsicle !default; $article-warn-table-row-alt: #2b252b !default; -$article-warn-table-shadow: #191a1b !default; $article-enterprise-base: $p-star !default; $article-enterprise-text: $p-potassium !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index a1d8e890e..a6106b9e0 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -35,6 +35,9 @@ $article-text: $g8-storm; $article-bold: $g8-storm; $article-link: $b-ocean; $article-link-hover: $gr-viridian; +$article-shadow: #c8cdd0; +$article-note-shadow: #8cb7ab; +$article-warn-shadow: #b98a7d; // Article Code $article-code: $p-star; @@ -52,7 +55,6 @@ $article-code-hover: $b-sapphire; // Article Tables $article-table-header-left: $b-pool; $article-table-header-right: $gr-honeydew; -$article-table-shadow: #c8cdd0; $article-table-row-alt: $g18-cloud; // Article Notes & Warnings @@ -65,7 +67,6 @@ $article-note-code: #147572; $article-note-code-bg: #d6f7ec; $article-note-table-header: $gr-viridian; $article-note-table-row-alt: #d6f5e9; -$article-note-table-shadow: #8cb7ab; $article-warn-base: $o-dreamsicle; $article-warn-heading: $o-fire; @@ -76,7 +77,6 @@ $article-warn-code: #f52f75; $article-warn-code-bg: #ffebeb; $article-warn-table-header: $o-dreamsicle; $article-warn-table-row-alt: #ffe6df; -$article-warn-table-shadow: #b98a7d; $article-enterprise-base: $p-comet; $article-enterprise-text: $p-star; diff --git a/content/v2.0/example.md b/content/v2.0/example.md index 6a05ba789..839f6b0c6 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -45,6 +45,10 @@ WHERE time > now() - 15m ### h3 This is a header3 This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. +![Test image](http://docs.influxdata.com/img/chronograf/v1.7/alerts-conditions.png) + +{{< img-hd src="/img/test-image-2.png" alt="Test Image" />}} + This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. {{% /enterprise %}} @@ -178,6 +182,8 @@ Etiam tristique nisi et tristique auctor. Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. +{{< img-hd src="/img/test-image-2.png" alt="Test Image" />}} + #### h4 This is a header4 Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. @@ -285,6 +291,8 @@ Etiam tristique nisi et tristique auctor. Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. +{{< img-hd src="/img/test-image-2.png" alt="Test Image" />}} + ### h3 This is a header3 Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. diff --git a/layouts/shortcodes/img-hd.html b/layouts/shortcodes/img-hd.html new file mode 100644 index 000000000..9c08a761c --- /dev/null +++ b/layouts/shortcodes/img-hd.html @@ -0,0 +1,7 @@ +{{ .Inner }} +{{ $src := .Get "src" }} +{{ $alt := .Get "alt" }} +{{ with (imageConfig ( print "/static" $src )) }} + {{ $imageWidth := div .Width 2 }} + {{ $alt }} +{{ end }} diff --git a/static/img/test-image-2.png b/static/img/test-image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..fe2c3976a1240940149be427937d39c7123bc32d GIT binary patch literal 181452 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

    (kYJ?&p6%B{keaAGNty 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

    #{MTQgJWy)Uc*Wb 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�Z@#zdp`i{L3dlC+?SUbHowl+Yvu45EF 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

    rF_u;Fw#flrXXkQB9jaw|w2YJJ(8Y5aQ$}09v z;KjcZHY;E_VMmu2mv$~1Uy%@l+@eGkOe88IN_rbt`4T>(NLe_bI!D^1y<=f1vm@H4 zBfzOG9vQStH+?Az{>OciT%(z?YsI1w59QwF!PD@l0+W4Td zVmpK9JUD?*l=Hc7gH0BYLtS3>ehUf!+*6d(JV?BGk9<^EaqGlC~^V-c1rP>Ag*38_Sg z;qdB`1+i7e7iEkdXphNu-u1k7mr#=drF{j}JJe;`H|eOQ_g2zyvx|lk8YnI|2+~SKKXtuaZ#bXB4)j7|!p{30 zTxh*ZnMUZRFq&C0)ftaM)Y_f9twcEyNR6N@b5!e&1)li!1*RGD5@4cM!4WZoxf5@a zlz(KSaR~@x<4+Wh^lbZf?e;No(nwDy)gF8B0;Q z`ueDEO0(=29!FDVRT`X6r|rY5UzOyGB#gvWWvX?~(mqd%TPtt+Z_H8GVRM?t zZBKT>5EY7Rho(M&tiP}@mr0qB<+*N%ZVgTnS(1ctY#spFL$l81-q7@61;NqC{M~8W#7DdY0tr%#1@?e5O#RCwE3#K+f&n z1dFpTL|#f*^zJ!}o0;i3JD^G7_q!Op^qxtm^|9x;PSA!0S6HR+c4!E|aw5`+#x}M- z47$72vhU@9o6>=kn?~Ky$wrJ5K}r|zdY6aO-C4_jdCbkQRA>$Hf%l#UTe_f|^=@~a z@w_FE!P2@=V*~x(6`J1AeKTs5G`&2<4F~?=T;%t$KlIuA2FJ45lmtufX{0j6@uXEh z7x&S8)%7$S(#iA1>&6;ddC${>r^Rseo+HNs#6eK2!Zy>euASUycQ6{KQsJ-^DU0WX zzV07FuJD#VFW!KQv1z*Ss_@Hf3wHCC~Bgav&65J;YFtWnI%{B4jfr?VGOo1B2w?Hq#QG#pkHR zo+=LL^4Cpfc1rkY{By9J959|g{h~i#XXdUuatDaH$vVknMQOScyTJRcdjgz^<<+D9 z_U7aTM=4V9J8o}YdPC4EdSS#jDO~ol2A3CKy;5{ZMlQTlj#KeKfEUEG4r>pCJOZ#I zfbTbM_Zq^H_6UUdBmoKtsBG<5y>t7Sre>F`UJ4@saQs~i3}|tREV-h43LEwmYd3IWKqlLMB>!oOABa8BA|uhNzx4>G4k7F8Dn4c<>B?etH||p zRa=j-FNb^1=u0K!SFg(G4ABx6;9%or@WBz6V<{e^+_dU-NAQkrL$TtpV49t9qOzkq zFh&j5xTMRLli_jYCxky$C0Y78xZv1n0Zsa?3CoxG4M|Sb-I^-tG_7!X9$?d}?7n}E zZK`Mj16+yhV%gzVTCQ0~Tl)jq!oppE(wyR#!R(+dU6kZx@E?8QwQy&hIn&0F&$tdu zgwB`L&#DlmFgLosp*c66#TcutC7cxq@|T!L8&4AT*7{(XwpdX|@8QG%vIAZ_R6Wh+ z(e;FGFk?v<2e`y~e&9?~56NAJj;8G?@n+nk2FnSCHb%WBn=94e_Wev@JRbjYX0sdf z6IH+TI@LfClaElMJ=}nI5-ADy+kWC5J!(EZC{+_8HrAHmUtX0jvAJoOVlBo+!?nhD z^P7ZJl zx`@{oUGm;jo8IcMIt+JfH0AhbZvvw6ixxq_)c0|WJ@RjPCVIi}>!dH|mROjlRd^JmT)*ePAF1togXzfAOobOKL2Bbs3di<53=2d^p%6^|8c zAmPAus;!`{(T5rZ_;j>ReL#%MPNC4_5-I9>`Vq|-)js<`F^-1y=>T$DJx)>YgrEJ) zSygD=)F;XSV;MN;Y#TAN`Vq6+t*;O^fpD#Mh~w!o{%L=?kAZm7DwtOg$%n7Ril-uL z`pF;ck5uFRuD{qBm6A$CeiP~VooHI0f@#i1l{iJWyU3(uZBIUT(+y^Siw4Y-vUex% z$CVOFR~xcWu1ga@W>2N}$+2V7KW+#*6$Hx9Rw}bUGIXRw0xN%|P(z4j&ld-z#6Y2ZmSEjPS zLhDpcR#SDh!b6oaksjm`9(NTGTwzjOaCNdwVGSrBeT!>guf_jASl-WvX1CZHjQO?? zqUr;vL1O@|H!+%N^?{S!8H6!hzP-x(dNY;h!?Mo>`eNF5fWvfO|FmKbjqBvz?HNxr z)*N3?*UI(%4w%4+^cOyaTv zmS`P<+lbu3pl~Z^5T!^?Lk#6`;he;Je$$9>KuV#T6za?3)ZZ zoeTEfeN|63*>A%$;k_~;^(GR`b@Hre7t4F{syYw_8@JNiPJ%Eq?mJ{yN>Y4-f2TY3 zCYCLmTT~zNqQdB8Oim7^W@u{JyZCd$cgI5UP3fY7^d6-#b;Q>xw;3Jx+Z4WPF%fJO z27H*k_kmkIQ*;xusim|^^1H}RzPXBWK?c%F{pBWnn*e$ZfBcLo{RfQbKlLLZ6>oB7 zbOU)w|J&8(B(;+QTDP70J}iv!mq*}XrXp*U{X zgHfN#jk1jvXmTMA=m^Vk3}6l{Jo=K9_2+DD_I~2fKaW>A15W975zs!>&bk z2G(L061k5SOiwT!V7S=D4aC>Hs#-y7^D{REKD=vwmuv{y=;IgfYS`E!_B)T|C zF7VOvk+pXh%Wu(duI)@G zaO({fZ70lrId@9wx;T;;=>ke?sjHrr-aXLMf(gdSbUeVb68 zH(!GvEldx}x`h)0oljDITpB+h4k&hH`fr@|`SLc0Df)Rkjj7>g1m+0yX-6GvXTz8C z*z6I0v!ho3L~D{Q(sh*Y)aTmjB)~$j?IdY1R)HgmB+!VU`L*|$%z$kY{wa=#>t947 ze(+0zP~rKQ4uK-6p)>pKK5`%LKr20jYp*`znsclFW9rmq0DMtcXc}QVrS|W-bPjAT z36r{5CO7xV?knogvJqH{l*hUDs;(?*x&r?B1s7bYO!yv~VIViu*qPO1Z_;qN?K0Z8 z*rXruYyEjr)FId(>8##ki-0KHG~tpL}Di|Twk&GqQ7|(^_^@4zuNq#aF&6o z>tc1Nw^)AvjtXsv6z9&-Z{5M_b)F@Lm`Gg`b4@ZCR2<3T6xwekOw66ApV(r}j9Uo80_mSXCA_>(>w8Ya=oz5OgJV+ z`Ont9-EMMLperAgR2KKC#jNkhOn+$Q*J8yY^eO@6XwSIVel)UBY%B) z>=0pWSw8|H(g$Vb^SDb=d|*~ULB#vrfvazrD-d%-!q!e#Z5d}=J1X=MSHbdL~ zd#Eb%De2=v{>DqV{^!FA-@{kyfea!Gc-$tL zCqoL!qh_h*OsM@W8o<<`e?9AXns~+PyyiGd8pDrlk7J(Jv!P8;^Lh> zJ?a^CKKOLML>H&@eg@YF@?WzLty?DvDQI+upe6aNy_XGaAS5Kwq)iF=bD-n=5~Q9_ z1RFD_v~0!xevU?L6t_)p7~8~EuCq8SPXNEIfK$2OYP?_Y{;Sx9!aVqr_buz$Tbj2E zU&BHUe^{7C&5b%k#edLiK*;9SK&Aa93bF1qLR4zJkupCUbE^H7$XUsw2kqyHVQ`iz zj^qgIoiQY#$=bV=tVMB$#MNSk|FHB-Y~@z{MCW1j9j`NI!AVL% z1|5}^@$({~yl8&)^GgW5(tTcj9S1vcw~Uvu9d->D%Lsnc&l4F2xBoiUHpN8`+5>N& z69}4ale7s)IUT=ot=+8R*oYvZpEG!`GW`=Z?^mc~GLPuiE5;7eC^nl0Zy1*R z-M<8M5M~YpcbK%${GTlu^xJbVMuSSZee-8OwdHX2dYA=NKi9FhrS};qwPv-iWS6%`sE<*@~^UX(Ch0# z+?|*2j*`*~Zsl$Vn%~oblF}u`{nnM0(jmgO(vV#_?=@}5J;b-*i8bq))^9NGRx;={ zs3XxX+lTR=H_FY;C6UtKUvo-NYHcZ^f6@lC9%wtZlx_+~+|KiT|DCYyv=!8&R-y+w z8Cb|Ba!-b(s79VNUmP#)Qb8a`Ru0`dl9rOmd5~V3-#t_gG1XmT!L-Aa%*)$ilKJ4{ zTl5W=5H=&uz10h^Yg*J&w2Q$0WTslk$VVjtmGgp`y5#!b zGOLJQApxwa^K#R4V;SxYHPT(uS7HHJOdZ_OOpUuS?m_nh#L-mx&Iy&8n_~f&mXes8 z`7$MP9DhV2VnT)jwvbKEMVa<#kT*xsyr@^Y1`!kb_Km9_S&>`t{(H-Oq^+r66D%Qt zy0t5folzw_=TnuC=@?hB*}eRW%i zyd!mGGrgx>$nKt$ntAqcmOIaG%H}HxDgM5o)ybj>4~rJ;g23Do)mP+wFV5=V!qeB*8p-$GC@r?O!V`nfq=N znujBgP4Ve#NjQp0=`y4E&VcWTDzRxzV)b)G57ko1BVBAqP3_f~bSk z?0oo$h)P2Ee9bs=p11=74BC5*+_|D5g!pHDlm~`Qy3Y!>~q5_Xdyq1 zXrn;6LVAeFQV0ZsW6Gb?M9cuGhdY1P$WY$K&hyh{@r%Qi&y#3J>ML)nQ0eQ$8I#}G zE1O^IYq9U!RU*3(B|ltV?Nz6mRbOwJR-Wa#F}KxF-g9`{`U%4JcJJN1hrnTkZ8xD( zilmO|vD?fiOON@aZ2?@^>vHmI0 zZpG}JQaSyVU{4Fq0#Ja&c&u?!l(qtx=508qB9-!p1AkXv}SV`QJga= zT@d8!B262&fU-2Eznnms1-Z{r=O#lr3vqXFB%?nm8OjI_u7TyxO^T-4Gf!LjAV<#D z<>rr1Nm-5!L7H|6qQS&Cm5HJwl^c=w|9OP9AM5s?UYPniOH5@Bd!5)ioq?s)*caJX-ROe4qQbr!&06 zS*H6>j}3->*!tk(*B<_$VKT#5^xy#ezWC-RKj%PAspb%o7FdhTsFT`rp~`)Jg=7MN!SPGhk$X%QC$ zTCo2u2c09nh%NmFHqK1Gj3=pVRU@)?MK`|G7J5@oB%z5h78r^h zl!S*-tS51)969>UJ=j?KS2#RpDz7N5O1n^f(1aM})9A;1v|zEC`jk9o7f ztVS&e7Ws`eb%&X)3SO?ojXpu z#Pjx*+}RV0$ajM$imczgX8~sentHG^`zwTmwfV|DNT|#DCxSkcodg*Z$ug#+iMgH8 znm%}GGgZe74h6m#IcM{@oG-{^-s`rTpO1~G`WLlT-H^0D9*3t^_A|WH!?}wYWutsR zdU+p9T!SsIcfrjmW$^W^1}g#OiRLivVdZy2P1YV->EIsnT$f!0iH03$67isTuh^Gyww zVZZASXOBk1Q^@QlJ>-goRB!cbr!etx+EuBOaBd=O0NMKk95 zX5yB@;BunC@of#aq|tyM#`@j2;k=;ql0`ZU?$^Bt)nVUs6u8)b;(LZ$VyZ&xj? z0gYaVJ~6DI_iY4j-ry7KKP6^A9b(1%k>+CkhU;}&Bur^y;%EU}eo#tmZw-<%3o+;B zflX~$yifW}pfFpRYJxhP+teSOcI*?v|HD!GH$1VW z*`OUS+%HH9F9D7yLLD*`MDa&H6i(s}!CiJR4m<8AB1&qn76|hKMNHMjo8}~ml%{;@ zYw;w#&S52@3iv)WR+~?#se;YsRM6eQKwE5Us^WEud>^ml=uJMB7A(_9O*1d6^Of!7 zaj9eF`n2G*C6=vl?O1g_c-GFNb)T0R-NTc--2=xh$TwVrmvK+>0A!S z3+@vntVj1wE8QBDa!%MYt;#A2b zKn2>2+#yKz=4NWOI{ODC>>g3O?L7&T-arY;X6Sudz?+La{b8@jP5CC@wmNFLn_uQ1 zE9U1mJWFl5ZVJ3p*eE_UN?32&9f;uhle%xOrJ_cqFE zM7VtV5`$nhs-A55?cqZr;nW{iZzERH^>r5&e*SOJ-BDCpfu7N3Uz(wOJlpTFmsb{{ zjlwhHh_?x3h3a`7hyD$~)+8fM=HB?=FujYKrn8DM^cPnp@#n!>+NsRYX;a4aZ=$l@ zY%xeb{%yf&_EHl6IBw)jfsPs}vVKCA=PuK~su_5|I_Pa&?k|W?R|!cV6of}7fQqV- zk{=%36ub!6%>aR(H3O>uRMJG5L8PvmlURP?aR?Zy7hRK+%vB`O0Kmg~lWs@YoyL}I zjX-4j=T~cac*I>ln;_HXhw_o~kdmPqmh>(vlW!8HNzqBp^y|rWYJONM=I3jv9t6Cx z@s0)9`Lw5C>ABj)UA%IX;u#0@GuDV^?&{JoZfZQe&e>d%z7G?$pdJZ3;$^m@zXH40P@ibaO?4i z_#>SCZk!E;6B;*(J@qlai;&+JlasFvmc9l1u$#^vl!yUymM_7{O~T6uDMO@CJcLJ6 zJcWNpa4Tkzx-;k4+5+1(#D>xI?r`2PE*7T%aML(!(zflyqs#GQvGyKY|H0zCb9T65&VPr7B1nif6& ziAmljO_(2~DUr`Xjx@Bx(}~0PEJ~uU6nfu(<3X@{I$vMEDGsh?956AOB(`y!p-nn# znhDr2#tVKa_f`Bjj``@rLwcrcO9EzK+CEpE-HXH+(a?om{&cg1P-Lq1c!|B2|K&_= z>yOwNV*hJdfFrdH-uTT7TDy#za@q&#qSB9Q(^9-g=KgzL6atxH6FT!>N{P2o5#1*9 zT7y$J>Y;Go6gMiTRlGKkxvKY)@aeH`(q{*tc+ZCXZ406{9vYcNuf~v-84~hKn&9iE zYZ`%AbiJj0WC1*|e9 zF%^orb|X{mk@V?3Fwmz&L_(H(QlyknvHY=}uqH zkm)Wk_1=i%1JM7GkiNufQc(I{jA)BxB@yB+y-m%)+$z2LnqOPJ{cV;>-BJ+}G`pVo zqrjS``0Yn<;CU}8Z*VG8#aG`7>b5CvIMC$1b}>X5pUOWA1s&r_Blr8zB^%G~ip+kt zcniIqgFtjPB%4vV-o1rdFeR9jFN531`E;lya>?W9Vl<&P0wW8Vd0zPpPm(@9#8dBSV!Fu!3pejE5TZg3BSO_wb2QQ9J{efkJ5}@ zz*L}-(iR!Dbsh%CbYDaj5uraU%*UaJTWJ!*+4iOq&l0FZ_xGzn&PDm3gjg9y^n|VhwqN zO+ua7Lp_-VSM}0~;PvF^_h`d%k5r0GqWiOV?fdp~kBl$f!Jg8MD+)8MwxV@)+5t6*UZXeT&h z+%t7y+~_Zh!*V{@MkSL8j+%Qnd*rFVn3fJSBd1zeY-1p^LEfBBu(0o+`-NeIeGiS5 zgqCY}L~1v0F4|*cwDi=+vEC9>N`~2oOkr&5-F?X$UE`|EmT9{Wg|&&Q&Ibr+8VC#g zYWXK$QE)H$6w5q&3v+{>LoE-(l#0-(gCjWhDvRZc!Y%)hMJGv9_o)4_G1`O_m8dqW z=7MpZmdUnfy$y7_ETTG^3u#~W*4XUfUezS}b=})vm)(7PBp%C=zniO<(8(c-T@qdC zKEl=JWM$*0R;k5rmseqLB*pWOfUy)2+rBKuf?OAf<6Hf@rLC%de;XhfR(p~cQT`Xb zH|Qg{Qb@{{#zIlzI%=td@Vi<3nANP4R?N(!)xWg3$`qW2*sRV2`mlD+@QJZK{QFNk z%I{f6vI!brDLaLOr<&f_noiiAn^LOTzt~I56!LZCo1zMY3V4yjGMgrbM7dwQhChAv z`nF!{@CmC?at84ZmwBSU#9FU}snE4|OJN4ep=bKRlRB{IR@oAI-gnl9ZDRbfH2sAzPF*## zeEvt@$@fJqIvx2D8t=`pxu4%d;+O*IL0g6yVxINb#jq5Z!&ROrC1W+V?{m$%*1V~j zDVcwXsMyef<);&U7sQho`Q(UMU9{`jj^{N0ps{v6eZ;4k{ASwrKovq==O|M-P3uujlygVS6Wab#6- z&LGC675czrhE$)3`)D1y<~U0#B!7-`*t8b@hYZdoiLDOib0(2ZuSxc+vStZSTfDm* z;co679v->nKQg&%8tPm;g0$h-M^Ai8?|g-ifq2V7mhOAymfJ1R2kn=Kw7*}Rp4to( zW}CD&Du&I@9DgMEZM7S_dDN}zIgYH;w5T7^mH7`(^L;@%)4_-Q*}U0Pd~GuMIZQn1 zSf}@guoF~fD7_SP_jxnL3-M{6n*I~)=buyf3PB*V;qZ?F@#hW12ZZ86$z-3bTixrQ zpavBIM;uAa&TPf9F4iN(-%IdhdSRXmg5-y>Ct9}0U239**fa4%!9kH9ajNy$)6UDr zj#sYy^-$F<%a6I=K`2rMD7Ykjr4*rHAsS2ZP8sn&TgYx*ajZCsF&q1*hUWKT+>k$o zlvO^*m^m8g=%j}8e%S)I0-h!q&tEm8DDw?+nB1@~$;O^=3U7ez;mcmYRVCazI4w3h Uy~8aFZaCl%BB>}*A@(ice=D@B4FCWD literal 0 HcmV?d00001 From 35e221c9f5dfd673dd75c9f10c2ae5973b0678ed Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 3 Jan 2019 11:29:59 -0700 Subject: [PATCH 18/28] minor update to the image info in the readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26c6d8fec..9a6ba691f 100644 --- a/README.md +++ b/README.md @@ -239,5 +239,6 @@ cause by browser image resizing. ###### Notes - This should only be used on screenshots takes from high-resolution screens. +- The `src` should be relative to the `static` directory. - Image widths are limited to the width of the article content container and will scale accordingly, even with the `width` explicitly set. From abe73b6cf5998e47bf757af30be956614a549ed0 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 3 Jan 2019 12:39:07 -0700 Subject: [PATCH 19/28] fixed code block colors for notes and warnings, fixed code tabs inside of tabbed content --- assets/js/content-interactions.js | 12 +- assets/styles/layouts/_layout-article.scss | 103 +++++++++--------- .../styles/layouts/_syntax-highlighting.scss | 50 +++++++++ assets/styles/themes/_theme-dark.scss | 22 +++- assets/styles/themes/_theme-light.scss | 22 +++- content/v2.0/example.md | 33 +++++- layouts/partials/article/enterprise.html | 5 +- layouts/shortcodes/code-tab-content.html | 2 +- layouts/shortcodes/code-tabs-wrapper.html | 2 +- layouts/shortcodes/code-tabs.html | 2 +- 10 files changed, 183 insertions(+), 70 deletions(-) diff --git a/assets/js/content-interactions.js b/assets/js/content-interactions.js index c29abf538..6e57adbf8 100644 --- a/assets/js/content-interactions.js +++ b/assets/js/content-interactions.js @@ -7,7 +7,7 @@ $("h2,h3,h4,h5,h6").each(function() { ///////////////////////////////// Smooth Scroll ///////////////////////////////// -$('.article a[href^="#"]:not(.tabs p a)').on('click',function (e) { +$('.article a[href^="#"]:not(.tabs p a, .code-tabs p a)').on('click',function (e) { e.preventDefault(); var target = this.hash; @@ -30,10 +30,7 @@ $(".children-toggle").click(function(e) { //////////////////////////////// Tabbed Content //////////////////////////////// -$(function() { - const container = '.tabs-wrapper' - const tab = '.tabs p a'; - const content = '.tab-content'; +function tabbedContent(container, tab, content) { // Add the active class to the first tab in each tab group, // in case it wasn't already set in the markup. @@ -57,4 +54,7 @@ $(function() { } }); }); -}); +} + +tabbedContent('.code-tabs-wrapper', '.code-tabs p a', '.code-tab-content'); +tabbedContent('.tabs-wrapper', '.tabs p a', '.tab-content'); diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 1527f769b..8122e45b4 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -377,37 +377,39 @@ /////////////////////////////// Tabbed Content /////////////////////////////// - .tabs-wrapper{ - margin: 2rem 0 .5rem; + .tabs-wrapper, .code-tabs-wrapper{ + margin: 2.5rem 0 .5rem; } - .tabs p { - display: flex; - flex-wrap: wrap; - } - .tabs a { - flex-grow: 1; - margin: 2px; - font-size: 0.875rem; - color: $article-tab-text; - padding: .35rem .75rem; - display: inline-block; - text-align: center; - border-radius: $border-radius; - background-color: $article-tab-bg; - transition: background-color .2s, color .2s; - - &:hover { - color: $article-tab-active-text; - background: $article-tab-active-bg; + .tabs, .code-tabs { + p { + display: flex; + flex-wrap: wrap; } - &.is-active { - color: $article-tab-active-text; - background: $article-tab-active-bg; + a { + flex-grow: 1; + margin: 2px; + font-size: 0.875rem; + color: $article-tab-text; + padding: .35rem .75rem; + display: inline-block; + text-align: center; + border-radius: $border-radius; + background-color: $article-tab-bg; + transition: background-color .2s, color .2s; + + &:hover { + color: $article-tab-active-text; + background: $article-tab-active-bg; + } + &.is-active { + color: $article-tab-active-text; + background: $article-tab-active-bg; + } } } - .tab-content { - padding: 1.5rem 0; + .tab-content, .code-tabs-content { + margin: .75rem 0 3rem; width: 100%; & > * { @@ -416,34 +418,35 @@ } } - .tab-content:not(:first-of-type) { + .tab-content:not(:first-of-type), + .code-tab-content:not(:first-of-type) { display: none; } - .tabs-wrapper.code { - .tabs { - p { - margin: 0; - text-align: right; - display: block; - } - a { - margin: 0; - border-radius: $border-radius $border-radius 0 0; - display: inline-block; - background: $article-tab-code-bg; - color: $article-tab-code-text; - &:hover { - background: $article-tab-code-bg-hover; - color: $article-tab-code-text-hover; - } - &.is-active { - background-color: $article-code-bg; - color: $article-tab-code-active-text; - } - } + .code-tabs-wrapper { + .code-tabs { + p { + margin: 0; + text-align: right; + display: block; + } + a { + margin: 0; + border-radius: $border-radius $border-radius 0 0; + display: inline-block; + background: $article-tab-code-bg; + color: $article-tab-code-text; + &:hover { + background: $article-tab-code-bg-hover; + color: $article-tab-code-text-hover; + } + &.is-active { + background-color: $article-code-bg; + color: $article-tab-code-active-text; + } + } } - .tab-content { + .code-tab-content { padding: 0; pre { margin: 0 0 3rem; diff --git a/assets/styles/layouts/_syntax-highlighting.scss b/assets/styles/layouts/_syntax-highlighting.scss index c52d5332c..c8ecaf3a5 100644 --- a/assets/styles/layouts/_syntax-highlighting.scss +++ b/assets/styles/layouts/_syntax-highlighting.scss @@ -170,3 +170,53 @@ pre[class*="language-"] { .w /* Text.Whitespace */ { font-style: italic } } + +.note { + .highlight { + color: $article-note-code; + + .gh,.go,.na,.nt,.nv,.ow + { color: $article-note-code } + .c,.ch,.cm,.cpf,.c1, .cs,.w + { color: $article-note-code-accent1; } + .gi + { background-color: $article-note-code-accent1; } + .k,.kc,.kd,.kn,.kp,.kr,.nn + { color: $article-note-code-accent2; } + .bp,.cp,.dl,.gt,.gu,.kt,.nb,.nc,.no,.sa,.sb,.sc,.sd,.se,.sh,.sx,.sr,.s1,.s2 + { color: $article-note-code-accent3 } + .err,.fm,.gr,.gd,.nd,.ne,.nf,.nl,.si + { color: $article-note-code-accent4 } + .m,.ni,.mb,.mf,.mh,.mi,.mo,.vc,.vg,.vi,.vm,.il + { color: $article-note-code-accent5 } + .gp,.o + { color: $article-note-code-accent6 } + .ss + { color: $article-note-code-accent7 } + } +} + +.warn { + .highlight { + color: $article-warn-code; + + .gh,.go,.na,.nt,.nv,.ow + { color: $article-warn-code } + .c,.ch,.cm,.cpf,.c1, .cs,.w + { color: $article-warn-code-accent1; } + .gi + { background-color: $article-warn-code-accent1; } + .k,.kc,.kd,.kn,.kp,.kr,.nn + { color: $article-warn-code-accent2; } + .bp,.cp,.dl,.gt,.gu,.kt,.nb,.nc,.no,.sa,.sb,.sc,.sd,.se,.sh,.sx,.sr,.s1,.s2 + { color: $article-warn-code-accent3 } + .err,.fm,.gr,.gd,.nd,.ne,.nf,.nl,.si + { color: $article-warn-code-accent4 } + .m,.ni,.mb,.mf,.mh,.mi,.mo,.vc,.vg,.vi,.vm,.il + { color: $article-warn-code-accent5 } + .gp,.o + { color: $article-warn-code-accent6 } + .ss + { color: $article-warn-code-accent7 } + } +} diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index 4ffd578c8..f8973f3fd 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -64,20 +64,34 @@ $article-note-heading: $g20-white !default; $article-note-text: $gr-viridian !default; $article-note-link: $gr-rainforest !default; $article-note-link-hover: $g20-white !default; -$article-note-code: #75d2f1 !default; -$article-note-code-bg: #20272b !default; $article-note-table-header: $gr-viridian !default; $article-note-table-row-alt: #21272d !default; +$article-note-code: #75d2f1 !default; +$article-note-code-bg: #20272b !default; +$article-note-code-accent1: #567375 !default; +$article-note-code-accent2: $b-pool !default; +$article-note-code-accent3: $gr-viridian !default; +$article-note-code-accent4: $o-ruby !default; +$article-note-code-accent5: #ff6db0 !default; +$article-note-code-accent6: $b-pool !default; +$article-note-code-accent7: #e90 !default; $article-warn-base: $o-dreamsicle !default; $article-warn-heading: $g20-white !default; $article-warn-text: $o-dreamsicle !default; $article-warn-link: $o-tungsten !default; $article-warn-link-hover: $g20-white !default; -$article-warn-code: #ec6e6e !default; -$article-warn-code-bg: #292024 !default; $article-warn-table-header: $o-dreamsicle !default; $article-warn-table-row-alt: #2b252b !default; +$article-warn-code: #ec6e6e !default; +$article-warn-code-bg: #292024 !default; +$article-warn-code-accent1: #844c4c !default; +$article-warn-code-accent2: $b-pool !default; +$article-warn-code-accent3: $gr-viridian !default; +$article-warn-code-accent4: $o-ruby !default; +$article-warn-code-accent5: #ffb4fb !default; +$article-warn-code-accent6: $b-pool !default; +$article-warn-code-accent7: #e90 !default; $article-enterprise-base: $p-star !default; $article-enterprise-text: $p-potassium !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index a6106b9e0..c49ac4c62 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -63,20 +63,34 @@ $article-note-heading: $gr-emerald; $article-note-text: $gr-emerald; $article-note-link: rgba($gr-emerald, .75); $article-note-link-hover: $b-pool; -$article-note-code: #147572; -$article-note-code-bg: #d6f7ec; $article-note-table-header: $gr-viridian; $article-note-table-row-alt: #d6f5e9; +$article-note-code: #0A6f75; +$article-note-code-bg: #d6f7ec; +$article-note-code-accent1: #6abba0; +$article-note-code-accent2: #0084d6; +$article-note-code-accent3: #5d52d6; +$article-note-code-accent4: $o-ruby; +$article-note-code-accent5: #e24bbb; +$article-note-code-accent6: #0084d6; +$article-note-code-accent7: #e90; $article-warn-base: $o-dreamsicle; $article-warn-heading: $o-fire; $article-warn-text: $o-curacao; $article-warn-link: rgba($o-curacao, .75); $article-warn-link-hover: $b-sapphire; -$article-warn-code: #f52f75; -$article-warn-code-bg: #ffebeb; $article-warn-table-header: $o-dreamsicle; $article-warn-table-row-alt: #ffe6df; +$article-warn-code: #d0154e; +$article-warn-code-bg: #ffebeb; +$article-warn-code-accent1: #fd99b8; +$article-warn-code-accent2: #357ae8; +$article-warn-code-accent3: #6c59cc; +$article-warn-code-accent4: $o-ruby; +$article-warn-code-accent5: #6a0a6f; +$article-warn-code-accent6: #357ae8; +$article-warn-code-accent7: #e90; $article-enterprise-base: $p-comet; $article-enterprise-text: $p-star; diff --git a/content/v2.0/example.md b/content/v2.0/example.md index 839f6b0c6..09a5b904d 100644 --- a/content/v2.0/example.md +++ b/content/v2.0/example.md @@ -393,7 +393,38 @@ cpu = from(bucket:"telegraf/autogen") {{% /tabs %}} {{% tab-content %}} -This is tab 1.1 content. +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +## h2 This is a header2 +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. + +{{< code-tabs-wrapper >}} +{{% code-tabs %}} +[Flux](#) +[InfluxQL](#) +{{% /code-tabs %}} + +{{% code-tab-content %}} +```js +data = from(bucket: "telegraf/autogen") + |> range(start: -15m) + |> filter(fn: (r) => + r._measurement == "mem" AND + r._field == "used_percent" + ) +``` +{{% /code-tab-content %}} +{{% code-tab-content %}} +```sql +SELECT "used_percent" +FROM "telegraf"."autogen"."mem" +WHERE time > now() - 15m +``` +{{% /code-tab-content %}} +{{< /code-tabs-wrapper >}} + {{% /tab-content %}} {{% tab-content %}} diff --git a/layouts/partials/article/enterprise.html b/layouts/partials/article/enterprise.html index 8dbb5f2c6..ceea7dad7 100644 --- a/layouts/partials/article/enterprise.html +++ b/layouts/partials/article/enterprise.html @@ -1,8 +1,9 @@ +{{ $enterpriseLink := "#"}} {{ if ( $.Params.enterprise_all ) }}

    The features and functionality discussed on this page are unique to the Enterprise edition of InfluxDB. - Learn more about InfluxDB Enterprise. + Learn more about InfluxDB Enterprise.

    {{ else if ( $.Params.enterprise_some ) }} @@ -13,7 +14,7 @@

    This page includes features and functionality unique to the Enterprise edition of InfluxDB. - Learn more about InfluxDB Enterprise. + Learn more about InfluxDB Enterprise.

    diff --git a/layouts/shortcodes/code-tab-content.html b/layouts/shortcodes/code-tab-content.html index d88086a17..151b19b9c 100644 --- a/layouts/shortcodes/code-tab-content.html +++ b/layouts/shortcodes/code-tab-content.html @@ -1,3 +1,3 @@ -
    +
    {{ .Inner }}
    diff --git a/layouts/shortcodes/code-tabs-wrapper.html b/layouts/shortcodes/code-tabs-wrapper.html index e42d0856e..71b5f3120 100644 --- a/layouts/shortcodes/code-tabs-wrapper.html +++ b/layouts/shortcodes/code-tabs-wrapper.html @@ -1,3 +1,3 @@ -
    +
    {{ .Inner }}
    diff --git a/layouts/shortcodes/code-tabs.html b/layouts/shortcodes/code-tabs.html index 94db29833..4d61d40f7 100644 --- a/layouts/shortcodes/code-tabs.html +++ b/layouts/shortcodes/code-tabs.html @@ -1,3 +1,3 @@ -
    +
    {{ .Inner }}
    From 29da9dc3572e40d921b5726be604f40205c8c39e Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 3 Jan 2019 14:07:02 -0700 Subject: [PATCH 20/28] fixed theme switcher, updated config.toml --- assets/styles/layouts/_layout-article.scss | 8 +++++++- config.toml | 8 +++++--- layouts/partials/header/javascript.html | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 8122e45b4..4aa0a0c79 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -377,9 +377,14 @@ /////////////////////////////// Tabbed Content /////////////////////////////// - .tabs-wrapper, .code-tabs-wrapper{ + .tabs-wrapper { margin: 2.5rem 0 .5rem; } + + .code-tabs-wrapper { + margin: 1.5rem 0 .5rem; + } + .tabs, .code-tabs { p { display: flex; @@ -431,6 +436,7 @@ display: block; } a { + padding: .1rem .75rem; margin: 0; border-radius: $border-radius $border-radius 0 0; display: inline-block; diff --git a/config.toml b/config.toml index 8cff8a408..099ac8cd6 100644 --- a/config.toml +++ b/config.toml @@ -9,10 +9,12 @@ enableGitInfo = true pygmentsCodefences = true pygmentsUseClasses = true +# Markdown rendering options +[blackfriday] +hrefTargetBlank = true + +# Menu items without actual pages [menu] [[menu.versions]] name = "v1.x" url = "https://docs.influxdata.com" - -[blackfriday] - hrefTargetBlank = true diff --git a/layouts/partials/header/javascript.html b/layouts/partials/header/javascript.html index 6b54a4cf9..22905c50a 100644 --- a/layouts/partials/header/javascript.html +++ b/layouts/partials/header/javascript.html @@ -4,3 +4,4 @@ {{ $headerjs := slice $jquery $cookies $themes | resources.Concat "js/header.bundle.js" }} + From c7330b6cacc069db8a5b49a09974113e67ac57a0 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 3 Jan 2019 16:59:31 -0700 Subject: [PATCH 21/28] added responsive styles and UI interactions --- assets/js/content-interactions.js | 8 ++ assets/styles/layouts/_layout-article.scss | 41 +++++++++- assets/styles/layouts/_layout-global.scss | 12 ++- assets/styles/layouts/_layout-sidebar.scss | 89 ++++++++++++++++++++- assets/styles/layouts/_layout-topnav.scss | 18 +++-- assets/styles/styles-default.scss | 1 + assets/styles/themes/_theme-dark.scss | 6 +- assets/styles/themes/_theme-light.scss | 6 +- assets/styles/tools/_color-palette.scss | 2 +- assets/styles/tools/media-query-mixins.scss | 17 ++++ layouts/partials/footer/javascript.html | 2 +- layouts/partials/header/javascript.html | 2 +- layouts/partials/header/stylesheets.html | 4 +- layouts/partials/sidebar.html | 5 ++ 14 files changed, 191 insertions(+), 22 deletions(-) create mode 100644 assets/styles/tools/media-query-mixins.scss diff --git a/assets/js/content-interactions.js b/assets/js/content-interactions.js index 6e57adbf8..1125cb52d 100644 --- a/assets/js/content-interactions.js +++ b/assets/js/content-interactions.js @@ -28,6 +28,14 @@ $(".children-toggle").click(function(e) { $(this).siblings('.children').toggleClass('open'); }) +//////////////////////////// Mobile Contents Toggle //////////////////////////// + +$('#contents-toggle-btn').click(function(e) { + e.preventDefault(); + $(this).toggleClass('open'); + $('#nav-tree').toggleClass('open'); +}) + //////////////////////////////// Tabbed Content //////////////////////////////// function tabbedContent(container, tab, content) { diff --git a/assets/styles/layouts/_layout-article.scss b/assets/styles/layouts/_layout-article.scss index 4aa0a0c79..226c7aea8 100644 --- a/assets/styles/layouts/_layout-article.scss +++ b/assets/styles/layouts/_layout-article.scss @@ -163,11 +163,12 @@ //////////////////////////////////// Tables //////////////////////////////////// table { + display: inline-block; margin: 1rem 0 3rem; border-spacing: 0; color: $article-text; max-width: 100%; - overflow: scroll; + overflow-x: auto; box-shadow: 1px 3px 10px $article-shadow; border-radius: ($border-radius * 1.5); @@ -460,5 +461,41 @@ } } } - +} + +//////////////////////////////////////////////////////////////////////////////// +///////////////////////////////// MEDIA QUERIES //////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +@include media(small) { + .article { + padding: 1.5rem 1.5rem 3rem; + + h1 { margin: .35rem 0 2rem; font-size: 2.4rem; } + h2 { font-size: 1.9rem; } + h3 { font-size: 1.55rem; } + h4 { font-size: 1.3rem; } + + pre { + padding: 1.2em; + } + + blockquote, + .note, + .warn, + #enterprise-msg { + padding: 1.35rem 1.25rem .1rem 1.25rem; + margin: .5rem 0 1rem; + } + + .enterprise { + padding: 0 0 .01rem .85rem; + margin-left: -.85rem; + + .enterprise-flag { + left: -.25rem; + } + } + + } } diff --git a/assets/styles/layouts/_layout-global.scss b/assets/styles/layouts/_layout-global.scss index f82229f14..c0d9070f1 100644 --- a/assets/styles/layouts/_layout-global.scss +++ b/assets/styles/layouts/_layout-global.scss @@ -11,7 +11,7 @@ font-style: italic; } -$klavika: 'Klavika-Light', 'Titillium Web', 'Roboto', sans-serif; +$klavika: 'Klavika-Light', 'Titillium Web', 'Roboto', sans-serif; html { height: 100%; @@ -35,3 +35,13 @@ a { display: flex; flex-grow: 1; } + +//////////////////////////////////////////////////////////////////////////////// +///////////////////////////////// MEDIA QUERIES //////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +@include media(medium) { + .page-wrapper { + flex-direction: column; + } +} diff --git a/assets/styles/layouts/_layout-sidebar.scss b/assets/styles/layouts/_layout-sidebar.scss index d0422135e..b284b46ad 100644 --- a/assets/styles/layouts/_layout-sidebar.scss +++ b/assets/styles/layouts/_layout-sidebar.scss @@ -1,7 +1,7 @@ .sidebar { display: block; flex-grow: 1; - padding: 0 1em 1em 1em; + padding: 0 1em; max-width: 25%; &--search { @@ -20,7 +20,7 @@ input { background: $article-bg; border-radius: $border-radius; - border: 1px solid $search-border; + border: 1px solid $sidebar-search-border; padding: .5em 2.15rem .5rem .5rem; width: 100%; color: $article-text; @@ -28,8 +28,8 @@ transition-duration: .2s; &:focus { outline: none; - border: 1px solid $search-highlight; - box-shadow: 0px 0px 7px rgba($search-highlight, .65); + border: 1px solid $sidebar-search-highlight; + box-shadow: 0px 0px 7px rgba($sidebar-search-highlight, .65); border-radius: $border-radius; } &::placeholder { @@ -40,9 +40,60 @@ } } + .contents-toggle { + display: flex; + justify-content: space-between; + margin: .25rem 0; + color: $sidebar-contents; + font-weight: bold; + font-style: italic; + + p { margin: .65rem 0 .65rem .25rem; } + + #contents-toggle-btn { + margin-top: .2rem; + height: 26px; + width: 26px; + display: inline-block; + position: relative; + + &:before, &:after { + content: ""; + display: block; + position: absolute; + top: 13px; + right: 5px; + width: 16px; + height: 2px; + border-radius: 1px; + background: $sidebar-contents; + transition: all .3s; + } + + &:before { + transform: rotate(0deg); + } + &:after { + transform: rotate(90deg) + } + + &:hover { + &:before, &:after { + background: $sidebar-contents-hover; + } + } + + &.open { + &:before { transform: rotate(180deg); } + &:after { transform: rotate(180deg); } + } + } + } + #nav-tree { list-style: none; padding-left: 1.5rem; + margin-bottom: 1rem; ul { list-style: none; @@ -140,3 +191,33 @@ } } } + +//////////////////////////////////////////////////////////////////////////////// +///////////////////////////////// MEDIA QUERIES //////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +@include media(medium) { + .sidebar { + max-width: 100%; + + #nav-tree { + max-height: 0; + overflow: hidden; + margin: 0; + transition: max-height .2s ease-out; + + &.open { + max-height: 2000px; + transition: max-height .2s ease-out; + overflow: auto; + margin-bottom: 2rem; + } + } + } +} + +@include media(large_min) { + .sidebar .contents-toggle { + display: none; + } +} diff --git a/assets/styles/layouts/_layout-topnav.scss b/assets/styles/layouts/_layout-topnav.scss index ced6cb29a..e6a771d35 100644 --- a/assets/styles/layouts/_layout-topnav.scss +++ b/assets/styles/layouts/_layout-topnav.scss @@ -104,10 +104,13 @@ font-size: 1.8rem; color: rgba($topnav-link, .5); background: none; - height: 0; + height: 30px; + width: 30px; margin-top: 2px; border: none; transition: color .2s; + appearance: none; + overflow: visible; &:focus { outline: none; } @@ -118,9 +121,12 @@ &#theme-switch-dark { display: $theme-switch-dark; } &#theme-switch-light { display: $theme-switch-light; } } - - - - - +} + +//////////////////////////////////////////////////////////////////////////////// +///////////////////////////////// MEDIA QUERIES //////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +@include media(small) { + .icon-influx-logotype { display: none; } } diff --git a/assets/styles/styles-default.scss b/assets/styles/styles-default.scss index e578cbbdf..cc924c05c 100644 --- a/assets/styles/styles-default.scss +++ b/assets/styles/styles-default.scss @@ -2,6 +2,7 @@ // Import Tools @import "tools/icomoon"; +@import "tools/media-query-mixins.scss"; // Import default dark theme @import "themes/theme-dark.scss"; diff --git a/assets/styles/themes/_theme-dark.scss b/assets/styles/themes/_theme-dark.scss index f8973f3fd..282bcfe2a 100644 --- a/assets/styles/themes/_theme-dark.scss +++ b/assets/styles/themes/_theme-dark.scss @@ -26,8 +26,10 @@ $theme-switch-light: inline-block !default; $theme-switch-dark: none !default; // Sidebar -$search-border: $g5-pepper !default; -$search-highlight: $b-pool !default; +$sidebar-search-border: $g5-pepper !default; +$sidebar-search-highlight: $b-pool !default; +$sidebar-contents: $g9-mountain !default; +$sidebar-contents-hover: $g20-white !default; // Article Content $article-bg: $g3-castle !default; diff --git a/assets/styles/themes/_theme-light.scss b/assets/styles/themes/_theme-light.scss index c49ac4c62..45e2382fc 100644 --- a/assets/styles/themes/_theme-light.scss +++ b/assets/styles/themes/_theme-light.scss @@ -25,8 +25,10 @@ $theme-switch-light: none; $theme-switch-dark: inline-block; // Sidebar -$search-border: $g15-platinum; -$search-highlight: $b-pool; +$sidebar-search-border: $g15-platinum; +$sidebar-search-highlight: $b-pool; +$sidebar-contents: $g11-sidewalk !default; +$sidebar-contents-hover: $b-pool !default; // Article Content $article-bg: $g20-white; diff --git a/assets/styles/tools/_color-palette.scss b/assets/styles/tools/_color-palette.scss index ae3aa0e57..bd494120d 100644 --- a/assets/styles/tools/_color-palette.scss +++ b/assets/styles/tools/_color-palette.scss @@ -57,7 +57,7 @@ $p-comet: #9394FF; $p-potassium: #B1B6FF; $p-moonstone: #C9D0FF; $p-quartz: #D6D5ED; -$p-violettecreme: #F2F4FF; +$p-violettecreme: #EDF0FF; // Greens (Dark to Light) $gr-gypsy: #152B2D; diff --git a/assets/styles/tools/media-query-mixins.scss b/assets/styles/tools/media-query-mixins.scss new file mode 100644 index 000000000..7edd4a271 --- /dev/null +++ b/assets/styles/tools/media-query-mixins.scss @@ -0,0 +1,17 @@ +@mixin media($size) { + @if $size == small { + @media (max-width: 600px) { @content ; } + } + @else if $size == medium { + @media (max-width: 980px) { @content ; } + } + @else if $size == large_min { + @media (min-width: 981px) { @content ; } + } + @else if $size == large { + @media (max-width: 1280px) { @content ; } + } + @else if $size == xlarge { + @media (min-width: 1690px) { @content ; } + } +} diff --git a/layouts/partials/footer/javascript.html b/layouts/partials/footer/javascript.html index bc153aef4..3d5407e70 100644 --- a/layouts/partials/footer/javascript.html +++ b/layouts/partials/footer/javascript.html @@ -2,4 +2,4 @@ {{ $contentInteractions := resources.Get "js/content-interactions.js" }} {{ $footerjs := slice $versionSelector $contentInteractions | resources.Concat "js/footer.bundle.js" }} - + diff --git a/layouts/partials/header/javascript.html b/layouts/partials/header/javascript.html index 22905c50a..74199ed59 100644 --- a/layouts/partials/header/javascript.html +++ b/layouts/partials/header/javascript.html @@ -3,5 +3,5 @@ {{ $themes := resources.Get "js/docs-themes.js" }} {{ $headerjs := slice $jquery $cookies $themes | resources.Concat "js/header.bundle.js" }} - + diff --git a/layouts/partials/header/stylesheets.html b/layouts/partials/header/stylesheets.html index 52db3f8a7..9fb31a3bb 100644 --- a/layouts/partials/header/stylesheets.html +++ b/layouts/partials/header/stylesheets.html @@ -3,7 +3,7 @@ {{ $PostCSSOptions := (dict "use" "autoprefixer" "noMap" false) }} {{ $stylesDark := resources.Get "styles/styles-default.scss" | toCSS $cssOptionsDark | postCSS $PostCSSOptions | fingerprint }} - + {{ $stylesLight := resources.Get "styles/styles-light.scss" | toCSS $cssOptionsLight | postCSS $PostCSSOptions | fingerprint }} - + diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html index 337d94d44..7131c5de8 100644 --- a/layouts/partials/sidebar.html +++ b/layouts/partials/sidebar.html @@ -14,6 +14,11 @@ placeholder="Search {{ $currentVersion }}">
    +
    +

    Contents

    + +
    +