12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- window.jazzy = {'docset': false}
- if (typeof window.dash != 'undefined') {
- document.documentElement.className += ' dash'
- window.jazzy.docset = true
- }
- if (navigator.userAgent.match(/xcode/i)) {
- document.documentElement.className += ' xcode'
- window.jazzy.docset = true
- }
- function toggleItem($link, $content) {
- var animationDuration = 300;
- $link.toggleClass('token-open');
- $content.slideToggle(animationDuration);
- }
- function itemLinkToContent($link) {
- return $link.parent().parent().next();
- }
- // On doc load + hash-change, open any targetted item
- function openCurrentItemIfClosed() {
- if (window.jazzy.docset) {
- return;
- }
- var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token');
- $content = itemLinkToContent($link);
- if ($content.is(':hidden')) {
- toggleItem($link, $content);
- }
- }
- $(openCurrentItemIfClosed);
- $(window).on('hashchange', openCurrentItemIfClosed);
- // On item link ('token') click, toggle its discussion
- $('.token').on('click', function(event) {
- if (window.jazzy.docset) {
- return;
- }
- var $link = $(this);
- toggleItem($link, itemLinkToContent($link));
- // Keeps the document from jumping to the hash.
- var href = $link.attr('href');
- if (history.pushState) {
- history.pushState({}, '', href);
- } else {
- location.hash = href;
- }
- event.preventDefault();
- });
- // Clicks on links to the current, closed, item need to open the item
- $("a:not('.token')").on('click', function() {
- if (location == this.href) {
- openCurrentItemIfClosed();
- }
- });
- // KaTeX rendering
- if ("katex" in window) {
- $($('.math').each( (_, element) => {
- katex.render(element.textContent, element, {
- displayMode: $(element).hasClass('m-block'),
- throwOnError: false,
- trust: true
- });
- }))
- }
|