Styles refactoring (#1278)

This commit is contained in:
bogdankol 2024-02-19 15:53:51 +02:00 committed by GitHub
parent b84c9e0eda
commit 54cb31c8e7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
40 changed files with 2578 additions and 218 deletions

View File

@ -13,8 +13,8 @@ msgid "Copyright Notice"
msgstr "Copyright Notice"
#: ../../copyright.md:3
msgid "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgid "Copyright (C) 2018-2024 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2024 VyOS maintainers and contributors"
#: ../../copyright.md:9
msgid "Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one."

View File

@ -13,8 +13,8 @@ msgid "Copyright Notice"
msgstr "Aviso de copyright"
#: ../../copyright.md:3
msgid "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2023 Mantenedores y colaboradores de VyOS"
msgid "Copyright (C) 2018-2024 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2024 Mantenedores y colaboradores de VyOS"
#: ../../copyright.md:9
msgid "Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one."

View File

@ -13,8 +13,8 @@ msgid "Copyright Notice"
msgstr "Copyright Notice"
#: ../../copyright.md:3
msgid "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgid "Copyright (C) 2018-2024 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2024 VyOS maintainers and contributors"
#: ../../copyright.md:9
msgid "Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one."

View File

@ -13,8 +13,8 @@ msgid "Copyright Notice"
msgstr "Copyright Notice"
#: ../../copyright.md:3
msgid "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgid "Copyright (C) 2018-2024 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2024 VyOS maintainers and contributors"
#: ../../copyright.md:9
msgid "Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one."

View File

@ -13,8 +13,8 @@ msgid "Copyright Notice"
msgstr "Copyright Notice"
#: ../../copyright.md:3
msgid "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2023 VyOS maintainers and contributors"
msgid "Copyright (C) 2018-2024 VyOS maintainers and contributors"
msgstr "Copyright (C) 2018-2024 VyOS maintainers and contributors"
#: ../../copyright.md:9
msgid "Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one."

165
docs/_static/css/breadcrumbs.css vendored Normal file
View File

@ -0,0 +1,165 @@
.wy-breadcrumbs {
& > li,
& > li a {
color: #636A6D;
font-family: 'Roboto', sans-serif;
font-weight: 500;
letter-spacing: -0.5px;
height: 26px;
}
& > li a {
padding: 0 5px 0 0;
}
& > li:nth-child(1) {
visibility: hidden;
position: relative;
padding-left: 0;
}
& > li > .icon-home::after {
content: url('../images/breadcrumbs-icon.svg');
visibility: visible;
top: 6px;
position: absolute;
}
& > li > .icon-home::before {
padding-right: 0;
content: 'Home';
visibility: visible;
font-family: 'Roboto', sans-serif;
letter-spacing: -0.5px;
font-weight: 500;
}
& > li:nth-child(n + 1) {
font-weight: 500;
position: relative;
}
& > li:nth-child(n + 1)::before {
display: none;
}
& > li:nth-last-child(2) {
color: #121010;
}
& > li:nth-last-child(2)::after,
& > li:nth-last-child(1)::after {
display: none !important
}
& > li:nth-child(n + 1)::after {
content: url('../images/breadcrumbs-icon.svg');
top: 0;
position: absolute;
width: 20px;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #fff;
}
& > li:last-of-type:has(a),
& > li:last-of-type:has(a) a {
font-family: 'Archivo', sans-serif;
font-size: 14px;
font-weight: 700;
letter-spacing: -0.02em;
color: #fff;
background-color: #121010;
display: flex;
align-items: center;
}
& > li:last-of-type:has(a) {
padding: 7px 10px;
border-radius: 4px;
height: 30px;
}
& > li:last-of-type:has(a) a {
max-height: 100%;
}
& > li:last-of-type:has(a) a::before {
content: url('../images/github.svg');
margin-right: 4px;
display: flex;
align-items: center;
}
& > li:last-of-type::before {
display: none;
}
}
@media screen and (max-width: 375px) {
.wy-breadcrumbs {
& > li > .icon-home::after {
right: -2px;
}
& > li:nth-child(n + 1)::after {
right: -13px;
}
}
.wy-breadcrumbs > li {
padding: 5px 5px 5px 0;
}
.wy-breadcrumbs > li,
.wy-breadcrumbs > li a {
font-size: 14px;
}
.wy-breadcrumbs > li > .icon-home::before {
font-size: 14px;
}
}
@media screen and (min-width: 376px) {
.wy-breadcrumbs {
& > li > .icon-home::after {
right: -8px;
}
& > li:nth-child(n + 1)::after {
right: -13px;
}
}
.wy-breadcrumbs > li {
padding: 5px 5px 5px 10px;
}
.wy-breadcrumbs > li,
.wy-breadcrumbs > li a {
font-size: 16px;
}
.wy-breadcrumbs > li > .icon-home::before {
font-size: 16px;
}
}
@media screen and (max-width: 991px) {
li.wy-breadcrumbs-aside {
display: none !important;
}
}
@media screen and (max-width: 1200px) {
ul.wy-breadcrumbs:has(li + li + li + li) li.wy-breadcrumbs-aside {
margin: 24px 0 16px;
max-width: 140px;
float: none;
}
}

229
docs/_static/css/code-snippets.css vendored Normal file
View File

@ -0,0 +1,229 @@
.rst-content {
& div[class^=highlight],
& pre.literal-block {
border: none;
background: linear-gradient(#FF9000, #FFBF12);
border-radius: 8px;
padding-left: 5px;
}
& div[class^=highlight] div[class^=highlight],
& pre.literal-block div[class^=highlight] {
background: #525659 !important;
border-radius: 0;
border: none;
padding: 0;
position: relative;
}
& .linenodiv pre,
& div[class^=highlight] pre,
& pre.literal-block {
font-size: 16px;
font-family: 'Roboto Mono', monospace;
font-weight: 400;
letter-spacing: -0.04em;
color: #fff;
line-height: 1.2;
overflow-x: scroll;
scroll-behavior: smooth;
}
& .linenodiv pre::-webkit-scrollbar,
& div[class^=highlight] pre::-webkit-scrollbar,
& pre.literal-block::-webkit-scrollbar {
height: 3px;
color: #99A0A5 transparent;
}
& .linenodiv pre::-webkit-scrollbar-track,
& div[class^=highlight] pre::-webkit-scrollbar-track,
& pre.literal-block::-webkit-scrollbar-track {
background-color: transparent;
border-radius: 8px;
margin: 0 18px;
}
& .linenodiv pre::-webkit-scrollbar-thumb,
& div[class^=highlight] pre::-webkit-scrollbar-thumb,
& pre.literal-block::-webkit-scrollbar-thumb {
background-color: #99A0A5;
border-radius: 8px;
margin: 0 10px;
}
}
/* copy code div */
.highlight > .copyDiv {
display: flex;
align-items: center;
transition: transform linear 250ms, width linear 250ms;
bottom: 0;
right: 0;
width: 100%;
padding: 5px 12px;
justify-content: end;
background-color: #393C3F;
height: 32px;
margin-top: 4px;
}
.copiedNotifier > span {
font-size: 14px !important;
color: #fff !important;
text-align: center;
margin-bottom: 0;
}
.highlight {
& .kn {
color: #ccffda;
}
& .nn {
color: #d0eefb;
}
& .o {
color: #e6e6e6;
}
& .s2 {
color: #dbe6f0;
}
& .s1 {
color: #dbe6f0;
}
& .nb {
color: #ccffda;
}
& .c1 {
color: #dcebef;
font-style: italic;
}
& .nt {
color: #8db1fe;
font-weight: bold;
}
& .k {
color: #ccffda;
font-weight: bold;
}
& .se {
color: #dbe6f0;
font-weight: bold;
}
& .nv {
color: #eed7f4;
}
& .gh {
color: #ccccff;
font-weight: bold;
}
& .gd {
color: #ffcccc;
}
& .gi {
color: #ccffcc;
}
& .gu {
color: #ffc2ff;
font-weight: bold;
}
& .na {
color: #81c0ff;
}
& .s {
color: #dbe6f0;
}
& .ni {
color: #f4d4cd;
font-weight: bold;
}
& .cm {
color: #d5e7ec;
font-style: italic;
}
& .cp {
color: #c2ffd3;
}
& .mi {
color: #cef3e0;
}
& .nf {
color: #c5d4fc;
}
& .kc {
color: #c2ffd3;
font-weight: bold;
}
& .ch {
color: #d5e7ec;
font-style: italic;
}
& .mf {
color: #d6f5e6;
}
& .go {
color: #e6e6e6;
}
& .m {
color: #d6f5e6;
}
}
.rst-content blockquote {
margin: 0
}
@media screen and (max-width: 991px) {
.rst-content .linenodiv pre,
.rst-content div[class^=highlight] pre,
.rst-content pre.literal-block {
padding: 16px 20px;
}
.copyDiv > p {
margin: 0 10px 0 0;
color: #fff;
font-family: 'Roboto', sans-serif;
font-size: 14px;
}
}
@media screen and (min-width: 992px) {
.rst-content .linenodiv pre,
.rst-content div[class^=highlight] pre,
.rst-content pre.literal-block {
padding: 24px 36px 18px;
}
.copyDiv > p {
display: none;
}
}

View File

@ -0,0 +1,23 @@
#configuration-guide > div > ul > li {
list-style: none !important;
position: relative;
}
#configuration-guide > div > ul > li::before {
content: '';
position: absolute;
top: 9px;
left: -15px;
width: 6px;
height: 6px;
background-color: #000;
border-radius: 50%;
}
#configuration-guide .toctree-l1 > a {
color: #FD8F01;
font-family: 'Roboto', sans-serif;
font-size: 16px;
font-weight: 400;
letter-spacing: -0.5px;
}

View File

