Module: Asciidoctor::Html::Sidebar
- Defined in:
- lib/asciidoctor/html/sidebar.rb
Overview
Toggle behaviour of sidebar
Constant Summary collapse
- TOGGLE =
"(function() {\n const page = document.getElementById('page');\n const sidebar = document.getElementById('sidebar');\n const dismissBtn = document.getElementById('sidebar-dismiss-btn');\n function hideSidebar() {\n sidebar && sidebar.classList.remove('shown');\n page.classList.remove('noscroll');\n }\n\n // Sidebar should be hidden on any local link click\n document.querySelectorAll('a[href^=\"#\"]').forEach(el => {\n el.addEventListener('click', hideSidebar);\n });\n addEventListener('resize', hideSidebar);\n dismissBtn && dismissBtn.addEventListener('click', hideSidebar);\n\n const menuBtn = document.getElementById('menu-btn');\n if(!menuBtn) return;\n\n // Nudge menuBtn in case there is a scrollbar\n const main = document.getElementById('main');\n const scrollbarWidth = page.offsetWidth - main.offsetWidth;\n menuBtn.style.right = (scrollbarWidth + 12) + 'px';\n\n // Add click listener to toggle sidebar\n menuBtn.addEventListener('click', function() {\n sidebar && sidebar.classList.toggle('shown');\n if(scrollbarWidth > 0) page.classList.toggle('noscroll');\n });\n})();\n"