diff --git a/.travis.yml b/.travis.yml index cc4435910..e09f8b802 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,9 @@ before_deploy: make release-packages; fi; curl -sfL https://raw.githubusercontent.com/containous/structor/master/godownloader.sh | bash -s -- -b "${GOPATH}/bin" ${STRUCTOR_VERSION} + curl -sSfL https://raw.githubusercontent.com/traefik/mixtus/master/godownloader.sh | sh -s -- -b "${GOPATH}/bin" ${MIXTUS_VERSION} structor -o containous -r traefik --dockerfile-url="https://raw.githubusercontent.com/containous/traefik/v1.7/docs.Dockerfile" --menu.js-url="https://raw.githubusercontent.com/containous/structor/master/traefik-menu.js.gotmpl" --rqts-url="https://raw.githubusercontent.com/containous/structor/master/requirements-override.txt" --force-edit-url --exp-branch=master --debug; + mixtus --dst-doc-path="./traefik" --dst-owner=traefik --dst-repo-name=doc --git-user-email="30906710+traefiker@users.noreply.github.com" --git-user-name=traefiker --src-doc-path="./site" --src-owner=containous --src-repo-name=traefik; fi deploy: diff --git a/docs/content/assets/img/traefik.logo.horizontal.png b/docs/content/assets/img/traefik.logo.horizontal.png new file mode 100644 index 000000000..0e440c37a Binary files /dev/null and b/docs/content/assets/img/traefik.logo.horizontal.png differ diff --git a/docs/content/assets/styles/content.css b/docs/content/assets/styles/content.css new file mode 100644 index 000000000..ba0d24e0d --- /dev/null +++ b/docs/content/assets/styles/content.css @@ -0,0 +1,70 @@ +.md-container { + padding-top: 0; +} + +.md-content h1 { + color: var(--dark) !important; + font-weight: bold !important; +} + +.md-content a { + color: var(--blue) !important; +} + +.md-content a:hover { + font-weight: bold !important; +} + +.md-typeset p code, +.md-typeset .codehilite, +.md-typeset .highlight { + background-color: var(--light-blue) !important; +} + +.md-typeset table:not([class]) th { + background: var(--dark) !important; + color: white !important; +} + +/* Front page image size */ +img[src$='#small'] { + width: 150px; +} +img[src$='#medium'] { + width: 300px; +} + +/* Center table and objects */ +.center, +img, +.md-typeset__table { + display: block !important; + margin: 0 auto; +} + +.md-typeset table:not([class]) tr td:first-child { + text-align: left; +} +.md-typeset table:not([class]) th:not([align]), +.md-typeset table:not([class]) td:not([align]) { + text-align: center; +} +article p:not([class]), +article ul:not([class]), +article ol:not([class]) { + padding-left: 0.8em !important; +} + +/* Fix for Chrome */ +.md-typeset__table td code { + word-break: unset; +} + +.md-typeset__table tr :nth-child(1) { + word-wrap: break-word; + max-width: 30em; +} + +p { + text-align: justify; +} \ No newline at end of file diff --git a/docs/content/assets/styles/extra.css b/docs/content/assets/styles/extra.css deleted file mode 100644 index f865034b0..000000000 --- a/docs/content/assets/styles/extra.css +++ /dev/null @@ -1,63 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Noto+Sans|Noto+Serif'); - -.md-logo img { - background-color: white; - border-radius: 50%; - width: 30px; - height: 30px; -} - -/* Fix for Chrome */ -.md-typeset__table td code { - word-break: unset; -} - -.md-typeset__table tr :nth-child(1) { - word-wrap: break-word; - max-width: 30em; -} - -body { - font-family: 'Noto Sans', sans-serif; -} - -h1 { - font-weight: bold !important; - color: rgba(0,0,0,.9) !important; -} - -h2 { - font-weight: bold !important; -} - -h3 { - font-weight: bold !important; -} - -.md-typeset h5 { - text-transform: none; -} - -figcaption { - text-align: center; - font-size: 0.8em; - font-style: italic; - color: #8D909F; -} - -p.subtitle { - color: rgba(0,0,0,.54); - padding-top: 0; - margin-top: -2em; - font-weight: bold; - font-size: 1.25em; -} - -.markdown-body .task-list-item { - list-style-type: none !important; -} - -.markdown-body .task-list-item input[type="checkbox"] { - margin: 0 4px 0.25em -20px; - vertical-align: middle; -} \ No newline at end of file diff --git a/docs/content/assets/styles/footer.css b/docs/content/assets/styles/footer.css new file mode 100644 index 000000000..d71e88262 --- /dev/null +++ b/docs/content/assets/styles/footer.css @@ -0,0 +1,10 @@ +.md-footer-meta { + background-color: var(--dark); +} + +.md-footer-privacy-policy { + margin: 0 .6rem; + padding: .4rem 0; + color: hsla(0,0%,100%,.3); + font-size: .64rem; +} \ No newline at end of file diff --git a/docs/content/assets/styles/header.css b/docs/content/assets/styles/header.css new file mode 100644 index 000000000..5c539a5ca --- /dev/null +++ b/docs/content/assets/styles/header.css @@ -0,0 +1,462 @@ +@import url('https://fonts.googleapis.com/css?family=Rubik:300i,400,400i,500,500i,700&display=swap'); + +.wrapper-1200 { + width: 100%; + max-width: 61rem; + margin: 0 auto; + padding: 0 .6rem; +} + +@media (max-width: 700px) { + .wrapper-1200 { + padding: 0 20px; + } +} + +.btn-type-1 { + outline: none; + border: none; + background-color: #1e54d5; + line-height: 1em; + border-radius: 8px; + padding: 12px 15px; + text-transform: uppercase; + letter-spacing: 0.05em; + font-size: 1.25rem; + background-image: linear-gradient(to top, rgba(0, 0, 0, 0.28) 1%, #1e54d5 99%); + font-weight: 500; + text-align: center; + color: white; + transition: all 0.2s; +} + +.button--secondary { + outline: none; + border: 2px solid #1e54d5 !important; + background: transparent; + line-height: 1em; + border-radius: 8px; + padding: 9px 13px; + letter-spacing: 0; + font-size: 1.3rem; + font-weight: 500; + text-align: center; + color: #1e54d5; + transition: all 0.2s; + display: inline-block; +} +.button--secondary:hover { + color: white !important; + background: #1e54d5; +} +.button--secondary:focus { + color: white !important; + background: #1e54d5; +} + +.site-header-and-placeholder-wrapper { + position: relative; + height: 64px; +} + +.site-header { + position: fixed; + width: 100%; + top: 0; + left: 0; + transition: height 0.1s; + z-index: 100; + background: white; + box-shadow: 0 0 7px 0 #00000021; + border-bottom: 1px solid #e2e2e2; + height: 64px; + display: flex; + align-items: center; + font-size: 10px; + font-family: 'Rubik', -apple-system, 'BlinkMacSystemFont', 'Segoe UI', + 'Helvetica Neue', sans-serif; + color: #06102a; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.site-header.scrolled { + box-shadow: 0 0 5px 0 #00000028; + position: fixed; + top: 0; + height: 52px; +} +.site-header.scrolled .site-header__title a { + font-size: 2.2em; +} + +.header-placeholder { + background: none; + width: 100%; + height: 64px; + position: absolute; +} +.header-placeholder.active { + display: block; +} + +.site-header .wrapper-1200 { + display: flex; + justify-content: space-between; + align-items: center; +} +.site-header .wrapper-1200 .left { + display: flex; + align-items: center; + justify-content: flex-start; +} + +.site-header__logo { + max-width: 145px; +} + +.site-header__title a { + color: #06102a; + font-size: 2.2em; + font-weight: 500; + transition: all 0.2s; + text-transform: uppercase; + letter-spacing: 0.02em; +} + +/* Navigation */ +.site-header__nav .menu-item-wrapper { + display: inline-block; + padding-left: 30px; +} +.site-header__nav .menu-item { + color: #06102a; + transition: all 0.05s; + font-size: 1.45em; + line-height: 1em; + font-weight: 500; +} +.site-header__nav .menu-item:hover { + color: #8a959e; +} +.site-header__nav .menu-item--with-icon { + display: flex; + align-items: center; + justify-content: flex-start; +} +.site-header__nav .menu-item--with-icon .title { + margin-right: 3px; +} +.site-header__nav .menu-item--with-icon .icon { + width: 20px; + height: 20px; + transition: all 0.1s; +} +.site-header__nav .menu-item--with-icon .icon svg { + stroke-width: 2.5 !important; + width: 100%; + height: 100%; +} +.site-header__nav .menu-item-wrapper--dropdown { + position: relative; +} +.site-header__nav .menu-item-wrapper--dropdown:hover .nav-dropdown-menu { + display: block; +} +.site-header__nav .nav-dropdown-menu { + display: none; +} + +.nav-dropdown-menu { + position: absolute; + z-index: 500; + background: transparent; +} + +.nav-dropdown-menu-wrapper { + border-radius: 8px; + box-shadow: 0 12px 40px 0 rgba(1, 10, 32, 0.24); + background: white; + margin: 8px 0; + overflow: hidden; +} + +/* Products, Solutions dropdown menu */ +.nav-dropdown-menu--products, +.nav-dropdown-menu--solutions { + width: 500px; +} +.nav-dropdown-menu--products .nav-dropdown-menu-wrapper, +.nav-dropdown-menu--solutions .nav-dropdown-menu-wrapper { + padding: 20px; +} +.nav-dropdown-menu--products .dm-header, +.nav-dropdown-menu--solutions .dm-header { + font-size: 1.1em; + font-weight: 500; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: 3.67px; + color: #505769; + margin-bottom: 20px; + text-transform: uppercase; +} +.nav-dropdown-menu--products .dm-item, +.nav-dropdown-menu--solutions .dm-item { + border: none; + margin: 0 0 20px; + color: #06102a; + transition: all 0.1s; + position: relative; + width: 100%; +} +.nav-dropdown-menu--products .dm-item:last-child, +.nav-dropdown-menu--solutions .dm-item:last-child { + margin-bottom: 0; +} +.nav-dropdown-menu--products .dm-item .dmi-image, +.nav-dropdown-menu--solutions .dm-item .dmi-image { + width: 118px; + height: 92px; + position: absolute; + background: #f4f4f4; + display: flex; + align-items: center; + justify-content: center; + padding: 20px; + border-radius: 4px; + z-index: 0; +} +.nav-dropdown-menu--products .dm-item .dmi-image img, +.nav-dropdown-menu--solutions .dm-item .dmi-image img { + width: 100%; +} +.nav-dropdown-menu--products .dm-item .dmi-details, +.nav-dropdown-menu--solutions .dm-item .dmi-details { + padding: 8px 0 10px 135px; + width: 100%; + background: transparent; + display: block; + color: #06102a; + position: relative; + z-index: 1; +} +.nav-dropdown-menu--products .dm-item .dmi-details:hover, +.nav-dropdown-menu--solutions .dm-item .dmi-details:hover { + color: #1e54d5; +} +.nav-dropdown-menu--products .dm-item .dmi-title, +.nav-dropdown-menu--solutions .dm-item .dmi-title { + font-size: 1.6em; + font-weight: 500; + margin: 0 0 2px; +} +.nav-dropdown-menu--products .dm-item .dmi-description, +.nav-dropdown-menu--solutions .dm-item .dmi-description { + font-size: 1.4em; + opacity: 0.7; + line-height: 1.6em; +} +.nav-dropdown-menu--products .dm-item--traefikee .dmi-image img, +.nav-dropdown-menu--solutions .dm-item--traefikee .dmi-image img { + transform: scale(1.1); +} + +.nav-dropdown-menu--solutions .dm-item .dmi-image { + width: 65px; + padding: 10px; + background: white; + height: auto; +} +.nav-dropdown-menu--solutions .dm-item .dmi-details { + padding: 5px 0 0 80px; +} +.nav-dropdown-menu--solutions .dm-item:last-child { + margin-bottom: 10px; +} + +/* Dropdown menu: Learn */ +.nav-dropdown-menu--learn { + width: 250px; +} +.nav-dropdown-menu--company { + width: 500px; +} +.nav-dropdown-menu--company .nav-dropdown-menu-wrapper { + display: grid; + grid-template-columns: 50% 50%; +} +.nav-dropdown-menu--learn .dm-left, +.nav-dropdown-menu--company .dm-left { + padding: 25px; +} +.nav-dropdown-menu--learn .dm-header, +.nav-dropdown-menu--company .dm-header { + font-size: 1.1em; + font-weight: 500; + font-stretch: normal; + font-style: normal; + line-height: normal; + letter-spacing: 3.67px; + color: #505769; + margin-bottom: 20px; + text-transform: uppercase; +} +.nav-dropdown-menu--learn .dm-item, +.nav-dropdown-menu--company .dm-item { + display: block; + font-size: 1.6em; + font-weight: 500; + color: #06102a; + margin-bottom: 15px; +} +.nav-dropdown-menu--learn .dm-item:last-child, +.nav-dropdown-menu--company .dm-item:last-child { + margin-bottom: 0; +} +.nav-dropdown-menu--learn .dm-item:hover, +.nav-dropdown-menu--company .dm-item:hover { + color: #1e54d5; +} + +.dm-preview { + background: #edeff4; + overflow: hidden; + height: 100%; + display: flex; + flex-direction: column; +} + +.dm-preview__feature-image { + overflow: hidden; + display: block; +} + +.dm-preview__feature-image img { + width: 100%; + height: 145px; + background: #ffffff no-repeat 50%; + object-fit: cover; + vertical-align: middle; +} + +.dm-preview__content { + padding: 15px; + display: flex; + justify-content: flex-start; + align-items: flex-start; + flex-direction: column; + flex: 1; + position: relative; +} + +.dm-preview__tag { + display: block; + font-size: 1.2em; + color: #db7d11; + letter-spacing: 2.5px; + font-weight: 500; + margin: 0 0; + text-transform: uppercase; +} + +.dm-preview__title { + font-size: 1.6em; + font-weight: 500; + line-height: 1.6em; + margin: 0; + color: #06102a; + display: block; + flex: 1; + position: relative; + z-index: 1; + padding-bottom: 20px; +} + +.dm-preview .arrow-link { + justify-content: flex-start; + font-size: 1.4em; + position: absolute; + bottom: 12px; + z-index: 0; +} + +/* Dropdown menu: Company */ +.nav-dropdown-menu--company { + width: 450px; +} + +.nav-dropdown-menu--company .dm-right { + background: #06102a; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + color: white; + padding: 20px; +} +.nav-dropdown-menu--company .dm-right p { + font-size: 1.6em; + font-weight: 500; + margin: 0 0 15px; + text-align: center; +} +.nav-dropdown-menu--company .dm-right a { + text-transform: uppercase; + line-height: 1.5em; + padding: 9px 12px; + font-size: 1.2em; +} + +/* Demo */ +.site-header__demo-button .button--secondary { + font-size: 1.4em; + padding: 8px 12px; + border-radius: 6px; +} + +/* Drawer */ +.site-header .drawer { + display: none; +} + +@media (max-width: 1060px) { + .site-header__nav .menu-item-wrapper { + padding-left: 20px; + } +} +@media (max-width: 980px) { + .site-header__nav { + display: none; + } + + .site-header .drawer { + display: block; + } + + .site-header .right .site-header__demo-button { + display: none; + } + + html [data-md-color-primary=indigo] .md-nav--primary .md-nav__title--site { + background-color: #06102a; + } + + html .md-nav--primary .md-nav__title { + padding: 64px .8rem .2rem; + } + + .md-search__inner { + top: 64px; + right: 0; + } +} + +.md-header .md-search { + margin-left: 12.1rem; +} + +.site-header__main { + display: flex; + align-items: center; +} diff --git a/docs/content/assets/styles/menu.css b/docs/content/assets/styles/menu.css new file mode 100644 index 000000000..da46bae00 --- /dev/null +++ b/docs/content/assets/styles/menu.css @@ -0,0 +1,101 @@ +.md-nav__link { + margin-left: -0.4rem; + padding: 0 0.4rem; + line-height: 32px; + color: var(--dark) !important; +} + +.md-nav__link::after { + font-size: 16px; + vertical-align: -.25em; +} + +.md-nav__toggle:checked + .md-nav__link, +.md-nav__link--active, +.md-nav__link:hover { + border-radius: 8px; + background-color: var(--light-blue) !important; + color: var(--dark) !important; + transition: background-color 0.3s ease; +} + +.md-nav__link--active { + color: var(--blue) !important; + font-weight: bold; +} + +.md-sidebar--primary { + background-color: white; +} + +.md-sidebar--secondary .md-nav__title { + font-size: 12px; + text-transform: uppercase; + margin-bottom: 0.4rem; + padding: 0; +} + +.md-sidebar--secondary .md-sidebar__scrollwrap { + border-radius: 8px; + background-color: var(--light-blue) !important; +} + +.md-sidebar--secondary .md-nav__title { + padding: 0.8rem 0.4rem 0.8rem; +} + +.md-sidebar--secondary .md-nav__list { + padding: 0 0.4rem 0.8rem 1.2rem; +} + +.md-sidebar--secondary .md-sidebar__scrollwrap .md-nav__link { + font-weight: 300; +} + +.md-sidebar--secondary + .md-sidebar__scrollwrap + .md-nav__link[data-md-state='blur'], +.md-sidebar--secondary .md-sidebar__scrollwrap .md-nav__link:hover { + color: var(--blue) !important; + font-weight: bold; +} + +.md-sidebar--secondary .md-nav__item { + padding: 0 0 0 0.4rem; +} + +.md-sidebar--secondary .md-nav__link { + margin-top: 0.225em; + padding: 0.1rem 0.2rem; +} + +.md-sidebar--secondary li { + list-style-type: disc; +} + +.md-sidebar--secondary .repo_url { + padding: 10px 0 14px 0; +} + + +.md-search__inner { + width: inherit; + float: inherit; +} + +.md-search__input { + margin-bottom: 10px; + border-radius: 4px; + background-color: inherit; + border: 1px solid rgba(0,0,0,.07); +} + +.md-search__input::placeholder { + color: rgba(0,0,0,.07); +} + +@media only screen and (min-width: 60em) { + [data-md-toggle=search]:checked~.md-header .md-search__inner { + margin-top: 100px; + } +} diff --git a/docs/content/assets/styles/product-switcher.css b/docs/content/assets/styles/product-switcher.css new file mode 100644 index 000000000..a4bfcb9bb --- /dev/null +++ b/docs/content/assets/styles/product-switcher.css @@ -0,0 +1,11 @@ +.product-switcher { + font-size: 10px; + font-family: 'Rubik', -apple-system, 'BlinkMacSystemFont', 'Segoe UI', + 'Helvetica Neue', sans-serif; + color: #06102a; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +.product-switcher img { + margin-right: 10px; +} diff --git a/docs/content/assets/styles/root.css b/docs/content/assets/styles/root.css new file mode 100644 index 000000000..8668ace71 --- /dev/null +++ b/docs/content/assets/styles/root.css @@ -0,0 +1,10 @@ +:root { + --dark: #06102a; + --blue: #04B5D1; + --light-blue: #E4F7FA; + + --input-bg-color: white; + --input-color: black; + --input-placeholder-color: #bbb; + --input-border-color: #dcdcdc; +} \ No newline at end of file diff --git a/docs/content/migration/v1-to-v2.md b/docs/content/migration/v1-to-v2.md index ea680a746..8dbc4686a 100644 --- a/docs/content/migration/v1-to-v2.md +++ b/docs/content/migration/v1-to-v2.md @@ -453,7 +453,7 @@ To apply a redirection: - name: whoami port: 80 middlewares: - - name: https_redirect + - name: https-redirect --- apiVersion: traefik.containo.us/v1alpha1 @@ -476,7 +476,7 @@ To apply a redirection: apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: - name: https_redirect + name: https-redirect spec: redirectScheme: scheme: https @@ -501,7 +501,7 @@ To apply a redirection: [http.routers.router1.tls] [http.middlewares] - [http.middlewares.https_redirect.redirectScheme] + [http.middlewares.https-redirect.redirectScheme] scheme = "https" permanent = true ``` @@ -528,7 +528,7 @@ To apply a redirection: tls: {} middlewares: - https_redirect: + https-redirect: redirectScheme: scheme: https permanent: true diff --git a/docs/content/routing/providers/kubernetes-crd.md b/docs/content/routing/providers/kubernetes-crd.md index 8804125da..64d22e2bc 100644 --- a/docs/content/routing/providers/kubernetes-crd.md +++ b/docs/content/routing/providers/kubernetes-crd.md @@ -108,16 +108,16 @@ The Kubernetes Ingress Controller, The Custom Resource Way. name: myingressroute namespace: default - spec: - entryPoints: - - web + spec: + entryPoints: + - web - routes: - - match: Host(`foo`) && PathPrefix(`/bar`) - kind: Rule - services: - - name: whoami - port: 80 + routes: + - match: Host(`foo`) && PathPrefix(`/bar`) + kind: Rule + services: + - name: whoami + port: 80 --- apiVersion: traefik.containo.us/v1alpha1 @@ -126,15 +126,15 @@ The Kubernetes Ingress Controller, The Custom Resource Way. name: ingressroute.tcp namespace: default - spec: - entryPoints: - - tcpep - routes: - - match: HostSNI(`bar`) - kind: Rule - services: - - name: whoamitcp - port: 8080 + spec: + entryPoints: + - tcpep + routes: + - match: HostSNI(`bar`) + kind: Rule + services: + - name: whoamitcp + port: 8080 --- apiVersion: traefik.containo.us/v1alpha1 @@ -143,14 +143,14 @@ The Kubernetes Ingress Controller, The Custom Resource Way. name: ingressroute.udp namespace: default - spec: - entryPoints: - - fooudp - routes: - - kind: Rule - services: - - name: whoamiudp - port: 8080 + spec: + entryPoints: + - fooudp + routes: + - kind: Rule + services: + - name: whoamiudp + port: 8080 ``` ```yaml tab="Whoami" diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 7a288b61c..0e5feebbf 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -29,7 +29,12 @@ theme: copyright: "Copyright © 2016-2020 Containous" extra_css: - - assets/styles/extra.css # Our custom styles + - assets/styles/root.css + - assets/styles/header.css + - assets/styles/footer.css + - assets/styles/menu.css + - assets/styles/content.css + - assets/styles/product-switcher.css - assets/styles/atom-one-light.css # HightlightJS's CSS theme extra_javascript: diff --git a/docs/scripts/verify.sh b/docs/scripts/verify.sh index 840232d2c..b4ba696fe 100755 --- a/docs/scripts/verify.sh +++ b/docs/scripts/verify.sh @@ -21,7 +21,7 @@ find "${PATH_TO_SITE}" -type f -not -path "/app/site/theme/*" \ --check_external_hash \ --alt_ignore="/traefik.logo.png/" \ --http_status_ignore="0,500,501,503" \ - --url_ignore="/https://groups.google.com/a/traefik.io/forum/#!forum/security/,/localhost:/,/127.0.0.1:/,/fonts.gstatic.com/,/.minikube/,/github.com\/containous\/traefik\/*edit*/,/github.com\/containous\/traefik\/$/,/docs.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/,/pilot.traefik.io\/profile/" \ + --url_ignore="/https://groups.google.com/a/traefik.io/forum/#!forum/security/,/localhost:/,/127.0.0.1:/,/fonts.gstatic.com/,/.minikube/,/github.com\/containous\/traefik\/*edit*/,/github.com\/containous\/traefik\/$/,/docs.traefik.io/,/github\.com\/golang\/oauth2\/blob\/36a7019397c4c86cf59eeab3bc0d188bac444277\/.+/,/www.akamai.com/,/pilot.traefik.io\/profile/,/containo.us/,/docs.mae.sh/,/www.mkdocs.org/,/squidfunk.github.io/,/ietf.org/" \ '{}' 1>/dev/null ## HTML-proofer options at https://github.com/gjtorikian/html-proofer#configuration diff --git a/docs/theme/main.html b/docs/theme/main.html index 5b1a18c99..176befcce 100644 --- a/docs/theme/main.html +++ b/docs/theme/main.html @@ -10,6 +10,46 @@ {% endblock %} +{% block header %} + {% include "partials/containous-header.html" %} + {% include "partials/header.html" %} +{% endblock %} + + +{% block site_nav %} + {% if nav %} + {% include "partials/product-switcher.html" %} +
+ {% include "partials/search.html" %} + {% if "search" in config["plugins"] %} + + {% endif %} +
+
+ {% include "partials/nav.html" %} +
+
+
+ {% endif %} + {% if page.toc %} +
+ {% if config.repo_url %} +
+
+ {% include "partials/source.html" %} +
+
+ {% endif %} +
+
+ {% include "partials/toc.html" %} +
+
+
+ {% endif %} +{% endblock %} + + {% block footer %} {% import "partials/language.html" as lang with context %} @@ -36,6 +76,10 @@ Material for MkDocs + + {% block social %} {% include "partials/social.html" %} diff --git a/docs/theme/partials/containous-header.html b/docs/theme/partials/containous-header.html new file mode 100644 index 000000000..ade0a1ace --- /dev/null +++ b/docs/theme/partials/containous-header.html @@ -0,0 +1,238 @@ +
+
+ {/* Do not remove this. It serves an important purpose. */} +
+ + + +
diff --git a/docs/theme/partials/product-switcher.html b/docs/theme/partials/product-switcher.html new file mode 100644 index 000000000..b57a9a14a --- /dev/null +++ b/docs/theme/partials/product-switcher.html @@ -0,0 +1,49 @@ + \ No newline at end of file diff --git a/webui/Dockerfile b/webui/Dockerfile index 67e491e5d..f7d42974e 100644 --- a/webui/Dockerfile +++ b/webui/Dockerfile @@ -1,4 +1,4 @@ -FROM node:12.11 +FROM node:12.18 ENV WEBUI_DIR /src/webui RUN mkdir -p $WEBUI_DIR