@ -1,193 +1,3 @@
div.card-header {
font-weight: bold;
background: #fdab10;
}
span.opcmd,
span.cfgcmd {
font-weight: bold;
background-color: transparent;
border: none;
padding: 0;
font-size: 100% !important;
max-width: 100%;
color: #000;
font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;
}
span.cfgcmd:before {
content: "#";
margin-right: 0px;
}
td a.cmdlink span.cfgcmd:before,
td a.cmdlink span.opcmd:before {
content: "";
}
td a.cmdlink,
td a.cmdlink {
margin-left: 0px;
}
tr td p {
margin-bottom:0px
}
span.opcmd:before {
content: "$";
margin-right: 0px;
}
.cfgcmd-heading {
display: inline-block;
margin: 6px 0;
font-size: 90%;
line-height: normal;
background: #f0d481;
color: #2980B9;
border-top: solid 3px #6ab0de;
border-top-width: 3px;
border-top-style: solid;
border-top-color: #FF9302;
padding: 6px;
}
.opcmd-heading {
display: inline-block;
margin: 6px 0;
font-size: 90%;
line-height: normal;
background: #e7f2fa;
color: #2980B9;
border-top: solid 3px #6ab0de;
border-top-width: 3px;
border-top-style: solid;
border-top-color: rgb(106, 176, 222);
padding: 6px;
}
.opcmd-body,
.cfgcmd-body {
margin: 6px 0;
padding-left: 12px;
}
.cfgcmd-heading .cmdlink:after,
.opcmd-heading .cmdlink:after{
content: "";
font-family: FontAwesome
}
.cfgcmd-heading:not(:hover) .cmdlink,
.opcmd-heading:not(:hover) .cmdlink {
display: none;
}
.defaultvalue{
font-size: 90%;
color: gray;
margin-bottom: 5px;
}
a.cmdlink {
font-size: 80%;
margin-left: 6px;
}
a.cmdlink span{
color: #2980B9;
}
a.cmdlink span:hover{
color: #3091d1;
}
.wy-nav-content {
max-width : none;
}
.wy-tray-container li.wy-tray-item-info {
background : #409ad5;
}
.wy-table-responsive {
overflow : visible !important;
}
.wy-table-responsive table td {
white-space : normal !important;
}
.wy-menu-vertical header,
.wy-menu-vertical p.caption {
color : #ffcc00 !important;
}
.wy-menu-vertical li.current a {
color : #040077 !important;
}
.wy-menu-vertical li ul li a {
color : #ffffff !important;
}
.wy-menu-vertical a {
color : #ffffff !important;
}
.wy-menu-vertical a:active {
background-color : #409ad5 !important;
}
.wy-side-nav-search {
background-color : #ffffff !important;
}
.wy-side-nav-search img {
background-color : #ffffff !important;
}
.wy-side-nav-search > div.version {
color : #000000 !important;
}
.wy-side-nav-search>a,
.wy-side-nav-search .wy-dropdown>a {
color:#000000;
font-size:100%;
font-weight:bold;
display:inline-block;
padding:4px 6px;
margin-bottom:.809em
}
.wy-nav-top {
background-color : #ffffff;
}
.wy-nav-top img {
background-color : #000000 !important;
}
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td.coverage-ok,
.rst-content table.docutils td.coverage-ok {
color: green;
text-align: center;
}
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td.coverage-fail,
.rst-content table.docutils td.coverage-fail {
color: red;
text-align: center;
}
p.devwarning {
top: 10px;
position: sticky;
@ -197,19 +7,529 @@ p.devwarning {
letter-spacing: 1px;
color: #000;
text-align: center;
background: #d40 repeating-linear-gradient( 135deg, transparent, transparent 56px, rgba(255, 255, 255, 0.2) 56px, rgba(255, 255, 255, 0.2) 112px );
background-color: #fdab10;
background: #d40
repeating-linear-gradient(
135deg,
transparent,
transparent 56px,
rgba(255, 255, 255, 0.2) 56px,
rgba(255, 255, 255, 0.2) 112px
);
background-color: #fdab10;
}
@media screen and (max-width: 768px) {
.wy-nav-top{
background-color: #fdab10;
}
/* main page */
.wy-body-for-nav {
background: #fff;
overflow-y: hidden
}
@media screen and (max-width: 768px) {
p.devwarning {
margin: 10px 10px 10px 10px;
}
.wy-grid-for-nav {
margin: 0 auto;
position: relative;
padding-top: 80px;
display: flex;
&:has(nav.wy-nav-side.shift) {
background: #E7E7E7;
}
&:not(:has(nav.shift)) > section > div.overlay {
background-color: transparent
}
&:not(:has(nav.shift)) section > div.overlay > div .wy-breadcrumbs > li a::before,
&:not(:has(nav.shift)) section > div.overlay > div .wy-breadcrumbs > li a::after,
&:not(:has(nav.shift)) section > div.overlay > div .wy-breadcrumbs > li::before,
&:not(:has(nav.shift)) section > div.overlay > div .wy-breadcrumbs > li::after {
background-color: #fff;
}
}
.wy-nav-content-wrap {
width: 100%;
margin-left: auto;
background-color: transparent;
}
.wy-nav-content {
max-width: 100%;
background-color: transparent;
&.overlay > div > div[role=navigation] .wy-breadcrumbs > li a::before,
&.overlay > div > div[role=navigation] .wy-breadcrumbs > li a::after,
&.overlay > div > div[role=navigation] .wy-breadcrumbs > li::before,
&.overlay > div > div[role=navigation] .wy-breadcrumbs > li::after,
&.overlay > div > div.document div.sd-card,
&.overlay > div > div.document div.sd-card-title {
background-color: #E7E7E7;
}
&.overlay > div.rst-content > footer > .rst-footer-buttons > a {
background-color: #E7E7E7 !important;
}
}
/* main-page content */
#vyos-user-guide {
& .sd-container-fluid {
padding-left: 0;
padding-right: 0;
}
& .sd-container-fluid > .docutils > .sd-col {
max-width: 387px;
box-shadow: none;
flex: none;
width: 100% !important;
padding: 0 !important;
margin-top: 0 !important;
& .sd-card-body .sd-card-text {
min-height: 120px;
}
}
& > div.sd-container-fluid {
margin-top: 30px;
& > div.docutils {
margin: 0;
display: grid;
}
}
& > .pb-4 {
padding-bottom: 1.4rem !important;
}
}
div.sd-card-title {
font-weight: bold;
background: #fff;
border: none;
font-family: 'Archivo', sans-serif;
}
.sd-card {
background: #fff;
border: none;
border-bottom: 1px solid #ffae12;
border-radius: 0;
box-shadow: none !important;
}
.sd-card-body {
padding: 0;
}
.sd-card-title,
.sd-card-text {
padding: 0;
}
.internal > .std-ref,
.line > .external {
color: #fd8f01;
font-family: 'Roboto', sans-serif;
font-size: 16px;
letter-spacing: -0.5px;
font-weight: 400;
}
img {
height: auto !important;
border: 1px solid #C4C9CC;
margin-bottom: 20px !important;
border-radius: 8px;
}
footer {
text-align: center;
font-family: 'Roboto', sans-serif;
font-size: 16px;
font-weight: 400;
letter-spacing: -0.5px;
color: #636a6d;
& > a {
color: #fd8f01;
font-family: 'Roboto', sans-serif;
font-size: 16px;
letter-spacing: -0.5px;
font-weight: 400;
}
& > hr {
display: none;
}
& p {
margin-top: 105px;
text-align: center;
font-family: 'Roboto', sans-serif;
font-size: 16px;
font-weight: 400;
letter-spacing: -0.5px;
color: #636a6d;
&:has(a) > a,
&:has(a) > a:visited {
color: #636a6d;
}
}
}
.rst-versions {
position: static;
background: transparent;
width: 262px;
display: block;
&.shift-up {
background: #525659;
z-index: 100;
position: absolute;
left: 19px;
bottom: 30px;
border-radius: 6px;
overflow: hidden;
}
& .rst-current-version {
background-color: #525659;
color: #01D38E;
border-radius: 6px;
width: 264px;
font-family: 'Roboto', sans-serif;
letter-spacing: -0.5px;
}
& .rst-current-version span.fa-book {
color: #fff !important;
font-family: 'Roboto', sans-serif;
letter-spacing: -0.5px;
}
}
.rst-other-versions {
& dt {
color: #808080;
font-family: 'Roboto', sans-serif;
font-size: 16px;
letter-spacing: -0.5px;
}
& small {
font-family: 'Roboto', sans-serif;
color: #fff;
& a {
font-family: 'Roboto', sans-serif;
letter-spacing: -0.5px;
color: #fd8f01;
}
}
}
div#rtd-sidebar {
display: none;
}
.wy-nav-content-opened-sidebar {
padding: 25px 0 27px 40px;
}
.wy-nav-content-wrap-opened-sidebar {
max-width: calc(100% - 294px);
margin-left: 294px;
}
.wy-nav-content-closed-sidebar {
padding: 26px 0 !important;
}
.wy-nav-content-wrap-closed-sidebar {
max-width: 100% !important;
width: 100% !important;
}
html {
scroll-padding-top: 90px !important;
}
.overlayDiv {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
z-index: 111;
background-color: #121010;
opacity: 0.1;
}
.iframe-container {
position: relative;
width: 100%;
background-color: #f0f0f0;
z-index: 201;
overflow: hidden;
&::-webkit-scrollbar {
display: none;
}
& iframe {
width: 100%;
height: 100%;
border: none;
overflow: hidden;
&::-webkit-scrollbar {
display: none;
}
}
}
@media screen and (min-width: 320px) and (max-width: 575px) {
#vyos-user-guide .container > .row {
grid-gap: 0px 15px
}
}
@media screen and (max-width: 575px) {
.wy-nav-content-wrap,
.wy-nav-content-wrap.shift {
max-width: 100%;
width: 100%
}
.wy-nav-content-wrap.shift {
padding: 70px 15px 0;
overflow: auto;
}
.wy-nav-side {
display: none;
min-height: unset;
}
.wy-nav-side.shift {
display: inherit;
width: 100%;
max-width: 320px;
}
#vyos-user-guide .container > .docutils > .p-2 {
max-width: 100%;
&:nth-child(2n) {
margin-left: 0;
}
& .card-body .card-text {
min-height: 80px;
}
}
.wy-nav-content-wrap-opened-sidebar {
max-width: 100%;
margin-left: unset;
}
dl.footnote > dt {
padding-left: 0 !important;
}
.wy-grid-for-nav {
padding: 80px 20px 0;
max-width: 738px;
}
}
@media screen and (min-width: 575px) and (max-width: 768px) {
.wy-nav-content-wrap,
.wy-nav-content-wrap.shift {
max-width: 100%;
width: 100%
}
.wy-nav-content-wrap.shift {
padding: 70px 15px 0;
overflow: auto;
width: calc(100% - 294px);
}
.wy-nav-side {
display: none;
min-height: unset;
}
.wy-nav-side.shift {
display: inherit;
width: 294px;
}
}
@media screen and (min-width: 575px) {
#vyos-user-guide div.sd-container-fluid > div.docutils {
grid-gap: 30px;
grid-template-columns: 1fr 1fr;
}
}
@media screen and (max-width: 767px) {
.wy-nav-content-wrap,
.wy-nav-content-wrap.shift {
margin: 0 auto;
}
.wy-nav-top {
background-color: #fdab10;
}
p.devwarning {
margin: 10px 10px 10px 10px;
}
#vyos-user-guide .container {
max-width: none;
}
.wy-nav-content-wrap .wy-nav-content {
padding: 0 0 26px 0;
}
.wy-grid-for-nav {
padding: 80px 15px 0;
max-width: 738px;
}
.rst-content > div > hr {
display: none;
}
}
@media screen and (min-width: 768px) {
.wy-nav-content-wrap {
width: calc(100% - 292px);
}
.rst-content > div > hr {
margin: 16px 0 26px 0;
}
}
@media screen and (min-width: 768px) and (max-width: 991px) {
.wy-nav-content {
padding: 25px 0 27px 40px;
}
.wy-nav-content-wrap {
max-width: calc(100% - 294px);
}
.wy-grid-for-nav {
max-width: 738px;
padding: 70px 15px 0;
}
}
@media screen and (min-width: 992px) and (max-width: 1266px) {
.wy-nav-content {
padding: 25px 0 27px 40px;
}
.wy-nav-content-wrap {
max-width: calc(100% - 294px);
}
.wy-grid-for-nav {
max-width: calc(100% - 130px);
}
}
@media screen and (min-width: 1266px) {
.wy-nav-content {
padding: 25px 0 27px 40px;
}
.wy-nav-content-wrap {
max-width: calc(100% - 294px);
}
.wy-grid-for-nav {
max-width: 1140px;
}
}
@media screen and (min-width: 1500px) {
.wy-nav-content {
padding: 25px 0 27px 40px;
}
.wy-nav-content-wrap {
max-width: calc(100% - 294px);
}
.wy-grid-for-nav {
max-width: 1340px;
}
}
@media screen and (max-height: 500px) {
.rst-versions {
margin-top: 10px;
}
.closeButtonDivLine {
bottom: 45px;
}
}
@media screen and (min-height: 501px) and (max-height: 1000px) {
.rst-versions {
margin-top: 10px;
}
.closeButtonDivLine {
bottom: 55px;
}
}
@media screen and (min-height: 1001px) and (max-height: 1300px) {
.rst-versions {
margin-top: 10px;
}
.closeButtonDivLine {
bottom: 60px;
}
}
@media screen and (min-height: 1301px) and (max-height: 1600px) {
.rst-versions {
margin-top: 25px;
}
.closeButtonDivLine {
bottom: 75px;
}
}
@media screen and (min-height: 1601px) {
.rst-versions {
margin-top: 35px;
}
.closeButtonDivLine {
bottom: 85px;
}
}

134
docs/_static/css/headers.css vendored Normal file
View File

@ -0,0 +1,134 @@
h1,
h2,
h3,
h4,
h5 {
font-family: 'Archivo', sans-serif !important;
font-weight: 700 !important;
letter-spacing: -0.02em !important;
display: flex;
color: #121010;
margin-bottom: 15px !important;
}
h2,
h3,
h4,
h5 {
margin-top: 15px !important;
}
h1:has(a) > a,
h2:has(a) > a,
h3:has(a) > a,
h4:has(a) > a,
h5:has(a) > a {
display: flex !important;
position: relative;
padding-left: 5px;
}
@media screen and (max-width: 767px) {
h1 {
font-size: 28px !important;
}
h2 {
font-size: 22px !important;
}
h3 {
font-size: 20px !important;
}
h4 {
font-size: 18px !important;
}
h5 {
font-size: 16px !important;
}
}
@media screen and (min-width: 768px) {
h1 {
font-size: 48px !important;
}
h2 {
font-size: 34px !important;
}
h3 {
font-size: 24px !important;
}
h4 {
font-size: 22px !important;
}
h5 {
font-size: 20px !important;
}
}
@media screen and (max-width: 991px) {
h1 {
margin-top: 15px;
}
a.headerlink {
opacity: 1 !important;
color: transparent;
}
h1:has(a):hover > a::after,
h2:has(a):hover > a::after,
h3:has(a):hover > a::after,
h4:has(a):hover > a::after,
h5:has(a):hover > a::after {
content: none !important;
display: none !important;
}
h1:has(a) > a::before,
h2:has(a) > a::before,
h3:has(a) > a::before,
h4:has(a) > a::before,
h5:has(a) > a::before {
content: url('../images/cmnd-link-icon.svg');
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 25%;
height: 100%;
width: 20px;
z-index: 2;
background-color: transparent;
}
}
@media screen and (min-width: 992px) {
h1:has(a):hover > a::after,
h2:has(a):hover > a::after,
h3:has(a):hover > a::after,
h4:has(a):hover > a::after,
h5:has(a):hover > a::after {
content: url('../images/cmnd-link-icon.svg');
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0;
height: 100%;
width: 20px;
z-index: 2;
background-color: transparent;
}
a.headerlink {
color: transparent;
}
}

123
docs/_static/css/hints.css vendored Normal file
View File

@ -0,0 +1,123 @@
div {
&.note,
&.hint,
&.warning,
&.error,
&.seealso,
&.tip {
border-radius: 8px;
& > .admonition-title {
padding: 5px 8px;
border-radius: 6px;
font-family: 'Archivo', sans-serif !important;
font-size: 14px !important;
letter-spacing: -0.02em !important;
font-weight: 600 !important;
margin: -12px -16px 12px;
}
& > .admonition-title::before {
content: url('../images/note-icon.svg');
}
& > .highlight-none {
margin-top: 10px;
}
& > p:nth-child(1n+2) {
font-family: 'Roboto', sans-serif;
font-size: 16px;
letter-spacing: -0.5px;
color: #525659;
font-weight: 400;
margin: 10px 0 0 0 !important;
}
}
&.note,
&.seealso {
background-color: #F5FCFF !important;
}
&.note:has(a.reference),
&.hint:has(a.reference),
&.warning:has(a.reference),
&.error:has(a.reference),
&.seealso:has(a.reference),
&.tip:has(a.reference) {
& a.reference,
& a.reference span {
color: #508EEB !important;
}
}
&.note,
&.seealso {
& > .admonition-title {
background-color: #CCEFFB !important;
color: #356E81 !important;
}
}
&.hint,
&.tip {
background-color: #F7FDFB !important;
& > .admonition-title {
background-color: #C6F0E3 !important;
color: #3F6461 !important;
}
}
&.warning,
&.error {
background-color: #FDF7F7 !important;
& > .admonition-title {
background-color: #F0C6C6 !important;
color: #8E2F2F !important;
}
}
}
#running-on-bare-metal div.note > p:nth-child(2) {
padding: 8px 12px 0 12px;
}
@media screen and (max-width: 575px) {
div.note,
div.hint,
div.warning,
div.error,
div.seealso,
div.tip {
padding: 24px 32px !important;
border-radius: 8px;
}
}
@media screen and (min-width: 576px) and (max-width: 991px) {
div.note,
div.hint,
div.warning,
div.error,
div.seealso,
div.tip {
padding: 24px 32px !important;
border-radius: 8px;
}
}
@media screen and (min-width: 992px) {
div.note,
div.hint,
div.warning,
div.error,
div.seealso,
div.tip {
padding: 24px 32px !important;
border-radius: 8px;
}
}

View File

@ -0,0 +1,11 @@
.toctree-l1 {
background-color: transparent;
}
.current > .current > .internal {
background-color: #fff;
color: #FD8F01;
border: transparent;
padding: 11px 12px 11px 28px;
border: none !important;
}

371
docs/_static/css/leftSidebar.css vendored Normal file
View File

@ -0,0 +1,371 @@
nav.wy-nav-side {
padding-bottom: 1em !important;
}
.wy-nav-side {
padding: 20px 19px;
width: 294px;
height: calc(100vh - 50px);
}
.wy-form input {
height: 32px;
}
.wy-form input::placeholder {
font-family: 'Archivo', sans-serif;
font-weight: 400;
font-size: 14px;
letter-spacing: -0.02em;
}
.wy-side-nav-search {
width: 100%;
padding: 0;
margin-bottom: 0;
& > .icon-home,
& > .version {
display: none
}
& input {
border-color: #C4C9CC;
&::placeholder {
color: #8D9499;
}
}
}
.wy-nav-side,
.wy-nav-side .wy-side-nav-search {
background-color: #F6F7F7
}
ul.current > li.toctree-l1[aria-expanded=false] > a.current {
padding-left: 25px;
color: #FD8F01;
& button.toctree-expand::before {
content: '+';
color: #FD8F01;
}
}
ul.current > li.toctree-l1[aria-expanded=false] > a.internal:has( + ul[aria-expanded=false]) {
padding-left: 25px;
color: #FD8F01;
& button.toctree-expand::before {
content: '+';
color: #FD8F01;
}
}
ul.current > li.toctree-l1.current > ul > li.toctree-l2[aria-expanded=false]:has(ul > li > a.current) > a.internal {
color: #FD8F01;
padding-top: 11px;
padding-bottom: 11px;
padding-right: 12px;
}
ul.current > li.toctree-l1.current >
ul > li.toctree-l2.current > ul > li.toctree-l3[aria-expanded=false]
> a.current {
color: #FD8F01;
padding-top: 11px;
padding-bottom: 11px;
padding-right: 12px;
}
ul.current > li.toctree-l1.current >
ul > li.toctree-l2.current > ul > li.toctree-l3[aria-expanded=false]:has(ul > li.toctree-l4 > a.current)
> a.internal {
color: #FD8F01;
padding-top: 11px;
padding-bottom: 11px;
padding-right: 12px;
}
.toctree-l2 > ul > li.toctree-l3.current {
padding-left: 0 !important;
background-color: #fff;
}
.wy-menu-vertical {
width: 100%;
max-width: 292px;
& a {
color: #121010;
font-family: 'Archivo', sans-serif;
font-weight: 500;
font-size: 14px;
letter-spacing: -0.02em;
padding: 11px 12px;
}
& p.caption {
color: #8D9499;
font-family: 'Archivo', sans-serif;
font-weight: 600;
font-size: 14px;
letter-spacing: -0.02em;
padding: 5px 12px;
margin-top: 6px;
margin-bottom: 4px;
text-transform: none;
}
& li.toctree-l1.current > a {
background-color: #fff;
color: #FD8F01;
border: transparent;
padding: 11px 12px;
}
& > ul.current > li.toctree-l1.current > a.internal:has(+ ul) {
padding-left: 25px !important;
}
& > ul.current > li.toctree-l1.current > a.current {
padding-left: 12px;
}
& li.toctree-l1.current .toctree-l2 > a {
background-color: #fff;
border: transparent;
}
& li.toctree-l1.current .toctree-l2 > a.internal {
padding-left: 35px !important;
}
& li.toctree-l1.current .toctree-l2.current > a.internal:first-of-type {
color: #fdab10;
}
& li.toctree-l1.current .toctree-l2 > a:hover {
background-color: #E1E4E5;
}
& li.toctree-l1.current .toctree-l2 > a.current {
color: #fdab10;
padding: 11px 12px 11px 35px;
}
& li.toctree-l1.current .toctree-l2 > a:hover {
background-color: #E1E4E5;
}
& li.toctree-l2.current > a,
& li.toctree-l2.current li.toctree-l3 > a {
background: #fff;
border: none;
padding-left: 50px;
}
& li.toctree-l2.current li.toctree-l3 > a.current,
& li.toctree-l2.current li.toctree-l3.current > a.internal {
padding-left: 50px !important;
color: #fdab10;
}
& li.toctree-l3.current li.toctree-l4 > a {
background: #fff;
padding-left: 65px !important;
border-right: none;
}
& li.toctree-l3.current li.toctree-l4 > a.current {
color: #fdab10;
}
}
.wy-menu-vertical a:hover,
.wy-menu-vertical > ul.current > li.toctree-l1.current > a:hover,
.wy-menu-vertical li.toctree-l1.current .toctree-l2 > a:hover,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover,
.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover {
background-color: #E1E4E5;
}
.wy-menu-vertical ul li .current > a {
padding: 11px 12px !important;
}
.wy-menu-vertical > ul.current[aria-expanded=true] > li.toctree-l1:has(a[aria-expanded=false]) > a {
padding-left: 25px;
}
.wy-menu-vertical > ul.current[aria-expanded=true] > li.toctree-l1:not(:has( ~ li:only-child a)) > a:has(.toctree-expand) {
padding-left: 25px;
}
.wy-side-scroll {
/* that makes scroll possible to the end of div */
height: 94%;
}
.wy-nav-top {
display: none;
}
.openLeftSidebarMenuButton {
width: 24px;
height: 24px;
cursor: pointer;
transition: transform 250ms linear;
}
.openLeftSidebarMenuButton:hover,
.closeLeftSidebarMenuButton:hover {
transform: scale(1.05);
}
div.wy-nav-content > div.rst-content > div:has(div.openLeftSidebarMenuButton) {
display: flex;
}
div.wy-nav-content
> div.rst-content
> div:has(div.openLeftSidebarMenuButton)
> .wy-breadcrumbs {
margin-left: 20px;
width: 100%;
}
.closeButtonDivLine {
width: 100%;
display: flex;
position: sticky;
height: 30px;
justify-content: flex-end;
}
.closeLeftSidebarMenuButton {
width: 83px;
height: 32px;
margin-right: -6px;
display: flex;
justify-content: center;
align-items: center;
background-color: #FFBF12;
border-radius: 4px;
font-family: 'Roboto', sans-serif;
font-size: 16px;
letter-spacing: -0.5px;
font-weight: 400;
color: #FFF;
cursor: pointer;
align-self: flex-end;
transition: transform 250ms linear;
&::before {
content: url('../images/close-sidebar-icon.svg');
height: 100%;
display: flex;
align-items: center;
width: 14px;
margin-right: 10px;
margin-top: 3px;
}
}
.additionalStylesForShift {
display: block !important;
padding-bottom: 10px !important;
}
.overlay {
background-color: #E7E7E7;
}
.wy-body-for-nav:has(.overlay) {
background-color: rgb(209,209,209);
}
.display_none {
display: none !important;
}
@media screen and (max-width: 575px) {
.wy-menu-vertical {
padding: 10px 0 0 0;
}
}
@media screen and (min-width: 576px) {
.wy-side-nav-search {
max-width: 256px;
}
.wy-menu-vertical {
padding: 10px 35px 0 0;
}
}
@media screen and (max-width: 767px) {
.wy-nav-side {
border-radius: 0;
position: fixed;
top: 60px;
}
.wy-side-scroll::-webkit-scrollbar {
display: none
}
}
@media screen and (min-width: 768px) {
.wy-nav-side {
border-radius: 16px;
position: fixed;
left: unset;
top: 70px;
min-height: unset;
}
}
@media screen and (max-width: 1200px) {
.wy-nav-side {
height: calc(100vh - 60px);
}
}
@media screen and (min-width: 1200px) {
.wy-nav-side {
height: calc(100vh - 73px);
}
}
@media screen and (max-height: 300px) {
.wy-side-scroll {
height: 78%;
}
}
@media screen and (min-height: 301px) and (max-height: 400px) {
.wy-side-scroll {
height: 82%;
}
}
@media screen and (min-height: 401px) and (max-height: 500px) {
.wy-side-scroll {
height: 88%;
}
}
@media screen and (min-height: 501px) and (max-height: 700px) {
.wy-side-scroll {
height: 90%;
}
}
@media screen and (min-height: 701px) {
.wy-side-scroll {
height: 94%;
}
}

57
docs/_static/css/linkButtons.css vendored Normal file
View File

@ -0,0 +1,57 @@
.rst-footer-buttons {
.fa-arrow-circle-left {
padding-left: 25px;
}
.fa-arrow-circle-left::before {
content: url('../images/arrow-left.svg');
position: absolute;
top: 10px;
left: 15px;
}
& > .btn-neutral {
background: #fff !important;
min-width: 90px;
height: 40px;
border: 2px solid #FD8F01;
color: #121010 !important;
font-family: 'Archivo', sans-serif;
font-size: 16px;
font-weight: 600;
letter-spacing: -0.02em;
position: relative;
text-align: left;
box-shadow: none;
transition: transform 250ms linear;
display: flex;
align-items: center;
padding-top: 0;
padding-bottom: 0;
border-radius: 4px;
&:hover,
&:active {
transform: scale(1.05);
/* padding-left: 16px; */
}
&:focus {
outline: none;
}
.fa-arrow-circle-right::before {
content: url('../images/arrow-right.svg');
position: absolute;
top: 10px;
right: 15px;
}
}
}
p > a.reference.external,
p > a,
#partaker-i5 > p > a.external {
color: #FD8F01;
word-break: break-word;
}

56
docs/_static/css/lists.css vendored Normal file
View File

@ -0,0 +1,56 @@
.simple > li,
.compound > ul > li,
.simple > li > ul > li,
#installation-and-image-management > div > ul > li.toctree-l1 > ul > li.toctree-l2,
#running-vyos-in-virtual-environments > div > ul > li.toctree-l1 > ul > li.toctree-l2,
#running-vyos-in-virtual-environments > div > ul > li.toctree-l1 > ul > li.toctree-l2 > ul > li.toctree-l3,
#running-vyos-in-cloud-environments > div > ul > li.toctree-l1 > ul > li.toctree-l2,
#running-vyos-in-cloud-environments > div > ul > li.toctree-l1 > ul > li.toctree-l2 > ul > li.toctree-l3,
#configuration-blueprints > div > ul > li.toctree-l1 > ul > li.toctree-l2,
#configuration-blueprints > div > ul > li.toctree-l1 > ul > li.toctree-l2 > ul > li.toctree-l3,
#contributing > div > ul > li.toctree-l1 > ul > li.toctree-l2,
#contributing > div > ul > li.toctree-l1 > ul > li.toctree-l2 > ul > li.toctree-l3 {
list-style: none !important;
position: relative;
&::before {
content: '';
position: absolute;
top: 8px;
left: -15px;
width: 6px;
height: 6px;
background-color: #000;
border-radius: 50%;
}
}
.simple > li a,
.compound > ul > li a,
.simple > li > ul > li a {
color: #FD8F01;
font-family: 'Roboto', sans-serif;
font-size: 16px;
font-weight: 400;
letter-spacing: -0.5px;
height: 26px;
}
.simple > li > ul > li p {
color: #525659;
font-family: 'Roboto', sans-serif;
font-size: 16px;
font-weight: 400;
letter-spacing: -0.5px;
height: 26px;
}
#site-to-site ul,
#troubleshooting ol,
#troubleshooting ul {
margin-bottom: 0 !important;
}
.rst-content:has(#troubleshooting) .rst-footer-buttons {
margin-top: 20px !important;
}

