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"