mirror of
				https://github.com/kidwellj/hacking_religion_textbook.git
				synced 2025-10-31 10:24:10 +00:00 
			
		
		
		
	added gh pages to docs
This commit is contained in:
		
							parent
							
								
									e2b89046cc
								
							
						
					
					
						commit
						432c0c85d0
					
				
					 28 changed files with 8803 additions and 0 deletions
				
			
		
							
								
								
									
										7
									
								
								hacking_religion/docs/site_libs/quarto-nav/headroom.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								hacking_religion/docs/site_libs/quarto-nav/headroom.min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| /*! | ||||
|  * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it | ||||
|  * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js
 | ||||
|  * License: MIT | ||||
|  */ | ||||
| 
 | ||||
| !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=l<t?"down":"up",a.distance=Math.abs(t-l),a.isOutOfBounds=t<0||o<t+n,a.top=t<=s.offset[a.direction],a.bottom=o<=t+n,a.toleranceExceeded=a.distance>s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s}); | ||||
							
								
								
									
										277
									
								
								hacking_religion/docs/site_libs/quarto-nav/quarto-nav.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										277
									
								
								hacking_religion/docs/site_libs/quarto-nav/quarto-nav.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,277 @@ | |||
| const headroomChanged = new CustomEvent("quarto-hrChanged", { | ||||
|   detail: {}, | ||||
|   bubbles: true, | ||||
|   cancelable: false, | ||||
|   composed: false, | ||||
| }); | ||||
| 
 | ||||