20
docs/_static/css/scrolls.css vendored Normal file
View File

@ -0,0 +1,20 @@
.wy-table-responsive {
scrollbar-color: #99A0A5 transparent;
scroll-behavior: smooth;
&::-webkit-scrollbar {
height: 5px;
}
&::-webkit-scrollbar-track {
background-color: transparent;
border-radius: 8px;
margin: 0 10px;
}
&::-webkit-scrollbar-thumb {
background-color: #99A0A5;
border-radius: 8px;
margin: 0 10px;
}
}

116
docs/_static/css/separate-commands.css vendored Normal file
View File

@ -0,0 +1,116 @@
.rst-content code.literal {
border: unset;
background-color: unset;
border: 1px solid rgba(253, 143, 1, 0.2);
background-color: #FFF4E6;
font-family: 'Archivo', sans-serif !important;
font-size: 14px !important;
font-weight: 500 !important;
color: #121010 !important;
border-radius: 4px;
padding: 3px 6px;
word-break: break-all;
& > span.pre:nth-child(n+ 2) {
padding-left: 5px;
}
}
div.opcmd-heading,
div.cfgcmd-heading,
table .opcmd,
table .cfgcmd {
padding: 0;
display: flex;
background-color: unset;
border: none;
border-radius: 8px 0 0 8px;
}
div.opcmd-heading,
div.cfgcmd-heading {
margin-bottom: 15px;
}
div.opcmd-heading,
table .opcmd {
border-left: 5px solid #B8E9F9;
}
div.cfgcmd-heading,
table .cfgcmd {
border-left: 5px solid #FD8F01;
}
span {
&.opcmd,
&.cfgcmd {
display: flex;
padding: 4px 8px 8px 30px;
align-items: center;
color: #121010 !important;
font-family: 'Roboto Mono', monospace !important;
letter-spacing: -0.04em !important;
font-weight: 500 !important;
position: relative;
word-break: break-all;
&::before {
content: url('../images/cmnd-link-dollar-icon.svg');
display: flex;
padding-right: 8px;
align-items: center;
position: absolute;
top: 6px;
left: 8px;
}
}
&.opcmd {
background-color: #EBF9FF;
}
&.cfgcmd {
background-color: #FFF4E6;
}
}
span.opcmd,
span.cfgcmd {
font-size: 16px !important;
}
table span.opcmd,
table span.cfgcmd {
font-size: 13px !important;
}
.opcmd-heading > a.cmdlink,
.cfgcmd-heading > a.cmdlink {
display: flex;
&::after {
display: flex;
align-items: center;
content: '';
height: 100%;
align-items: center;
padding-right: 12px;
padding-top: 3px;
border-radius: 0 8px 8px 0;
}
}
.opcmd-heading:hover a.cmdlink:after,
.cfgcmd-heading:hover a.cmdlink:after {
content: url('../images/cmnd-link-icon.svg');
padding-right: 10px;
}
.opcmd-heading a.cmdlink:after {
background-color: #EBF9FF;
}
.cfgcmd-heading a.cmdlink:after {
background-color: #FFF4E6;
}

231
docs/_static/css/tables.css vendored Normal file
View File

@ -0,0 +1,231 @@
.wy-table-responsive {
overflow : auto !important ;
width: 100%;
& table {
border: none !important;
& td {
white-space : normal !important;
}
& > caption:hover a {
position: relative;
&::after {
content: url('../images/cmnd-link-icon.svg');
position: absolute;
top: 0;
right: -3px;
z-index: 2;
background-color: #fff;
width: 20px;
height: 100%;
}
}
}
}
#coverage table.docutils td.coverage-ok p {
color: green;
text-align: center;
}
#coverage table.docutils:not(.field-list) tr:nth-child(2n-1) td.coverage-fail p,
#coverage table.docutils td.coverage-fail p {
color: red;
text-align: center;
}
#coverage a.paginate_button.current,
#coverage a.paginate_button.next,
#coverage a.paginate_button.previous {
color: #FD8F01 !important;
background-color: none;
background: none;
}
#coverage a.paginate_button {
margin-left: 0;
border: unset;
border-radius: 8px;
transition: background-color 250ms linear, color 250ms linear;
}
#coverage a.paginate_button:hover,
#coverage a.paginate_button.current:hover,
#coverage a.paginate_button.next:hover,
#coverage a.paginate_button.previous:hover {
background-color: #E1E4E5 !important;
background: none;
border: unset;
color: #121010 !important;
}
.selectDiv {
width: 20px;
height: 20px;
position: absolute;
top: 10px;
right: 10px;
z-index: 11111;
background-color: red;
}
#table-cfgcmd_wrapper,
#table-opcmd_wrapper {
& label {
color: #121010 !important;
font-family: 'Archivo', sans-serif;
font-size: 14px;
font-weight: 600;
letter-spacing: -0.02em;
}
& option {
color: #8D9499 !important;
font-family: 'Roboto', sans-serif;
font-size: 16px;
font-weight: 500;
letter-spacing: -0.02em;
}
& select {
height: 40px;
width: 80px;
padding: 10px 14px;
margin: 0 10px;
border-radius: 4px;
border: 1px solid #C6C9CC !important;
color: #8D9499;
font-size: 16px;
position: relative;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-image: url("../images/select-arrow.svg");
background-repeat: no-repeat;
background-position: right 18px top 50%;
}
& input {
margin-left: 16px;
height: 40px;
padding: 10px 14px;
width: 245px;
border: 1px solid #C6C9CC !important;
color: #8D9499;
font-size: 16px;
}
& .wy-table-responsive {
padding-top: 24px;
}
}
@media screen and (max-width: 575px) {
#table-cfgcmd_wrapper,
#table-opcmd_wrapper {
& label {
& input {
margin-top: 10px
}
}
}
}
thead tr th {
padding: 10px 16px !important;
border-top: none !important;
border-left: none !important;
border-right: none !important;
max-height: 40px;
& p {
color: #121010 !important;
font-family: 'Archivo', sans-serif;
font-size: 14px !important;
font-weight: 600;
letter-spacing: -0.02em;
margin-right: 3px;
}
}
.rst-content table.docutils td,
.wy-table-bordered-all td {
border-left: none !important;
}
.rst-content table.docutils th:nth-child(2n),
.rst-content table.field-list th:nth-child(2n),
.wy-table td, .wy-table th:nth-child(2n) {
border-radius: 8px 8px 0 0 ;
}
.wy-grid-for-nav:has(nav.display_none) .rst-content table.docutils td:nth-child(2n),
.wy-grid-for-nav:has(nav.display_none) .rst-content table.docutils th:nth-child(2n),
.wy-grid-for-nav:has(nav.display_none) .rst-content table.field-list td:nth-child(2n),
.wy-grid-for-nav:has(nav.display_none) .rst-content table.field-list th:nth-child(2n),
.wy-grid-for-nav:has(nav.display_none) .wy-table td,
.wy-grid-for-nav:has(nav.display_none) .wy-table th:nth-child(2n) {
background-color: #FAFAFA !important;
}
.wy-grid-for-nav:has(nav.shift) .wy-nav-content-wrap-closed-sidebar .rst-content table th,
.wy-grid-for-nav:has(nav.shift) .wy-nav-content-wrap-closed-sidebar .rst-content table td {
background-color: #E7E7E7 !important;
}
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,
.wy-table-backed,
.wy-table-odd td,
.wy-table-striped tr:nth-child(2n-1) td {
background-color: unset;
}
tbody tr td {
& p {
color: #525659 !important;
font-family: 'Roboto', sans-serif;
font-size: 14px !important;
font-weight: 400;
letter-spacing: -0.02em;
}
&.coverage-ok {
& p {
color: transparent !important;
width: 100%;
height: 100%;
margin: 0;
position: relative;
&::before {
content: url('../images/check.svg');
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
position: absolute;
top: 0;
}
}
}
}
.dataTables_info {
color: #121010 !important;
font-family: 'Roboto', sans-serif;
font-size: 16px !important;
font-weight: 400;
letter-spacing: -0.5px;
}
.paginate_button {
font-family: 'Archivo', sans-serif;
font-size: 16px !important;
font-weight: 600;
letter-spacing: -0.5px;
}

120
docs/_static/css/text.css vendored Normal file
View File

