codes.html 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. {{ $id := substr (md5 .Inner) 0 16 }}
  2. <div id="{{ $id }}" class="codetab">
  3. <div class="codetab__links">
  4. {{ range .Params }}
  5. <button class="codetab__link" aria-label="Tab link">{{ . }}</button>
  6. {{ end }}
  7. </div>
  8. {{ .Inner }}
  9. </div>
  10. <script>
  11. 'use strict';
  12. var containerId = JSON.parse({{ $id | jsonify }});
  13. var containerElem = document.getElementById(containerId);
  14. var codetabLinks = null;
  15. var codetabContents = null;
  16. var ids = [];
  17. if (containerElem) {
  18. codetabLinks = containerElem.querySelectorAll('.codetab__link');
  19. codetabContents = containerElem.querySelectorAll('.codetab__content');
  20. }
  21. for (var i = 0; i < codetabContents.length; i++) {
  22. ids = ids.concat(codetabContents[i].getAttribute('id'));
  23. codetabContents[i].style.display = 'none';
  24. if (0 === parseInt(i, 10) && !codetabContents[i].classList.contains('active')) {
  25. codetabContents[i].classList.add('active');
  26. }
  27. }
  28. for (var i = 0; i < codetabLinks.length; i++) {
  29. codetabLinks[i].setAttribute('id', ids[i]);
  30. if (0 === parseInt(i, 10) && !codetabLinks[i].classList.contains('active')) {
  31. codetabLinks[i].classList.add('active');
  32. } else {
  33. codetabLinks[i].classList.remove('active');
  34. }
  35. }
  36. if (codetabContents.length > 0) {
  37. codetabContents[0].style.display = 'block';
  38. }
  39. </script>