diff --git a/_static/css/furo-phoenix.css b/_static/css/furo-phoenix.css index a548cca2..d3e4e357 100644 --- a/_static/css/furo-phoenix.css +++ b/_static/css/furo-phoenix.css @@ -148,13 +148,115 @@ img { border-right: none !important; box-sizing: border-box; display: flex; - justify-content: flex-start !important; - width: 17em !important + justify-content: flex-end; + flex-direction: column !important; + height: 100vh !important; + width: 17em !important; + position: fixed !important } .sidebar-container { box-sizing: border-box; - width: 17em !important + width: inherit !important; + overflow-y: auto !important; + flex-grow: 1 !important +} + +.sidebar-sticky { + height: 100% !important +} + +.version-container.shift-up { + width: inherit !important; + border-top: 2px solid #c2cbcb !important; + background-color: #f1f3f3 !important; + font-family: 'Open Sans', sans-serif !important; + font-weight: 600 !important; + color: var(--color-sidebar-link-text--top-level) !important +} + +.version-container { + width: inherit !important; + border-top: 2px solid #c2cbcb !important; + background-color: #f1f3f3 !important; + font-family: 'Open Sans', sans-serif !important; + font-weight: 600 !important; + color: var(--color-sidebar-link-text--top-level) !important +} + +.default-version { + display: flex !important; + justify-content: space-between !important; + cursor: pointer !important +} + +.default-version:hover { + background-color: #ea5b22 !important; + color: white !important +} + +.default-version > label { + display: flex !important; + align-items: center !important; + justify-content: center !important; + cursor: pointer !important; + width: var(--sidebar-expander-width) !important; + height: var(--sidebar-item-height) !important +} + +.version-top { + flex: 1 !important; + display: flex !important; + justify-content: space-between !important; + align-items: center !important; + padding-left: 10px !important +} + +.version-container.shift-up > .default-version label > .icon > svg { + transform: rotate(-90deg) !important +} + +.default-version label > .icon > svg { + transform: rotate(90deg) !important +} + +.version-container.shift-up .other-versions { + margin-right: 10px !important; + margin-left: 10px !important; + box-sizing: border-box !important; + display: block !important +} + +.other-versions { + margin-right: 10px !important; + margin-left: 10px !important; + box-sizing: border-box !important; + display: none !important +} + +.other-versions > dl { + margin-top: 7px !important +} + +.other-versions > dl > dd { + display: inline-block !important; + margin: 0 !important; + padding: 5px !important +} + +.other-versions > dl > dd > a { + text-decoration: none !important; + font-weight: 500 !important; + color: var(--color-sidebar-link-text--top-level) !important +} + +.other-versions > dl > dd > a:hover { + font-weight: 500 !important; + color: #ea5b22 !important +} + +.main { + margin-left: 17em !important } /* Hide sidebar brand text */ diff --git a/_static/js/versions.js b/_static/js/versions.js new file mode 100644 index 00000000..f8eb88c6 --- /dev/null +++ b/_static/js/versions.js @@ -0,0 +1,27 @@ +const curr_version = document.querySelector('.curr-version'); +const currentPath = window.location.pathname; +const pathSegments = currentPath.split('/').filter(segment => segment !== ''); +const firstItem = pathSegments[0] || null; + +if (firstItem !== null) { + curr_version.textContent = 'v: ' + firstItem; +} +else { + curr_version.textContent = 'None'; +} + +const versions = document.querySelector('.other-versions'); + +versions.querySelectorAll('a').forEach(anchor => { + anchor.addEventListener('click', function() { + baseTag.href = 'https://docs.phoenix-rtos.com/' + anchor.textContent + '/'; + }); +}); + +const triggerElement = document.querySelector('.default-version'); +const versionContainer = document.querySelector('.version-container'); +const sidebarContainer = document.querySelector('.sidebar-container'); + +triggerElement.addEventListener('click', function() { + versionContainer.classList.toggle('shift-up'); +}); diff --git a/_templates/page.html b/_templates/page.html index b338caba..8e51ce77 100644 --- a/_templates/page.html +++ b/_templates/page.html @@ -57,6 +57,7 @@ {% endblock left_sidebar %} + {% include "versions.html" %}
diff --git a/_templates/versions.html b/_templates/versions.html new file mode 100644 index 00000000..5da47d1b --- /dev/null +++ b/_templates/versions.html @@ -0,0 +1,19 @@ +
+
+ + Phoenix-RTOS + v: latest + + +
+
+
+ Document Release Versions: + {% for name, url in versions %} +
{{ name }}
+ {% endfor %} +
+
+
diff --git a/conf.py b/conf.py index 8be6429a..bc3342e2 100644 --- a/conf.py +++ b/conf.py @@ -29,9 +29,19 @@ html_title = 'Phoenix-RTOS Documentation' html_favicon = '_images/RTOS_sign.png' html_theme = 'furo' -html_js_files = ['js/functions.js'] +html_js_files = ['js/functions.js', 'js/versions.js'] html_style = ['css/furo-phoenix.css', 'css/furo-extensions-phoenix.css'] html_static_path = ['_static', '_images'] +html_baseurl = "https://docs.phoenix-rtos.com/latest/" +html_context = { +"versions": ( + ("latest", "/"), + ("1.0.0", "/1.0.0/"), + ("1.0.1", "/1.0.1/"), + ("1.0.2", "/1.0.2/"), + ) +} + # TODO: add dark mode support html_theme_options = { "light_logo": "light_logo.png",