@ -0,0 +1,120 @@
.docutils .card-header p {
font-family: 'Archivo', sans-serif;
font-weight: 600;
font-size: 18px;
letter-spacing: -0.05em;
padding-bottom: 18px;
color: #121010;
}
p,
blockquote > div > dl,
blockquote > div > dd,
#container dl,
#firewall dl,
#high-availability dl,
#development td,
#development th,
caption.caption-text,
.simple > dt,
div.line-block,
.paginate_button,
.dataTables_info,
#operational-commands label,
.card-body .card-text,
#search-results a {
font-family: 'Roboto', sans-serif;
font-size: 16px;
letter-spacing: -0.5px;
font-weight: 400;
color: #525659;
line-height: 1.6;
}
p > strong {
color: #121010;
}
.card-body .card-text {
padding-bottom: 22px;
display: block;
}
.simple > dt {
font-weight: 600;
}
#dual-hub-dmvpn-with-vyos td > p,
#route-based-redundant-site-to-site-vpn-to-azure-bgp-over-ikev2-ipsec td > p,
#route-based-site-to-site-vpn-to-azure-bgp-over-ikev2-ipsec td > p,
#development td p,
#development th p {
font-size: 14px !important;
}
#development #writing-good-commit-messages > ul.simple > li > ul {
& > li:nth-child(2) {
padding-bottom: 23px;
}
& > li:nth-child(2) {
padding-bottom: 53px;
}
}
#installation-and-image-management > div > p > span {
font-family: 'Archivo', sans-serif;
font-weight: 700;
letter-spacing: -0.02em;
font-size: 24px;
color: #121010;
}
.caption-text {
text-align: left;
font-family: 'Roboto', sans-serif;
}
p .caption-text {
color: #8D9499;
font-family: 'Roboto', sans-serif;
}
aside.footnote .label {
& > a[role=doc-backlink] {
color: #fd8f01;
font-family: 'Roboto', sans-serif;
font-size: 16px;
}
}
aside.footnote > p {
padding-bottom: 15px !important;
}
#about a .external,
#a-note-on-copyright > dl.brackets > dt,
#a-note-on-copyright > dl.brackets > dt > .brackets > a,
a.footnote-reference.brackets,
#search-results a {
color: #FD8F01;
}
#history p {
padding-bottom: 22px;
margin-bottom: 0;
font-size: 16px;
}
#a-note-on-copyright > dl p {
padding-bottom: 12px;
}
#search-results a {
font-size: 19px;
}
#specify-custom-config-file {
padding-top: 15px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

3
docs/_static/images/arrow-left.svg vendored Normal file
View File

@ -0,0 +1,3 @@
<svg width="15" height="16" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 10.5L5.32396 10.5L10.1836 16.0076L7.93407 17.9924L-0.000432575 9L7.93406 0.0075688L10.1836 1.99243L5.32396 7.5L18 7.5L18 10.5Z" fill="#FFAE12"/>
</svg>

After

Width:  |  Height:  |  Size: 301 B

3
docs/_static/images/arrow-right.svg vendored Normal file
View File

@ -0,0 +1,3 @@
<svg width="15" height="16" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M-4.58639e-07 10.5L12.676 10.5L7.81642 16.0076L10.0659 17.9924L18.0004 9L10.0659 0.0075688L7.81642 1.99243L12.676 7.5L-3.27505e-07 7.5L-4.58639e-07 10.5Z" fill="#FFAE12"/>
</svg>

After

Width:  |  Height:  |  Size: 324 B

View File

@ -0,0 +1,3 @@
<svg width="7" height="10" viewBox="0 0 7 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1 1L5 5L1 9" stroke="#8D9499" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 160 B

3
docs/_static/images/check.svg vendored Normal file
View File

@ -0,0 +1,3 @@
<svg width="20" height="15" viewBox="0 0 20 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2 6L8 12L18 2" stroke="#FFAE12" stroke-width="3"/>
</svg>

After

Width:  |  Height:  |  Size: 164 B

View File

@ -0,0 +1,3 @@
<svg width="15" height="16" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 10.5L5.32396 10.5L10.1836 16.0076L7.93407 17.9924L-0.000432575 9L7.93406 0.0075688L10.1836 1.99243L5.32396 7.5L18 7.5L18 10.5Z" fill="#FFF"/>
</svg>

After

Width:  |  Height:  |  Size: 297 B

View File

@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.36 2.992V0.877999H4.06V2.992H3.36ZM3.36 11.686V9.46H4.06V11.686H3.36ZM3.654 10.048C3.14067 10.048 2.688 9.99667 2.296 9.894C1.904 9.782 1.57733 9.628 1.316 9.432C1.05467 9.22667 0.854 8.98867 0.714 8.718C0.583333 8.438 0.518 8.13 0.518 7.794C0.518 7.74733 0.518 7.70533 0.518 7.668C0.527333 7.63067 0.532 7.598 0.532 7.57H1.974C1.974 7.598 1.974 7.626 1.974 7.654C1.974 7.67267 1.974 7.696 1.974 7.724C1.974 8.01333 2.05333 8.24667 2.212 8.424C2.37067 8.592 2.58067 8.71333 2.842 8.788C3.11267 8.85333 3.40667 8.886 3.724 8.886C4.004 8.886 4.26067 8.85333 4.494 8.788C4.73667 8.72267 4.93267 8.62 5.082 8.48C5.24067 8.33067 5.32 8.14867 5.32 7.934C5.32 7.654 5.222 7.43933 5.026 7.29C4.83 7.14067 4.57333 7.024 4.256 6.94C3.93867 6.84667 3.60733 6.75333 3.262 6.66C2.954 6.576 2.646 6.48267 2.338 6.38C2.03933 6.27733 1.76867 6.15133 1.526 6.002C1.28333 5.84333 1.08733 5.64267 0.938 5.4C0.788667 5.148 0.714 4.84 0.714 4.476C0.714 4.13067 0.788667 3.82733 0.938 3.566C1.08733 3.30467 1.29267 3.08533 1.554 2.908C1.82467 2.73067 2.142 2.59533 2.506 2.502C2.87933 2.40867 3.28533 2.362 3.724 2.362C4.18133 2.362 4.58733 2.41333 4.942 2.516C5.29667 2.60933 5.59533 2.74933 5.838 2.936C6.09 3.11333 6.28133 3.32333 6.412 3.566C6.54267 3.80867 6.608 4.07 6.608 4.35C6.608 4.41533 6.60333 4.476 6.594 4.532C6.594 4.588 6.594 4.62533 6.594 4.644H5.166V4.518C5.166 4.33133 5.11467 4.16333 5.012 4.014C4.90933 3.86467 4.746 3.74333 4.522 3.65C4.30733 3.55667 4.018 3.51 3.654 3.51C3.41133 3.51 3.19667 3.53333 3.01 3.58C2.82333 3.61733 2.66933 3.678 2.548 3.762C2.42667 3.83667 2.33333 3.92533 2.268 4.028C2.212 4.12133 2.184 4.23333 2.184 4.364C2.184 4.57867 2.25867 4.74667 2.408 4.868C2.56667 4.98 2.772 5.078 3.024 5.162C3.276 5.23667 3.54667 5.32067 3.836 5.414C4.172 5.50733 4.51267 5.60533 4.858 5.708C5.20333 5.80133 5.52067 5.92267 5.81 6.072C6.10867 6.22133 6.34667 6.43133 6.524 6.702C6.71067 6.96333 6.804 7.30867 6.804 7.738C6.804 8.14867 6.72467 8.50333 6.566 8.802C6.40733 9.09133 6.18333 9.32933 5.894 9.516C5.614 9.70267 5.28267 9.838 4.9 9.922C4.51733 10.006 4.102 10.048 3.654 10.048Z" fill="#121010"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,3 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.2426 9.12076L10.1821 8.06026L11.2426 6.99976C11.5212 6.72118 11.7421 6.39045 11.8929 6.02646C12.0437 5.66248 12.1213 5.27236 12.1213 4.87838C12.1213 4.48441 12.0437 4.09429 11.8929 3.7303C11.7421 3.36632 11.5212 3.03559 11.2426 2.75701C10.964 2.47843 10.6333 2.25744 10.2693 2.10667C9.9053 1.95591 9.51518 1.87831 9.1212 1.87831C8.72723 1.87831 8.33711 1.95591 7.97312 2.10667C7.60914 2.25744 7.27841 2.47843 6.99983 2.75701L5.93933 3.81751L4.87883 2.75701L5.93933 1.69651C6.78556 0.863948 7.9265 0.3995 9.11361 0.404334C10.3007 0.409168 11.4378 0.882891 12.2773 1.72232C13.1167 2.56174 13.5904 3.69886 13.5953 4.88597C13.6001 6.07309 13.1356 7.21403 12.3031 8.06026L11.2426 9.12076ZM9.12083 11.2425L8.06033 12.303C7.64372 12.7265 7.14739 13.0632 6.59998 13.2939C6.05256 13.5246 5.46489 13.6446 4.87086 13.647C4.27684 13.6494 3.68821 13.5342 3.13893 13.308C2.58966 13.0818 2.0906 12.7491 1.67056 12.329C1.25051 11.909 0.917792 11.4099 0.691584 10.8607C0.465375 10.3114 0.350158 9.72275 0.352576 9.12872C0.354995 8.5347 0.475003 7.94703 0.705677 7.39961C0.936351 6.85219 1.27313 6.35587 1.69658 5.93926L2.75708 4.87876L3.81758 5.93926L2.75708 6.99976C2.47849 7.27834 2.25751 7.60907 2.10674 7.97305C1.95597 8.33704 1.87837 8.72716 1.87837 9.12113C1.87837 9.51511 1.95597 9.90523 2.10674 10.2692C2.25751 10.6332 2.47849 10.9639 2.75708 11.2425C3.03566 11.5211 3.36639 11.7421 3.73037 11.8928C4.09436 12.0436 4.48448 12.1212 4.87845 12.1212C5.27243 12.1212 5.66255 12.0436 6.02653 11.8928C6.39052 11.7421 6.72124 11.5211 6.99983 11.2425L8.06033 10.182L9.12083 11.2425ZM9.12083 3.81751L10.1821 4.87876L4.87883 10.1813L3.81758 9.12076L9.12083 3.81751Z" fill="#8D9499"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,4 @@
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="4.95605" y="4.5" width="7" height="7" rx="1.5" stroke="#FD8F01"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.456055 2C0.456055 0.895431 1.35149 0 2.45605 0H6.45605C7.56062 0 8.45605 0.895431 8.45605 2V3H7.45605V2C7.45605 1.44772 7.00834 1 6.45605 1H2.45605C1.90377 1 1.45605 1.44772 1.45605 2V6C1.45605 6.55228 1.90377 7 2.45605 7H3.45605V8H2.45605C1.35149 8 0.456055 7.10457 0.456055 6V2Z" fill="#FD8F01"/>
</svg>

After

Width:  |  Height:  |  Size: 529 B

10
docs/_static/images/github.svg vendored Normal file
View File

@ -0,0 +1,10 @@
<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17762_41)">
<path d="M3.93172 10.8809C3.75672 10.7642 3.60622 10.6155 3.43005 10.4049C3.33861 10.293 3.248 10.1804 3.15822 10.0672C2.88813 9.73174 2.7178 9.57716 2.54163 9.51358C2.39598 9.46128 2.27706 9.35327 2.21103 9.2133C2.14501 9.07333 2.1373 8.91286 2.18959 8.7672C2.24188 8.62154 2.3499 8.50262 2.48987 8.4366C2.62984 8.37058 2.79031 8.36287 2.93597 8.41516C3.37463 8.57266 3.67155 8.84391 4.07172 9.34149C4.01688 9.27324 4.27005 9.59058 4.3243 9.65591C4.43513 9.78833 4.5168 9.86883 4.58097 9.91141C4.69997 9.99133 4.92338 10.0257 5.2518 9.99308C5.26522 9.77024 5.30663 9.55383 5.36963 9.35433C3.6383 8.93083 2.6583 7.81433 2.6583 5.62333C2.6583 4.89999 2.87413 4.24899 3.27547 3.70299C3.1483 3.18149 3.16755 2.55091 3.45163 1.84099C3.48387 1.76069 3.53358 1.68856 3.59714 1.62984C3.6607 1.57112 3.73653 1.52728 3.81913 1.50149C3.86638 1.48749 3.89322 1.48108 3.94047 1.47408C4.40888 1.40233 5.07038 1.57324 5.93255 2.11341C6.44635 1.99329 6.97232 1.933 7.49997 1.93374C8.03197 1.93374 8.56047 1.99441 9.06563 2.11341C9.92722 1.56916 10.5899 1.39824 11.0618 1.47408C11.1114 1.48166 11.1534 1.49158 11.189 1.50324C11.27 1.52995 11.3441 1.57408 11.4062 1.63253C11.4683 1.69099 11.5168 1.76235 11.5483 1.84158C11.8324 2.55091 11.8516 3.18149 11.7245 3.70241C12.1276 4.24841 12.3416 4.89533 12.3416 5.62333C12.3416 7.81491 11.3651 8.92791 9.6338 9.35199C9.70672 9.59408 9.74463 9.86474 9.74463 10.157C9.74469 10.6851 9.74235 11.2132 9.73763 11.7413C9.86864 11.7699 9.9858 11.8427 10.0694 11.9476C10.153 12.0524 10.1979 12.1828 10.1966 12.3169C10.1953 12.451 10.1479 12.5805 10.0622 12.6837C9.97663 12.7869 9.85808 12.8575 9.72655 12.8835C9.06213 13.0165 8.5698 12.5732 8.5698 11.9939L8.57097 11.7337L8.57388 11.3225C8.5768 10.9095 8.57797 10.542 8.57797 10.157C8.57797 9.75041 8.47122 9.48499 8.33005 9.36366C7.94447 9.03116 8.13988 8.39824 8.64505 8.34166C10.3758 8.14741 11.175 7.47716 11.175 5.62333C11.175 5.06624 10.993 4.60599 10.6424 4.22099C10.5685 4.14005 10.5189 4.03994 10.4993 3.93213C10.4797 3.82432 10.4909 3.71317 10.5316 3.61141C10.6284 3.36991 10.6698 3.05316 10.5876 2.66991L10.5817 2.67166C10.2953 2.75274 9.93422 2.92833 9.49788 3.22524C9.42752 3.27299 9.34758 3.30478 9.26364 3.31838C9.1797 3.33199 9.09381 3.32708 9.01197 3.30399C8.51958 3.16766 8.01088 3.09917 7.49997 3.10041C6.9808 3.10041 6.4663 3.16983 5.98797 3.30458C5.90643 3.32748 5.82088 3.33235 5.73727 3.31885C5.65366 3.30535 5.57399 3.27381 5.5038 3.22641C5.06513 2.93066 4.7023 2.75566 4.41413 2.67399C4.33013 3.05491 4.37155 3.37049 4.4678 3.61141C4.50852 3.71312 4.51978 3.82424 4.50028 3.93205C4.48078 4.03985 4.43132 4.13999 4.35755 4.22099C4.0093 4.60249 3.82497 5.07149 3.82497 5.62333C3.82497 7.47366 4.62472 8.14799 6.34613 8.34166C6.85072 8.39824 7.04672 9.02824 6.66347 9.36133C6.55147 9.45933 6.41322 9.78833 6.41322 10.157V11.9945C6.41322 12.5697 5.92613 13.0007 5.26988 12.8858C5.13675 12.8624 5.01586 12.7936 4.92789 12.6909C4.83991 12.5883 4.79031 12.4583 4.78755 12.3232C4.7848 12.188 4.82906 12.0561 4.91278 11.95C4.9965 11.8439 5.11448 11.7701 5.24655 11.7413V11.1638C4.71572 11.1994 4.27705 11.1125 3.93172 10.8809Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_17762_41">
<rect width="14" height="14" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 5.3335H24M0 12.0002H24M0 18.6668H24" stroke="#FFAE12" stroke-width="3"/>
</svg>

After

Width:  |  Height:  |  Size: 188 B

5
docs/_static/images/note-icon.svg vendored Normal file
View File

@ -0,0 +1,5 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.58341 8.91675V7.75008H5.41675V8.91675H6.58341Z" fill="#356E81"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.00008 0.166748C9.22008 0.166748 11.8334 2.78008 11.8334 6.00008C11.8334 9.22008 9.22008 11.8334 6.00008 11.8334C2.78008 11.8334 0.166748 9.22008 0.166748 6.00008C0.166748 2.78008 2.78008 0.166748 6.00008 0.166748ZM6.00008 10.6667C8.57841 10.6667 10.6667 8.57841 10.6667 6.00008C10.6667 3.42175 8.57841 1.33341 6.00008 1.33341C3.42175 1.33341 1.33341 3.42175 1.33341 6.00008C1.33341 8.57841 3.42175 10.6667 6.00008 10.6667Z" fill="#356E81"/>
<path d="M5.41675 6.87508H6.58341V3.08341H5.41675V6.87508Z" fill="#356E81"/>
</svg>

After

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 111 KiB

67
docs/_static/js/codecopier.js vendored Normal file
View File

@ -0,0 +1,67 @@
const hamburgerIcon = `
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 5.3335H24M0 12.0002H24M0 18.6668H24" stroke="#FFAE12" stroke-width="3"/>
</svg>
`
const innersOfCopyDiv = `
<p>Copy</p>
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="4.95605" y="4.5" width="7" height="7" rx="1.5" stroke="#FD8F01"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.456055 2C0.456055 0.895431 1.35149 0 2.45605 0H6.45605C7.56062 0 8.45605 0.895431 8.45605 2V3H7.45605V2C7.45605 1.44772 7.00834 1 6.45605 1H2.45605C1.90377 1 1.45605 1.44772 1.45605 2V6C1.45605 6.55228 1.90377 7 2.45605 7H3.45605V8H2.45605C1.35149 8 0.456055 7.10457 0.456055 6V2Z" fill="#FD8F01"/>
</svg>
`
function formDiv(id) {
return `
<div class='copyDiv' data-identifier='${id}'>
${innersOfCopyDiv}
</div>
`
}
$(document).ready(async function () {
const codeSnippets = $(
'.rst-content div[class^=highlight] div[class^=highlight], .rst-content pre.literal-block div[class^=highlight], .rst-content pre.literal-block div[class^=highlight]'
)
codeSnippets.each((index, el) => {
el.insertAdjacentHTML('beforeend', formDiv(index))
})
const copyButton = $('.copyDiv')
copyButton.click(async ({
currentTarget
}) => {
// we obtain text and copy it
const id = currentTarget.dataset.identifier
try {
await navigator.clipboard.writeText(currentTarget.offsetParent.innerText)
} catch (error) {
console.log('Copiing text failed, please try again', {
error
})
}
// we edit the copyDiv connected to copied text
const divWithNeededId = $(`div[data-identifier='${id}']`)
divWithNeededId.addClass('copiedNotifier')
divWithNeededId.html('<span>Copied!</span>')
setTimeout(() => {
divWithNeededId.html(innersOfCopyDiv)
divWithNeededId.removeClass('copiedNotifier')
}, 2000)
})
// we edit the button that is added by readthedocs portal
const readTheDocsButton = $('div.rst-versions')
const navbar = $('nav[data-toggle=wy-nav-shift]')
navbar.append(readTheDocsButton)
});

92
docs/_static/js/footer.js vendored Normal file
View File