| window.document.addEventListener("DOMContentLoaded", function () { | ||||
|   let init = false; | ||||
| 
 | ||||
|   // Manage the back to top button, if one is present.
 | ||||
|   let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop; | ||||
|   const scrollDownBuffer = 5; | ||||
|   const scrollUpBuffer = 35; | ||||
|   const btn = document.getElementById("quarto-back-to-top"); | ||||
|   const hideBackToTop = () => { | ||||
|     btn.style.display = "none"; | ||||
|   }; | ||||
|   const showBackToTop = () => { | ||||
|     btn.style.display = "inline-block"; | ||||
|   }; | ||||
|   if (btn) { | ||||
|     window.document.addEventListener( | ||||
|       "scroll", | ||||
|       function () { | ||||
|         const currentScrollTop = | ||||
|           window.pageYOffset || document.documentElement.scrollTop; | ||||
| 
 | ||||
|         // Shows and hides the button 'intelligently' as the user scrolls
 | ||||
|         if (currentScrollTop - scrollDownBuffer > lastScrollTop) { | ||||
|           hideBackToTop(); | ||||
|           lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; | ||||
|         } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) { | ||||
|           showBackToTop(); | ||||
|           lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; | ||||
|         } | ||||
| 
 | ||||
|         // Show the button at the bottom, hides it at the top
 | ||||
|         if (currentScrollTop <= 0) { | ||||
|           hideBackToTop(); | ||||
|         } else if ( | ||||
|           window.innerHeight + currentScrollTop >= | ||||
|           document.body.offsetHeight | ||||
|         ) { | ||||
|           showBackToTop(); | ||||
|         } | ||||
|       }, | ||||
|       false | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   function throttle(func, wait) { | ||||
|     var timeout; | ||||
|     return function () { | ||||
|       const context = this; | ||||
|       const args = arguments; | ||||
|       const later = function () { | ||||
|         clearTimeout(timeout); | ||||
|         timeout = null; | ||||
|         func.apply(context, args); | ||||
|       }; | ||||
| 
 | ||||
|       if (!timeout) { | ||||
|         timeout = setTimeout(later, wait); | ||||
|       } | ||||
|     }; | ||||
|   } | ||||
| 
 | ||||
|   function headerOffset() { | ||||
|     // Set an offset if there is are fixed top navbar
 | ||||
|     const headerEl = window.document.querySelector("header.fixed-top"); | ||||
|     if (headerEl) { | ||||
|       return headerEl.clientHeight; | ||||
|     } else { | ||||
|       return 0; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   function footerOffset() { | ||||
|     const footerEl = window.document.querySelector("footer.footer"); | ||||
|     if (footerEl) { | ||||
|       return footerEl.clientHeight; | ||||
|     } else { | ||||
|       return 0; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   function updateDocumentOffsetWithoutAnimation() { | ||||
|     updateDocumentOffset(false); | ||||
|   } | ||||
| 
 | ||||
|   function updateDocumentOffset(animated) { | ||||
|     // set body offset
 | ||||
|     const topOffset = headerOffset(); | ||||
|     const bodyOffset = topOffset + footerOffset(); | ||||
|     const bodyEl = window.document.body; | ||||
|     bodyEl.setAttribute("data-bs-offset", topOffset); | ||||
|     bodyEl.style.paddingTop = topOffset + "px"; | ||||
| 
 | ||||
|     // deal with sidebar offsets
 | ||||
|     const sidebars = window.document.querySelectorAll( | ||||
|       ".sidebar, .headroom-target" | ||||
|     ); | ||||
|     sidebars.forEach((sidebar) => { | ||||
|       if (!animated) { | ||||
|         sidebar.classList.add("notransition"); | ||||
|         // Remove the no transition class after the animation has time to complete
 | ||||
|         setTimeout(function () { | ||||
|           sidebar.classList.remove("notransition"); | ||||
|         }, 201); | ||||
|       } | ||||
| 
 | ||||
|       if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) { | ||||
|         sidebar.style.top = "0"; | ||||
|         sidebar.style.maxHeight = "100vh"; | ||||
|       } else { | ||||
|         sidebar.style.top = topOffset + "px"; | ||||
|         sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)"; | ||||
|       } | ||||
|     }); | ||||
| 
 | ||||
|     // allow space for footer
 | ||||
|     const mainContainer = window.document.querySelector(".quarto-container"); | ||||
|     if (mainContainer) { | ||||
|       mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)"; | ||||
|     } | ||||
| 
 | ||||
|     // link offset
 | ||||
|     let linkStyle = window.document.querySelector("#quarto-target-style"); | ||||
|     if (!linkStyle) { | ||||
|       linkStyle = window.document.createElement("style"); | ||||
|       linkStyle.setAttribute("id", "quarto-target-style"); | ||||
|       window.document.head.appendChild(linkStyle); | ||||
|     } | ||||
|     while (linkStyle.firstChild) { | ||||
|       linkStyle.removeChild(linkStyle.firstChild); | ||||
|     } | ||||
|     if (topOffset > 0) { | ||||
|       linkStyle.appendChild( | ||||
|         window.document.createTextNode(` | ||||
|       section:target::before { | ||||
|         content: ""; | ||||
|         display: block; | ||||
|         height: ${topOffset}px; | ||||
|         margin: -${topOffset}px 0 0; | ||||
|       }`)
 | ||||
|       ); | ||||
|     } | ||||
|     if (init) { | ||||
|       window.dispatchEvent(headroomChanged); | ||||
|     } | ||||
|     init = true; | ||||
|   } | ||||
| 
 | ||||
|   // initialize headroom
 | ||||
|   var header = window.document.querySelector("#quarto-header"); | ||||
|   if (header && window.Headroom) { | ||||
|     const headroom = new window.Headroom(header, { | ||||
|       tolerance: 5, | ||||
|       onPin: function () { | ||||
|         const sidebars = window.document.querySelectorAll( | ||||
|           ".sidebar, .headroom-target" | ||||
|         ); | ||||
|         sidebars.forEach((sidebar) => { | ||||
|           sidebar.classList.remove("sidebar-unpinned"); | ||||
|         }); | ||||
|         updateDocumentOffset(); | ||||
|       }, | ||||
|       onUnpin: function () { | ||||
|         const sidebars = window.document.querySelectorAll( | ||||
|           ".sidebar, .headroom-target" | ||||
|         ); | ||||
|         sidebars.forEach((sidebar) => { | ||||
|           sidebar.classList.add("sidebar-unpinned"); | ||||
|         }); | ||||
|         updateDocumentOffset(); | ||||
|       }, | ||||
|     }); | ||||
|     headroom.init(); | ||||
| 
 | ||||
|     let frozen = false; | ||||
|     window.quartoToggleHeadroom = function () { | ||||
|       if (frozen) { | ||||
|         headroom.unfreeze(); | ||||
|         frozen = false; | ||||
|       } else { | ||||
|         headroom.freeze(); | ||||
|         frozen = true; | ||||
|       } | ||||
|     }; | ||||
|   } | ||||
| 
 | ||||
|   window.addEventListener( | ||||
|     "hashchange", | ||||
|     function (e) { | ||||
|       if ( | ||||
|         getComputedStyle(document.documentElement).scrollBehavior !== "smooth" | ||||
|       ) { | ||||
|         window.scrollTo(0, window.pageYOffset - headerOffset()); | ||||
|       } | ||||
|     }, | ||||
|     false | ||||
|   ); | ||||
| 
 | ||||
|   // Observe size changed for the header
 | ||||
|   const headerEl = window.document.querySelector("header.fixed-top"); | ||||
|   if (headerEl && window.ResizeObserver) { | ||||
|     const observer = new window.ResizeObserver( | ||||
|       updateDocumentOffsetWithoutAnimation | ||||
|     ); | ||||
|     observer.observe(headerEl, { | ||||
|       attributes: true, | ||||
|       childList: true, | ||||
|       characterData: true, | ||||
|     }); | ||||
|   } else { | ||||
|     window.addEventListener( | ||||
|       "resize", | ||||
|       throttle(updateDocumentOffsetWithoutAnimation, 50) | ||||
|     ); | ||||
|   } | ||||
|   setTimeout(updateDocumentOffsetWithoutAnimation, 250); | ||||
| 
 | ||||
|   // fixup index.html links if we aren't on the filesystem
 | ||||
|   if (window.location.protocol !== "file:") { | ||||
|     const links = window.document.querySelectorAll("a"); | ||||
|     for (let i = 0; i < links.length; i++) { | ||||
|       if (links[i].href) { | ||||
|         links[i].href = links[i].href.replace(/\/index\.html/, "/"); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     // Fixup any sharing links that require urls
 | ||||
|     // Append url to any sharing urls
 | ||||
|     const sharingLinks = window.document.querySelectorAll( | ||||
|       "a.sidebar-tools-main-item" | ||||
|     ); | ||||
|     for (let i = 0; i < sharingLinks.length; i++) { | ||||
|       const sharingLink = sharingLinks[i]; | ||||
|       const href = sharingLink.getAttribute("href"); | ||||
|       if (href) { | ||||
|         sharingLink.setAttribute( | ||||
|           "href", | ||||
|           href.replace("|url|", window.location.href) | ||||
|         ); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     // Scroll the active navigation item into view, if necessary
 | ||||
|     const navSidebar = window.document.querySelector("nav#quarto-sidebar"); | ||||
|     if (navSidebar) { | ||||
|       // Find the active item
 | ||||
|       const activeItem = navSidebar.querySelector("li.sidebar-item a.active"); | ||||
|       if (activeItem) { | ||||
|         // Wait for the scroll height and height to resolve by observing size changes on the
 | ||||
|         // nav element that is scrollable
 | ||||
|         const resizeObserver = new ResizeObserver((_entries) => { | ||||
|           // The bottom of the element
 | ||||
|           const elBottom = activeItem.offsetTop; | ||||
|           const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight; | ||||
| 
 | ||||
|           // The element height and scroll height are the same, then we are still loading
 | ||||
|           if (viewBottom !== navSidebar.scrollHeight) { | ||||
|             // Determine if the item isn't visible and scroll to it
 | ||||
|             if (elBottom >= viewBottom) { | ||||
|               navSidebar.scrollTop = elBottom; | ||||
|             } | ||||
| 
 | ||||
|             // stop observing now since we've completed the scroll
 | ||||
|             resizeObserver.unobserve(navSidebar); | ||||
|           } | ||||
|         }); | ||||
|         resizeObserver.observe(navSidebar); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| }); | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue