| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | 
							- <!-- Include Thebelab for interactive code if it's enabled -->
 
- {% if site.use_thebelab_button %}
 
- <!-- Display Thebelab button in each code cell -->
 
- {% include js/thebelab-cell-button.html %}
 
- <script type="text/x-thebe-config">
 
-     {
 
-       requestKernel: true,
 
-       binderOptions: {
 
-         repo: '{{ site.binder_repo_org }}/{{ site.binder_repo_name }}',
 
-         ref: '{{ site.binder_repo_branch }}',
 
-       },
 
-       codeMirrorConfig: {
 
-         theme: "{{ site.codemirror_theme }}"
 
-       },
 
-       kernelOptions: {
 
-         name: '{% if page.kernel_name %}{{ page.kernel_name }}{% else %}python3{% endif %}',
 
-       }
 
-     }
 
- </script>
 
- <script src="https://unpkg.com/thebelab@0.4.0/lib/index.js" async></script>
 
- <script>
 
-     /**
 
-      * Add attributes to Thebelab blocks
 
-      */
 
-     const initThebelab = () => {
 
-         const addThebelabToCodeCells = () => {
 
-             console.log("Adding thebelab to code cells...");
 
-             // If Thebelab hasn't loaded, wait a bit and try again. This
 
-             // happens because we load ClipboardJS asynchronously.
 
-             if (window.thebelab === undefined) {
 
-                 setTimeout(addThebelabToCodeCells, 250)
 
-             return
 
-             }
 
-             // If we already detect a Thebelab cell, don't re-run
 
-             if (document.querySelectorAll('div.thebelab-cell').length > 0) {
 
-                 return;
 
-             }
 
-             // Find all code cells, replace with Thebelab interactive code cells
 
-             const codeCells = document.querySelectorAll('.input_area pre')
 
-             codeCells.forEach((codeCell, index) => {
 
-                 const id = codeCellId(index)
 
-                 codeCell.setAttribute('data-executable', 'true')
 
-                 // Figure out the language it uses and add this too
 
-                 var parentDiv = codeCell.parentElement.parentElement;
 
-                 var arrayLength = parentDiv.classList.length;
 
-                 for (var ii = 0; ii < arrayLength; ii++) {
 
-                     var parts = parentDiv.classList[ii].split('language-');
 
-                     if (parts.length === 2) {
 
-                         // If found, assign dataLanguage and break the loop
 
-                         var dataLanguage = parts[1];
 
-                         break;
 
-                     }
 
-                 }
 
-                 codeCell.setAttribute('data-language', dataLanguage)
 
-                 // If the code cell is hidden, show it
 
-                 var inputCheckbox = document.querySelector(`input#hidebtn${codeCell.id}`);
 
-                 if (inputCheckbox !== null) {
 
-                     setCodeCellVisibility(inputCheckbox, 'visible');
 
-                 }
 
-             });
 
-             // Remove the event listener from the page so keyboard press doesn't
 
-             // Change page
 
-             document.removeEventListener('keydown', initPageNav)
 
-             keyboardListener = false;
 
-             // Init thebelab
 
-             thebelab.bootstrap();
 
-             // Remove copy buttons since they won't work anymore
 
-             const copyAndThebeButtons = document.querySelectorAll('.copybtn, .thebebtn')
 
-             copyAndThebeButtons.forEach((button, index) => {
 
-                 button.remove();
 
-             });
 
-             // Remove outputs since they'll be stale
 
-             const outputs = document.querySelectorAll('.output *, .output')
 
-             outputs.forEach((output, index) => {
 
-                 output.remove();
 
-             });
 
-             // Find any cells with an initialization tag and ask ThebeLab to run them when ready
 
-             var thebeInitCells = document.querySelectorAll('div.tag_thebelab-init');
 
-             thebeInitCells.forEach((cell) => {
 
-                 console.log("Initializing ThebeLab with cell: " + cell.id);
 
-                 cell.querySelector('.thebelab-run-button').click();
 
-             });
 
-         }
 
-         // Add event listener for the function to modify code cells
 
-         const thebelabButtons = document.querySelectorAll('[id^=thebelab], [id$=thebelab]')
 
-         thebelabButtons.forEach((thebelabButton,index) => {
 
-             if (thebelabButton === null) {
 
-                 setTimeout(initThebelab, 250)
 
-                 return
 
-             };
 
-             thebelabButton.addEventListener('click', addThebelabToCodeCells);
 
-         });
 
-     }
 
-     // Initialize Thebelab
 
-     initFunction(initThebelab);
 
- </script>
 
- {% endif %}
 
 
  |