@ -0,0 +1,92 @@
$(document).ready(function() {
insertIframe()
const options = {
threshold: 0.01,
}
const divDoc = document.querySelector('.iframe-container')
const innerSidebar = $('.wy-side-scroll')
intersectionObserver(options, divDoc, innerSidebar)
$(window).resize(function() {
intersectionObserver(options, divDoc, innerSidebar)
})
$(window).scroll(function() {
intersectionObserver(options, divDoc, innerSidebar)
})
});
function intersectionObserver(options, divDoc, innerSidebar) {
// we delete any inline-styles from innerSidebar
if($(innerSidebar).attr('style')) {
innerSidebar.removeAttr('style')
}
const screenWidth = $(window).width()
const sidebar = $('.wy-nav-side')
const documentHeight = $(document).height()
const iframeHeight = $('.iframe-container').height()
const currentPosition = $(document).scrollTop()
const additionalPaddingFromSidebar = screenWidth > 991 ? 70 : 83
const heightThatIsAddedByPaddings = 36
const resultOfSums = documentHeight -
iframeHeight -
currentPosition -
additionalPaddingFromSidebar -
heightThatIsAddedByPaddings
const heightOfAdditionalButton = 50
const onEntry = (entries, observer) => {
entries.forEach(entry => {
if(entry.isIntersecting) {
if(resultOfSums <= 70) {
$(sidebar).hide()
return
}
$(sidebar).show()
$(sidebar).height(resultOfSums)
$(sidebar).css('margin-bottom', '20px')
$(innerSidebar).removeAttr('style')
$(innerSidebar).height(resultOfSums - heightOfAdditionalButton)
return
} else {
$(sidebar).removeAttr('style')
$(innerSidebar).removeAttr('style')
}
})
}
const observer = new IntersectionObserver(onEntry, options);
observer.observe(divDoc)
if($(innerSidebar).attr('style')) {
observer.unobserve(divDoc)
}
determineHeightOfFooterContainer()
}
function determineHeightOfFooterContainer() {
const iframeFooter= $('#vyos-footer-iframe');
const title = window.document.getElementsByTagName('title')?.[0]?.text;
const iframeContainer = $('.iframe-container')
const href = window.location.href;
window.addEventListener('message',function(message){
if(message.data.footerIframeHeight){
$(iframeFooter).css('min-height', `${message.data.footerIframeHeight + 1}px`)
$(iframeContainer).height(message.data.footerIframeHeight + 1)
iframeFooter[0].contentWindow.postMessage({title, href},'*');
}
})
}
function insertIframe() {
const body = $('.wy-body-for-nav')
body.append(divWithIframe)
}
const divWithIframe = `<div class="iframe-container">
<iframe src='https://vyos.io/iframes/footer' id='vyos-footer-iframe'></iframe>
</div>`

162
docs/_static/js/sidebar.js vendored Normal file
View File

@ -0,0 +1,162 @@
$(document).ready(function () {
removeOverlayAndCloseSidebar()
documentLoaded()
$(window).on("resize", function () {
const screenWidth = window.innerWidth
if (screenWidth <= 991) return userIsInTabletScreenWidth(screenWidth)
return removeOverlayAndButtons(screenWidth)
})
})
function removeButtons() {
const alreadyCreatedOpenButtonCheck = $('.openLeftSidebarMenuButton')
const alreadyCreatedCloseButtonCheck = $('.closeButtonDivLine')
if(alreadyCreatedOpenButtonCheck[0]) alreadyCreatedOpenButtonCheck[0].remove()
if(alreadyCreatedCloseButtonCheck[0]) alreadyCreatedCloseButtonCheck[0].remove()
}
function documentLoaded() {
const screenWidth = window.innerWidth
if (screenWidth <= 991) return userIsInTabletScreenWidth(screenWidth)
return
}
function userIsInTabletScreenWidth(screenWidth) {
const alreadyCreatedButtonCheck = $('.openLeftSidebarMenuButton')
if (alreadyCreatedButtonCheck[0]) return
createOpenSidebarButton(screenWidth)
createCloseSidebarButton(screenWidth)
removeOverlayAndCloseSidebar()
}
function createOverlay(screenWidth) {
const contentContainer = $('.wy-nav-content')
contentContainer.addClass('overlay')
const overlayDiv = `
<div class='overlayDiv' />
`
contentContainer.append(overlayDiv)
$('.wy-nav-content.overlay').on('click', onOverlayClickHandler)
}
function onOverlayClickHandler() {
removeOverlayAndCloseSidebar()
}
function removeOverlayAndCloseSidebar() {
const screenWidth = window.innerWidth
const contentContainer = $('.wy-nav-content')
contentContainer.removeClass('overlay')
const overlayDiv = $('.overlayDiv')
overlayDiv.remove()
const leftSidebarOpened = $('nav.wy-nav-side.shift')
leftSidebarOpened.removeClass('shift')
const leftSidebar = $('nav.wy-nav-side')
// that's working don't touch
if(screenWidth > 991) {
// when user is not in tablet -> we add classes on opened sidebar and remove classes on closed sidebar
const contentSection = $('section.wy-nav-content-wrap')
const contentDiv = $('div.wy-nav-content')
contentSection.addClass('wy-nav-content-wrap-opened-sidebar')
contentDiv.addClass('wy-nav-content-opened-sidebar')
contentSection.removeClass('wy-nav-content-wrap-closed-sidebar')
contentDiv.removeClass('wy-nav-content-closed-sidebar')
leftSidebar.removeClass('display_none')
return
}
if(screenWidth <= 991) {
// I add closed classes to make contentContainer 100% width
const contentSection = $('section.wy-nav-content-wrap')
const contentDiv = $('div.wy-nav-content')
contentSection.removeClass('wy-nav-content-wrap-opened-sidebar')
contentDiv.removeClass('wy-nav-content-opened-sidebar')
contentSection.addClass('wy-nav-content-wrap-closed-sidebar')
contentDiv.addClass('wy-nav-content-closed-sidebar')
leftSidebar.addClass('display_none')
}
}
function createOpenSidebarButton() {
const divToInsert = $('div[role=navigation][aria-label="Page navigation"]')
divToInsert[0].insertAdjacentHTML('afterbegin', formOpenSidebarButton())
const newlyCreatedButton = $('.openLeftSidebarMenuButton')
newlyCreatedButton.on('click', onOpenLeftSidebarMenuButtonClickHandler)
}
function onOpenLeftSidebarMenuButtonClickHandler(e) {
e.stopPropagation()
const leftSidebar = $('nav.wy-nav-side')
const leftSidebarOpened = $('nav.wy-nav-side.shift')
if(leftSidebarOpened[0]) {
// leftSidebarOpened.removeClass('shift')
removeOverlayAndCloseSidebar()
}
createOverlay()
if(leftSidebar.hasClass('display_none')) leftSidebar.removeClass('display_none')
if(leftSidebar.hasClass('.additionalStylesForShift')) leftSidebar.removeClass('.additionalStylesForShift')
// here I add classes to contentSection and contentDiv to make them margined left and remove closed classes if any
const contentSection = $('section.wy-nav-content-wrap')
const contentDiv = $('div.wy-nav-content')
// contentSection.removeClass('wy-nav-content-wrap-closed-sidebar')
// contentDiv.removeClass('wy-nav-content-closed-sidebar')
// contentSection.addClass('wy-nav-content-wrap-opened-sidebar')
// contentDiv.addClass('wy-nav-content-opened-sidebar')
return leftSidebar.addClass('shift')
}
function createCloseSidebarButton(screenWidth) {
const updatedLeftSidebarScrollDiv = $('nav.wy-nav-side')
const alreadyCreatedButtonCheck = $('div.closeLeftSidebarMenuButton')
if(alreadyCreatedButtonCheck[0]) return
updatedLeftSidebarScrollDiv[0].insertAdjacentHTML('beforeend', formCloseLeftSidebarButton())
updatedLeftSidebarScrollDiv.addClass('additionalStylesForShift')
const createdCloseSidebarButton = $('.closeButtonDivLine')
createdCloseSidebarButton.on('click', function () {
removeOverlayAndCloseSidebar()
})
}
function formOpenSidebarButton() {
return `
<div class='openLeftSidebarMenuButton'>
${hamburgerIcon}
</div>
`
}
function formCloseLeftSidebarButton() {
return `
<div class='closeButtonDivLine'>
<div class='closeLeftSidebarMenuButton'>
Close
</div>
</div>
`
}
function removeOverlayAndButtons(screenWidth) {
removeOverlayAndCloseSidebar()
removeButtons()
}

View File

@ -1,12 +1,32 @@
{% extends "!layout.html" %}
{%- set current_version = "1.5.x circinus" %}
{% block extrahead %}
<style>#vyos-header-iframe{position:fixed;top:0;left:0;right:0;z-index:999999999;width:100%;border:none}</style>
<style>#vyos-footer-iframe{width:100%;border:none}</style>
<iframe src='https://vyos.io/iframes/header' id='vyos-header-iframe'></iframe>
<script>const iframeHeader=document.getElementById('vyos-header-iframe');const postMessageToIframe=()=>{iframeHeader.contentWindow.postMessage({height:window.innerHeight,width:window.width},'*')};window.addEventListener('message',function(message){if(message.data.headerIframeHeight){iframeHeader.style.height=`${message.data.headerIframeHeight}px`;postMessageToIframe()}});window.addEventListener('resize',event=>{postMessageToIframe()})</script>
<link href="{{ pathto("_static/css/custom.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/lists.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/hints.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/headers.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/breadcrumbs.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/linkButtons.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/text.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/leftSidebar.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/scrolls.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/tables.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/installation/running-on-bare-metal.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/code-snippets.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/separate-commands.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/configuration/index.css", True) }}" rel="stylesheet" type="text/css">
<link href="{{ pathto("_static/css/datatables.css", True) }}" rel="stylesheet" type="text/css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/datatables.js", True) }}"></script>
<script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/tables.js", True) }}"></script>
{% endblock %}
{% block extrabody %}
<p class="devwarning">Warning: This is the dev version. The latest stable version is
<a href="https://docs.vyos.io/en/equuleus/">Equuleus 1.3.x</a>.</a></p>
<script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/codecopier.js", True) }}"></script>
<script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/sidebar.js", True) }}"></script>
<script type="text/javascript" charset="utf8" src="{{ pathto("_static/js/footer.js", True) }}"></script>
</script>
{% endblock %}

View File

@ -22,7 +22,7 @@ from docutils.parsers.rst.roles import set_classes
# -- Project information -----------------------------------------------------
project = u'VyOS'
copyright = u'2023, VyOS maintainers and contributors'
copyright = u'2024, VyOS maintainers and contributors'
author = u'VyOS maintainers and contributors'
# The short X.Y version
@ -192,4 +192,4 @@ texinfo_documents = [
def setup(app):
pass
pass

View File

@ -1,6 +1,6 @@
# Copyright Notice
Copyright (C) 2018-2023 VyOS maintainers and contributors
Copyright (C) 2018-2024 VyOS maintainers and contributors
Permission is granted to make and distribute verbatim copies of this manual
provided the copyright notice and this permission notice are preserved on all