aboutsummaryrefslogtreecommitdiff
path: root/templates/partials/doc
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-01-31 11:54:22 +0100
committerAlex Auvolat <alex@adnab.me>2022-01-31 11:54:22 +0100
commit937245b202c200e1405209c59893d459b2194d2f (patch)
tree38dc667fb81be27b3b21e5cfccbf36d5fbc8fefd /templates/partials/doc
parent4dde9b0855ad8edf5eef72036ee788aeeb5cd775 (diff)
parente5beba07d6b9e102cc28c7474b9db0ae11ec3c79 (diff)
downloadgaragehq.deuxfleurs.fr-937245b202c200e1405209c59893d459b2194d2f.tar.gz
garagehq.deuxfleurs.fr-937245b202c200e1405209c59893d459b2194d2f.zip
Merge branch 'master' of git.deuxfleurs.fr:sptl/garage_website
Diffstat (limited to 'templates/partials/doc')
-rw-r--r--templates/partials/doc/global_toc.html18
-rw-r--r--templates/partials/doc/page_toc.html6
-rw-r--r--templates/partials/doc/toc_script.html25
3 files changed, 41 insertions, 8 deletions
diff --git a/templates/partials/doc/global_toc.html b/templates/partials/doc/global_toc.html
index ebad287..f739f49 100644
--- a/templates/partials/doc/global_toc.html
+++ b/templates/partials/doc/global_toc.html
@@ -1,8 +1,20 @@
-<aside id="global_toc" class="col-span-1 h-max bg-gray-100 shadow-inner border-r border-t border-gray-200">
+<aside id="global_toc" class="relative col-span-1 h-full bg-gray-100 shadow-inner border-r border-t border-gray-200">
{% if section.subsections %}
- <ul class="space-y-2 py-0.5 px-6 py-3 list-none">
+ <ul id="main-toc-menu" class="space-y-2 px-6 py-3 list-none">
+
+ {% if section.pages %}
+ {% for page in section.pages %}
+ <a
+ href="{{ page.permalink | safe }}"
+ class="docPage block pl-2 py-1 border-l rounded-r border-garage-orange hover:bg-garage-orange hover:bg-opacity-20
+ {% if current_path == page.path %} activePage border-l-4 text-garage-orange font-semibold border-opacity-100 border-garage-orange {% endif %}">
+ {{ page.title }}
+ </a>
+ {% endfor %}
+ {% endif %}
+
{% for subsec in section.subsections %}
- {% set h1 = get_section(path=subsec) %}
+ {% set h1 = get_section(path=subsec) %}
<li class="relative">
<a
href="{{ h1.permalink | safe }}"
diff --git a/templates/partials/doc/page_toc.html b/templates/partials/doc/page_toc.html
index 172e0ce..238d8c3 100644
--- a/templates/partials/doc/page_toc.html
+++ b/templates/partials/doc/page_toc.html
@@ -1,12 +1,12 @@
-<aside class="hidden 2xl:block fixed right-0 bottom-1/2 transform translate-y-1/2 col-span-1 h-auto bg-gray-100 rounded-l-lg shadow-inner">
+<aside class="hidden 2xl:block fixed right-0 bottom-1/2 transform translate-y-1/2 w-80 col-span-1 h-auto bg-gray-100 rounded-l-lg shadow-inner">
{% if page.toc %}
<div class="w-full flex items-center justify-center py-1.5 bg-gray-200 rounded-tl-lg">
<span class="uppercase tracking-wide text-xs text-garage-gray">Page content</span>
</div>
- <ol class="text-sm space-y-0.5 py-0.5 px-8 py-3 list-decimal">
+ <ol class="text-sm space-y-0.5 px-8 py-3 list-decimal">
{% for h1 in page.toc %}
<li>
- <a href="{{ h1.permalink | safe }}" class="font-semibold bg-gradient-to-r from-garage-gray to-garage-orange text-transparent bg-clip-text transition-all hover:text-garage-orange">{{ h1.title }}</a>
+ <a href="{{ h1.permalink | safe }}" class="font-semibold text-gray-800 transition-all hover:text-garage-orange">{{ h1.title }}</a>
{% if h1.children %}
<ul class="space-y-0.5 py-0.5">
{% for h2 in h1.children %}
diff --git a/templates/partials/doc/toc_script.html b/templates/partials/doc/toc_script.html
index a858c94..1453a69 100644
--- a/templates/partials/doc/toc_script.html
+++ b/templates/partials/doc/toc_script.html
@@ -1,9 +1,31 @@
-<script type="text/javascript">
+<script>
const menuBarHeight = document.querySelector("nav.navbar").clientHeight;
+const mainTocMenuWidth = document.getElementById('main-toc-menu').clientWidth;
const tocItems = document.querySelectorAll(".toc");
const navSections = new Array(tocItems.length);
+ // Global ToC
+/*
+ Fixed ToC when user scrolls.
+*/
+
+window.addEventListener('scroll', function() {
+ if (window.screen.width >= 1280) {
+ if (window.scrollY >= menuBarHeight) {
+ document.getElementById('main-toc-menu').classList.add('fixed', 'top-0', 'left-0');
+ document.getElementById('main-toc-menu').style.width = mainTocMenuWidth + 'px';
+ } else {
+ document.getElementById('main-toc-menu').classList.remove('fixed', 'top-0', 'left-0');
+ }
+ }
+});
+
+// Page content
+/*
+ Focus effect on current section anchor when user scrolls.
+*/
+
tocItems.forEach((el, i) => {
let id = el.getAttribute("id").substring(5);
navSections[i] = document.getElementById(id);
@@ -42,7 +64,6 @@ window.addEventListener('scroll', () => {
}
}, false);
-// If JS enabled, deploy only the current doc menu
document.addEventListener("DOMContentLoaded", function() {
var menusTriggers = document.getElementsByClassName("deploySubMenu");
var activeDocPage = document.getElementsByClassName("activePage")[0];