datalog-theme 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +63 -0
- data/CITATION.cff +2 -2
- data/README.md +4 -2
- data/_data/i18n/en.yml +297 -0
- data/_data/i18n/es.yml +297 -0
- data/_data/i18n/pt.yml +297 -0
- data/_data/js_manifest.json +16 -0
- data/_includes/components/author-bio.html +21 -11
- data/_includes/components/author-list.html +32 -0
- data/_includes/components/citation-tools.html +33 -25
- data/_includes/components/comments-thread.html +90 -0
- data/_includes/components/contact-form.html +120 -0
- data/_includes/components/correction-report.html +82 -0
- data/_includes/components/enhanced-toc.html +6 -7
- data/_includes/components/license-link.html +13 -0
- data/_includes/components/license-notice.html +28 -0
- data/_includes/components/moderation-inbox.html +139 -0
- data/_includes/components/reactions.html +49 -0
- data/_includes/components/reading-list.html +31 -0
- data/_includes/components/reading-mode-toggle.html +65 -0
- data/_includes/components/reading-state-bookmark.html +27 -0
- data/_includes/components/reading-state-panel.html +71 -0
- data/_includes/components/reproducibility.html +61 -0
- data/_includes/components/responsive-image.html +3 -3
- data/_includes/components/revision-history.html +39 -0
- data/_includes/components/revision-notice.html +35 -0
- data/_includes/components/series-nav.html +64 -0
- data/_includes/components/subscribe-form.html +88 -0
- data/_includes/components/subscription-manage.html +68 -0
- data/_includes/components/webmentions.html +48 -0
- data/_includes/csp-meta.html +21 -1
- data/_includes/footer.html +3 -0
- data/_includes/head.html +51 -40
- data/_includes/layouts/default/article.html +4 -6
- data/_includes/meta/dynamic-services-config.html +14 -0
- data/_includes/meta/math-config.html +9 -5
- data/_includes/meta/person-json.html +27 -0
- data/_includes/meta/publisher.html +45 -0
- data/_includes/meta/schema.html +62 -28
- data/_includes/meta/scholarly.html +121 -0
- data/_includes/meta/scripts-loader.html +2 -0
- data/_includes/meta/webmention-discovery.html +14 -0
- data/_includes/scripts.html +57 -0
- data/_layouts/dataset.html +4 -3
- data/_layouts/default.html +1 -1
- data/_layouts/package.html +3 -2
- data/_layouts/page.html +15 -0
- data/_layouts/post.html +82 -18
- data/_layouts/project.html +2 -2
- data/_layouts/research.html +20 -8
- data/_plugins/authors.rb +133 -0
- data/_plugins/config_validator.rb +223 -20
- data/_plugins/critical_css_check.rb +42 -0
- data/_plugins/i18n.rb +6 -4
- data/_plugins/image_optimizer.rb +224 -172
- data/_plugins/licenses.rb +135 -0
- data/_plugins/math_preprocessor.rb +32 -10
- data/_plugins/references.rb +238 -0
- data/_plugins/reproducibility.rb +150 -0
- data/_plugins/revisions.rb +101 -0
- data/_plugins/scholarly.rb +50 -0
- data/_plugins/series.rb +104 -0
- data/_plugins/statements.rb +87 -0
- data/_sass/_base.scss +8 -1
- data/_sass/_comments-thread.scss +159 -0
- data/_sass/_layout.scss +384 -0
- data/_sass/_mathematical.scss +27 -0
- data/_sass/_moderation.scss +222 -0
- data/_sass/_post-components.scss +4 -2
- data/_sass/_print.scss +291 -0
- data/_sass/_reactions.scss +89 -0
- data/_sass/_reading-state.scss +290 -0
- data/_sass/_service-forms.scss +204 -0
- data/_sass/_subscriptions.scss +140 -0
- data/_sass/_syntax-highlighting.scss +2 -2
- data/_sass/_theme.scss +11 -0
- data/_sass/_typography.scss +116 -0
- data/_sass/_utilities.scss +5 -0
- data/_sass/_variables.scss +6 -0
- data/_sass/_webmentions.scss +125 -0
- data/assets/js/dist/academic.js +1 -1
- data/assets/js/dist/analytics-dashboard.js +1 -1
- data/assets/js/dist/chunks/chunk-2DYDWUFX.js +1 -0
- data/assets/js/dist/chunks/chunk-PATLC23F.js +1 -0
- data/assets/js/dist/chunks/chunk-V7734B2G.js +1 -0
- data/assets/js/dist/comments.js +2 -0
- data/assets/js/dist/contact.js +1 -0
- data/assets/js/dist/core.js +1 -1
- data/assets/js/dist/corrections.js +1 -0
- data/assets/js/dist/loader.js +1 -1
- data/assets/js/dist/math.js +1 -1
- data/assets/js/dist/moderation.js +1 -0
- data/assets/js/dist/notebook.js +1 -1
- data/assets/js/dist/reactions.js +1 -0
- data/assets/js/dist/reading-state.js +1 -0
- data/assets/js/dist/search.js +1 -1
- data/assets/js/dist/sources.json +52 -0
- data/assets/js/dist/subscriptions.js +1 -0
- data/assets/js/dist/webmentions.js +1 -0
- data/assets/js/loader.js +34 -0
- data/datalog-theme.gemspec +1 -2
- data/lib/datalog/cli.rb +9 -1
- data/lib/datalog/critical_css.rb +168 -0
- data/lib/datalog/plugins/comments.rb +33 -3
- data/lib/datalog/theme/installed_files.rb +113 -0
- data/lib/datalog/theme/repository_checkout.rb +6 -2
- data/lib/datalog/theme/version.rb +5 -1
- data/lib/datalog-theme.rb +1 -0
- metadata +57 -23
- data/assets/js/dist/chunks/chunk-225H5YXE.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunks/chunk-
|
|
1
|
+
import"./chunks/chunk-PATLC23F.js";function m(){return window.__DATALOG_ANALYTICS__||{}}function E(e){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}function f(e){return!e||!Array.isArray(e.rows)?[]:e.rows}function d(e,a){return new Intl.NumberFormat(void 0,a||{maximumFractionDigits:0}).format(e||0)}function h(e,a,n){var r;if(!e)return;let c=n||((r=e.closest("table"))==null?void 0:r.querySelectorAll("th").length)||1,i=document.createElement("tr");i.className="placeholder";let s=document.createElement("td");s.setAttribute("colspan",c),s.textContent=a,i.appendChild(s),e.replaceChildren(i)}function v(){let e=document.getElementById("analytics-top-posts"),a=f(m().top_posts);if(e){if(!a.length){h(e,e.dataset.emptyMessage||"No data available",3);return}e.replaceChildren(),a.forEach(n=>{var b,y,C;let c=n.dimensionValues||[],i=n.metricValues||[],s=((b=c[0])==null?void 0:b.value)||"",r=Number(((y=i[0])==null?void 0:y.value)||0),t=Number(((C=i[1])==null?void 0:C.value)||0),o=document.createElement("tr"),l=document.createElement("a");l.href=s.startsWith("/")?s:`/${s}`,l.textContent=s||"\u2014",l.rel="noopener",l.className="analytics-link";let u=document.createElement("td");u.appendChild(l);let p=document.createElement("td");p.textContent=d(r);let g=document.createElement("td");g.textContent=d(t,{maximumFractionDigits:0}),o.append(u,p,g),e.appendChild(o)})}}function w(){let e=document.getElementById("analytics-search-terms");if(!e)return;let a=f(m().search_terms);if(!a.length){h(e,e.dataset.emptyMessage||"No search queries recorded",2);return}e.replaceChildren(),a.forEach(n=>{var u,p;let c=n.dimensionValues||[],i=n.metricValues||[],s=((u=c[0])==null?void 0:u.value)||"(not provided)",r=Number(((p=i[0])==null?void 0:p.value)||0),t=document.createElement("tr"),o=document.createElement("td");o.textContent=s;let l=document.createElement("td");l.textContent=d(r),t.append(o,l),e.appendChild(t)})}function N(e){return!e||e.includes("-")?e:e.length===8?`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`:e}function _(){let e=document.getElementById("analytics-visitors-chart");if(!e||typeof Chart=="undefined")return;let a=f(m().visitor_trends);if(!a.length)return;let n=a.map(t=>{var o,l;return N((l=(o=t.dimensionValues)==null?void 0:o[0])==null?void 0:l.value)}),c=a.map(t=>{var o,l;return Number(((l=(o=t.metricValues)==null?void 0:o[0])==null?void 0:l.value)||0)}),i=a.map(t=>{var o,l;return Number(((l=(o=t.metricValues)==null?void 0:o[1])==null?void 0:l.value)||0)}),s=a.map(t=>{var o,l;return Number(((l=(o=t.metricValues)==null?void 0:o[2])==null?void 0:l.value)||0)}),r=a.map(t=>{var o,l;return Number(((l=(o=t.metricValues)==null?void 0:o[3])==null?void 0:l.value)||0)});new Chart(e,{type:"line",data:{labels:n,datasets:[{label:"Total users",data:c,borderColor:"#2563eb",backgroundColor:"rgba(37, 99, 235, 0.15)",tension:.35,fill:!0},{label:"New users",data:i,borderColor:"#10b981",backgroundColor:"rgba(16, 185, 129, 0.12)",tension:.35,fill:!1},{label:"Sessions",data:s,borderColor:"#9333ea",backgroundColor:"rgba(147, 51, 234, 0.1)",tension:.35,fill:!1},{label:"Page views",data:r,borderColor:"#f97316",backgroundColor:"rgba(249, 115, 22, 0.1)",borderDash:[6,6],tension:.35,fill:!1}]},options:{responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{y:{beginAtZero:!0,ticks:{callback:t=>d(t)}}},plugins:{legend:{position:"top"}}}})}function A(){let e=document.getElementById("analytics-engagement-chart");if(!e||typeof Chart=="undefined")return;let a=f(m().engagement_by_page).slice(0,10);if(!a.length)return;let n=a.map(s=>{var r,t;return((t=(r=s.dimensionValues)==null?void 0:r[0])==null?void 0:t.value)||"\u2014"}),c=a.map(s=>{var r,t;return Number(((t=(r=s.metricValues)==null?void 0:r[2])==null?void 0:t.value)||0)}),i=a.map(s=>{var r,t;return Number(((t=(r=s.metricValues)==null?void 0:r[0])==null?void 0:t.value)||0)});new Chart(e,{type:"bar",data:{labels:n,datasets:[{label:"Engaged sessions",data:c,backgroundColor:"rgba(59, 130, 246, 0.7)"},{label:"Page views",data:i,backgroundColor:"rgba(14, 165, 233, 0.5)"}]},options:{responsive:!0,maintainAspectRatio:!1,indexAxis:"y",scales:{x:{beginAtZero:!0,ticks:{callback:s=>d(s)}}},plugins:{legend:{position:"top"}}}})}function k(){let e=document.getElementById("analytics-key-events");if(!e)return;let a=f(m().key_events);if(!a.length){let n=document.createElement("li");n.className="placeholder",n.textContent="No tracked events in the selected window.",e.replaceChildren(n);return}e.replaceChildren(),a.forEach(n=>{var t,o,l,u;let c=((o=(t=n.dimensionValues)==null?void 0:t[0])==null?void 0:o.value)||"event",i=Number(((u=(l=n.metricValues)==null?void 0:l[0])==null?void 0:u.value)||0),s=document.createElement("li"),r=document.createElement("strong");r.textContent=d(i),s.appendChild(r),s.appendChild(document.createTextNode(` ${c.replace(/_/g," ")}`)),e.appendChild(s)})}function x(){let e=m().scholar||{},a=document.querySelector('[data-field="scholar-total"]'),n=document.querySelector('[data-field="scholar-h-index"]'),c=document.querySelector('[data-field="scholar-i10-index"]');a&&(a.textContent=e.total?d(Number(e.total)):"\u2014"),n&&(n.textContent=e.h_index?d(Number(e.h_index)):"\u2014"),c&&(c.textContent=e.i10_index?d(Number(e.i10_index)):"\u2014");let i=document.getElementById("analytics-scholar-chart");if(!i||typeof Chart=="undefined")return;let s=e.yearly_totals||{},r=Object.entries(s).map(([t,o])=>[Number(t),Number(o)]).sort((t,o)=>t[0]-o[0]);r.length&&new Chart(i,{type:"bar",data:{labels:r.map(t=>t[0]),datasets:[{label:"Citations",data:r.map(t=>t[1]),backgroundColor:"rgba(99, 102, 241, 0.8)"}]},options:{responsive:!0,maintainAspectRatio:!1,scales:{y:{beginAtZero:!0,ticks:{callback:t=>d(t)}}}}})}function V(){let e=document.getElementById("analytics-monthly-reports");if(!e)return;let a=Array.isArray(m().monthly_reports)?m().monthly_reports:[];if(!a.length){h(e,e.dataset.emptyMessage||"No monthly reports available",5);return}e.replaceChildren(),a.forEach(n=>{let c=document.createElement("tr"),i=document.createElement("td");i.textContent=n.month||"\u2014";let s=document.createElement("td");s.textContent=d(n.total_users||0);let r=document.createElement("td");r.textContent=d(n.new_users||0);let t=document.createElement("td");t.textContent=d(n.sessions||0);let o=document.createElement("td");o.textContent=d(n.page_views||0),c.append(i,s,r,t,o),e.appendChild(c)})}function I(){if(m().status!=="ok"){["analytics-top-posts","analytics-search-terms","analytics-monthly-reports"].forEach(n=>{let c=document.getElementById(n);c&&h(c,m().message||"Analytics data unavailable.")});let a=document.getElementById("analytics-key-events");if(a){let n=document.createElement("li");n.className="placeholder",n.textContent=m().message||"Analytics data unavailable.",a.replaceChildren(n)}x();return}v(),w(),_(),A(),k(),x(),V()}typeof window!="undefined"&&!window.__VITEST__&&E(I);export{h as ensurePlaceholder,N as formatDateLabel,d as formatNumber,E as onReady,f as parseRows,I as render,A as renderEngagementChart,k as renderKeyEvents,V as renderMonthlyReports,x as renderScholar,w as renderSearchTerms,v as renderTopPosts,_ as renderVisitorChart};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as x,b as $}from"./chunk-PATLC23F.js";var O="/capabilities",M="/health",U={401:"unauthorized",403:"forbidden",404:"not_found",409:"conflict",422:"invalid",429:"rate_limited"},j=new Set(["timeout","network","rate_limited","server"]),q=new Set(["GET","HEAD","OPTIONS"]),N={disabled:"This feature is not set up on this site.",unsupported:"The service behind this site does not offer this feature.",version:"This site and its service expect different API versions.",timeout:"The service took too long to answer. Try again in a moment.",network:"The service could not be reached. Check your connection and try again.",malformed:"The service answered in a way this site could not read.",unauthorized:"You need to sign in for this.",forbidden:"You are not allowed to do this.",not_found:"The service has nothing at that address.",conflict:"This was already done, or something changed in the meantime.",invalid:"Some of what you entered needs a correction.",rate_limited:"Too many requests for now. Please wait a little and try again.",server:"The service ran into a problem. Try again later.",http:"The service refused the request.",aborted:"The request was cancelled.",reference:"Reference: {{id}}"},c=class extends Error{constructor(r,i,n={}){var h,a,f,T,b,v,A,m;super(i),this.name="ServiceError",this.kind=r,this.status=(h=n.status)!=null?h:null,this.code=(a=n.code)!=null?a:null,this.requestId=(f=n.requestId)!=null?f:null,this.retryAfter=(T=n.retryAfter)!=null?T:null,this.errors=(b=n.errors)!=null?b:null,this.expected=(v=n.expected)!=null?v:null,this.actual=(A=n.actual)!=null?A:null,this.retryable=(m=n.retryable)!=null?m:j.has(r)}};function H(e=globalThis){let r=e.DatalogDynamicServices;return r&&typeof r=="object"?r:{}}function Y(e){let r=String(e!=null?e:"1").trim()||"1";return/^v/i.test(r)?`v${r.slice(1)}`:`v${r}`}function G(e,r=Date.now()){if(!e)return null;let i=Number(e);if(Number.isFinite(i))return Math.max(0,i);let n=Date.parse(e);return Number.isNaN(n)?null:Math.max(0,Math.round((n-r)/1e3))}function K(e,r){if(!e||typeof e.cookie!="string")return null;let i=e.cookie.split(";").map(n=>n.trim()).find(n=>n.startsWith(`${r}=`));return i?decodeURIComponent(i.slice(r.length+1)):null}function B(e,r,i){let n=e.status,h=U[n]||(n>=500?"server":"http"),a=r&&typeof r=="object"?r.error||r:{},f=a&&(a.message||a.title)||`The service answered ${n}`;return new c(h,f,{status:n,code:a&&a.code||null,requestId:i,retryAfter:G(e.headers.get("Retry-After")),errors:a&&a.errors||null})}function X(e,r={}){let i=e&&e.kind?e.kind:"http",n=r[i]||N[i]||r.http||N.http;if(e&&e.requestId){let h=r.reference||N.reference;return`${n} ${h.split("{{id}}").join(e.requestId)}`}return n}function J(e=H(),r={}){let i=r.fetch||((...t)=>globalThis.fetch(...t)),n=r.delay||(t=>new Promise(s=>setTimeout(s,t))),h=r.document===void 0?globalThis.document:r.document,a=String(e.base_url||"").replace(/\/+$/,""),f=Y(e.api_version),T=Number(e.timeout_ms)>0?Number(e.timeout_ms):8e3,b=["omit","same-origin","include"].includes(e.credentials)?e.credentials:"omit",v=e.features&&typeof e.features=="object"?e.features:{},A=e.paths&&typeof e.paths=="object"?e.paths:{},m=a!=="",E=null;function R(t){return/^https?:\/\//i.test(t)?t:`${a}/${f}${t.startsWith("/")?t:`/${t}`}`}function L(t){let s=A[t];return typeof s=="string"&&s!==""?s:`/${t}`}async function P(t,s,o){let u=new AbortController,_=setTimeout(()=>u.abort(),T),w=!1;o.signal&&o.signal.addEventListener("abort",()=>{w=!0,u.abort()});let p=x({Accept:"application/json"},o.headers||{}),d={method:t,headers:p,credentials:b,signal:u.signal};if(o.body!==void 0&&(p["Content-Type"]="application/json",d.body=JSON.stringify(o.body)),o.idempotencyKey&&(p["Idempotency-Key"]=o.idempotencyKey),!q.has(t)&&e.csrf_header&&e.csrf_cookie){let g=K(h,e.csrf_cookie);g&&(p[e.csrf_header]=g)}let l,k;try{l=await i(R(s),d),k=await l.text()}catch(g){throw w?new c("aborted","The request was cancelled",{retryable:!1}):u.signal.aborted?new c("timeout",`No answer within ${T} ms`):new c("network","The service could not be reached")}finally{clearTimeout(_)}let I=l.headers.get("X-Request-Id")||null,S=null;if(k)try{S=JSON.parse(k)}catch(g){if(l.ok)throw new c("malformed","The service did not answer with JSON",{status:l.status,requestId:I,retryable:!1})}if(!l.ok)throw B(l,S,I);return{data:S,status:l.status,requestId:I,headers:l.headers}}async function y(t,s,o={}){var p;if(!m)throw new c("disabled","Dynamic services are not configured for this site",{retryable:!1});let u=String(t).toUpperCase(),_=(p=o.retries)!=null?p:q.has(u)?2:0,w=0;for(;;)try{return await P(u,s,o)}catch(d){let l=d.retryAfter!==null&&d.retryAfter>10;if(!(d instanceof c)||!d.retryable||w>=_||l)throw d;w+=1,await n(d.retryAfter!==null?d.retryAfter*1e3:300*w)}}function C(){return E||(E=y("GET",O).then(({data:t})=>{var u;let s=String((u=t&&t.api_version)!=null?u:"").replace(/^v/i,""),o=f.slice(1);if(s!==o)throw new c("version",`The service speaks API version ${s||"unknown"}; this site expects ${o}`,{expected:o,actual:s,retryable:!1});return t}).catch(t=>{throw E=null,t})),E}async function F(t){if(!m)throw new c("disabled","Dynamic services are not configured for this site",{retryable:!1});if(v[t]===!1)throw new c("disabled",`${t} is off in this site's settings`,{retryable:!1});let s=await C();if(!s||!s.features||!s.features[t])throw new c("unsupported",`The service does not offer ${t}`,{retryable:!1});return!0}return{enabled:m,base:a,version:f,timeout:T,credentials:b,urlFor:R,pathFor:L,request:y,get:(t,s)=>y("GET",t,s),post:(t,s,o={})=>y("POST",t,$(x({},o),{body:s})),patch:(t,s,o={})=>y("PATCH",t,$(x({},o),{body:s})),delete:(t,s)=>y("DELETE",t,s),capabilities:C,feature:F,health:()=>y("GET",M).then(({data:t})=>t)}}var D=null;function z(){return D||(D=J()),D}export{X as a,J as b,z as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f=Object.defineProperty,g=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var i=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable;var e=(c,a,b)=>a in c?f(c,a,{enumerable:!0,configurable:!0,writable:!0,value:b}):c[a]=b,k=(c,a)=>{for(var b in a||(a={}))i.call(a,b)&&e(c,b,a[b]);if(d)for(var b of d(a))j.call(a,b)&&e(c,b,a[b]);return c},l=(c,a)=>g(c,h(a));export{k as a,l as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as l}from"./chunk-2DYDWUFX.js";var u=["idle","pending","success","invalid","error","disabled"];function b(e,t){let i=e.elements.namedItem(t);return i?typeof i.setAttribute=="function"?[i]:Array.from(i):[]}function f(e){e.querySelectorAll("[aria-invalid]").forEach(t=>{t.removeAttribute("aria-invalid");let i=(t.getAttribute("aria-describedby")||"").split(/\s+/).filter(r=>r&&!r.endsWith("-error")).join(" ");i?t.setAttribute("aria-describedby",i):t.removeAttribute("aria-describedby")}),e.querySelectorAll("[data-error-for]").forEach(t=>{t.textContent="",t.hidden=!0})}function y(e,t){let i=0,r=null;return Object.keys(t||{}).forEach(n=>{let o=Array.isArray(t[n])?t[n].join(" "):String(t[n]),s=e.querySelector(`[data-error-for="${n}"]`);s&&(s.textContent=o,s.hidden=!1,s.id||(s.id=`${e.id||"form"}-${n}-error`)),b(e,n).forEach(d=>{if(d.setAttribute("aria-invalid","true"),s){let a=(d.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean);a.includes(s.id)||a.push(s.id),d.setAttribute("aria-describedby",a.join(" "))}r=r||d,i+=1})}),r&&typeof r.focus=="function"&&r.focus(),i}function c(e,t,i="",r=null){e.dataset.state=u.includes(t)?t:"idle";let n=t==="pending";e.setAttribute("aria-busy",n?"true":"false"),e.querySelectorAll("button[type=submit], [data-form-submit]").forEach(s=>{s.disabled=n||t==="disabled"}),e.querySelectorAll("fieldset").forEach(s=>{s.disabled=t==="disabled"});let o=e.querySelector("[data-form-status]");o&&(o.setAttribute("role",t==="error"||t==="invalid"?"alert":"status"),o.textContent=i,o.hidden=i===""),f(e),t==="invalid"&&r&&y(e,r)}function A(e){let t={};return new FormData(e).forEach((i,r)=>{let n=typeof i=="string"?i.trim():i;r in t?t[r]=[].concat(t[r],n):t[r]=n}),t}function h(e,t,i={}){let r=l(t,i);t&&t.kind==="invalid"?c(e,"invalid",r,t.errors||null):c(e,"error",r)}export{c as a,A as b,h as c};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as v,b as K,c as B}from"./chunks/chunk-V7734B2G.js";import{a as I,b as U,c as M}from"./chunks/chunk-2DYDWUFX.js";import{a as T,b as q}from"./chunks/chunk-PATLC23F.js";var O="comments",Q=3,J=/^https?:\/\//i,W=new Set(["disabled","unsupported","version"]);function X(e,t){let n=e.querySelector(t);if(!n)return{};try{return JSON.parse(n.textContent)||{}}catch(a){return{}}}function Z(){let e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function ee(e,t){return Object.keys(t).reduce((n,a)=>n.split(`{{${a}}}`).join(t[a]),e)}function te(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return String(e||"");try{return n.toLocaleString(t||void 0,{dateStyle:"medium",timeStyle:"short"})}catch(a){return n.toISOString()}}function ne(e,t=!0){let n=Array.isArray(e)?e.filter(i=>i&&typeof i=="object"):[],a=new Map;n.forEach(i=>a.set(String(i.id),{comment:i,replies:[]}));let f=[];a.forEach(i=>{let o=i.comment.parent_id,u=t&&o!==null&&o!==void 0?a.get(String(o)):null;u&&u!==i?u.replies.push(i):f.push(i)});let p=(i,o)=>String(i.comment.created_at||"").localeCompare(String(o.comment.created_at||"")),y=i=>(i.sort(p),i.forEach(o=>y(o.replies)),i);return y(f)}function P(e,t,n={}){let{labels:a={},lang:f,replies:p=!1,onReply:y}=n,i=t.status==="pending",o=e.createElement("li");o.className=i?"comment comment--pending":"comment",t.id!==null&&t.id!==void 0&&(o.id=`comment-${t.id}`);let u=e.createElement("article");u.className="comment__card";let S=e.createElement("header");S.className="comment__meta";let h=t.author&&typeof t.author=="object"?t.author:{},g=String(h.name||"").trim()||a.anonymous||"Anonymous",s;if(J.test(String(h.url||""))?(s=e.createElement("a"),s.href=h.url,s.rel="nofollow noopener ugc"):s=e.createElement("span"),s.className="comment__author",s.textContent=g,S.appendChild(s),t.created_at){let l=e.createElement("time");l.className="comment__time",l.dateTime=String(t.created_at),l.textContent=te(t.created_at,f),S.appendChild(l)}if(i){let l=e.createElement("span");l.className="comment__pending",l.textContent=a.pending||"Awaiting moderation",S.appendChild(l)}u.appendChild(S);let b=e.createElement("div");if(b.className="comment__body",String(t.body||"").split(/\n{2,}/).forEach(l=>{let _=e.createElement("p");l.split(`
|
|
2
|
+
`).forEach((C,w)=>{w>0&&_.appendChild(e.createElement("br")),_.appendChild(e.createTextNode(C))}),b.appendChild(_)}),u.appendChild(b),p&&y&&!i&&t.id!==null&&t.id!==void 0){let l=e.createElement("button");l.type="button",l.className="comment__reply post-tool",l.textContent=a.reply||"Reply",l.addEventListener("click",()=>y(t)),u.appendChild(l)}return o.appendChild(u),o}function V(e,t){let n=t.querySelector(":scope > .comments-thread__replies");return n||(n=e.createElement("ol"),n.className="comments-thread__replies",t.appendChild(n)),n}function Y(e,t,n,a){n.forEach(f=>{let p=P(e,f.comment,a);f.replies.length>0&&Y(e,V(e,p),f.replies,a),t.appendChild(p)})}function re(e,t){let n={name:e.name||""};return e.email&&(n.email=e.email),e.url&&(n.url=e.url),{path:t,parent_id:e.parent_id||null,author:n,body:e.body||""}}function ae(e,t,n={}){let a={};return e.author.name||(a.name=n.name_required||"Say who you are."),e.author.email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.author.email)&&(a.email=n.email_invalid||"That does not look like an email address."),e.author.url&&!J.test(e.author.url)&&(a.url=n.url_invalid||"A website address starts with http:// or https://."),e.body.trim().length<Q&&(a.body=n.body_short||"Say a little more."),t.website&&(a.website="spam"),Object.keys(a).length>0?a:null}function oe(e,t={}){let n=e.ownerDocument,a=t.window||n.defaultView,f=e.dataset.commentsEndpoint||"",p=t.client||(f?U(q(T({},a&&a.DatalogDynamicServices||{}),{base_url:f})):M()),y=e.dataset.commentsPath||"/",i=e.dataset.commentsReplies!=="false",o=X(e,"[data-comments-labels]"),u=o.errors||{},S=n.documentElement.lang||void 0,h=e.querySelector("[data-comments-status]"),g=e.querySelector("[data-comments-list]"),s=e.querySelector("form"),b=s?s.elements.namedItem("parent_id"):null,l=e.querySelector("[data-comments-replying]"),_=e.querySelector("[data-comments-replying-to]"),C=null,w=!1,F=!1,x=(r,c="",d={})=>{if(e.dataset.state=r,!!h&&(h.textContent=c,h.hidden=c==="",h.setAttribute("role",d.alert?"alert":"status"),d.retry)){let m=n.createElement("button");m.type="button",m.className="post-tool",m.setAttribute("data-comments-retry",""),m.textContent=o.retry||"Try again",m.addEventListener("click",()=>N.load()),h.appendChild(n.createTextNode(" ")),h.appendChild(m)}},L=()=>(C||(C=p.feature(O).catch(r=>{throw C=null,r})),C),R=r=>{if(!b)return;if(b.value=String(r.id),_){let d=r.author&&r.author.name?r.author.name:o.anonymous||"Anonymous";_.textContent=ee(o.replying_to||"Replying to {{name}}",{name:d})}l&&(l.hidden=!1);let c=s.elements.namedItem("body");c&&typeof c.focus=="function"&&c.focus()},D=()=>{b&&(b.value=""),l&&(l.hidden=!0)},j={labels:o,lang:S,replies:i,onReply:R},H=(r,c)=>{let d=i&&c!==null&&c!==void 0?g.querySelector(`#comment-${CSS.escape(String(c))}`):null;(d?V(n,d):g).appendChild(r),g.hidden=!1,e.dataset.state==="empty"&&x("loaded")},N={root:e,form:s,reply:R,cancelReply:D,async load(){if(w)return null;w=!0,x("loading",o.loading||"");try{await L();let r=await p.get(`${p.pathFor(O)}?path=${encodeURIComponent(y)}`),c=r&&r.data&&Array.isArray(r.data.comments)?r.data.comments:[];g.textContent="";let d=ne(c,i);return Y(n,g,d,j),g.hidden=d.length===0,x(d.length>0?"loaded":"empty",d.length>0?"":o.empty||""),F=!0,c}catch(r){return r&&W.has(r.kind)?(x("disabled",I(r,u)),s&&(s.hidden=!0)):x("error",I(r,u),{alert:!0,retry:!0}),null}finally{w=!1}},async submit(){let r=K(s),c=re(r,y),d=ae(c,r,o);if(d)return d.website?(v(s,"success",o.posted_pending||""),null):(v(s,"invalid",u.invalid||"",d),null);v(s,"pending",o.sending||"");try{await L();let m=await p.post(p.pathFor(O),c,{idempotencyKey:Z()}),A=m&&m.data&&typeof m.data=="object"?m.data:{},E=A.comment&&typeof A.comment=="object"?A.comment:null,k=A.status==="pending"||E!==null&&E.status==="pending";return E&&H(P(n,k?q(T({},E),{status:"pending"}):E,j),E.parent_id),s.reset(),D(),v(s,"success",k?o.posted_pending||"":o.posted||""),m}catch(m){return B(s,m,u),null}}};s&&(s.addEventListener("submit",r=>{r.preventDefault(),N.submit()}),e.querySelectorAll("[data-comments-cancel-reply]").forEach(r=>{r.addEventListener("click",D)}));let $=()=>{F||N.load()};if(t.immediate||!a||typeof a.IntersectionObserver!="function")$();else{let r=new a.IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(r.disconnect(),$())},{rootMargin:"400px 0px"});r.observe(e)}return N}function z(e=document){return Array.from(e.querySelectorAll("[data-comments-thread]")).map(t=>oe(t))}function G(){z(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",G,{once:!0}):G();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as o,b as v,c as y}from"./chunks/chunk-V7734B2G.js";import{c as g}from"./chunks/chunk-2DYDWUFX.js";import"./chunks/chunk-PATLC23F.js";var S="contact",w=20;function j(t,r){let n=t.querySelector(r);if(!n)return{};try{return JSON.parse(n.textContent)||{}}catch(e){return{}}}function U(){let t=globalThis.crypto;return t&&typeof t.randomUUID=="function"?t.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function A(t,r){let n={category:t.category||"other",name:t.name||"",email:t.email||"",subject:t.subject||"",message:t.message||"",source_url:r};return t.affiliation&&(n.affiliation=t.affiliation),n}function L(t,r,n={}){let e={};return t.name||(e.name=n.name_required||"Say who you are."),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.email)||(e.email=n.email_invalid||"That does not look like an email address."),t.subject||(e.subject=n.subject_required||"Give the message a subject."),t.message.length<w&&(e.message=(n.message_short||"Say a little more: at least {{min}} characters.").split("{{min}}").join(String(w))),r.website&&(e.website="spam"),Object.keys(e).length>0?e:null}function _(t,r={}){let n=r.client||g(),e=t.querySelector("form"),s=j(t,"[data-contact-labels]"),C=j(t,"[data-contact-prompts]"),c=s.errors||{},F=t.dataset.sourceUrl||"",i=e.elements.namedItem("category"),l=t.querySelector("[data-contact-hint]"),q=l?l.textContent:"",u=null,f=()=>{l&&(l.textContent=i&&C[i.value]||q)};if(i&&(i.addEventListener("change",f),f()),!n.enabled)return o(e,"disabled",c.disabled||""),{form:e,available:!1,submit:async()=>null};let b=()=>(u||(u=n.feature(S).catch(a=>{throw u=null,y(e,a,c),e.dataset.state="disabled",e.querySelectorAll("button[type=submit]").forEach(m=>{m.disabled=!0}),a})),u);e.addEventListener("focusin",()=>b().catch(()=>{}),{once:!0});let h={form:e,available:!0,async submit(){let a=v(e),m=A(a,F),p=L(m,a,s);if(p)return p.website?(o(e,"success",s.success||""),null):(o(e,"invalid",c.invalid||"",p),null);o(e,"pending",s.pending||"");try{await b()}catch(d){return null}try{let d=await n.post(n.pathFor(S),m,{idempotencyKey:U()});return e.reset(),f(),o(e,"success",s.success||""),d}catch(d){return y(e,d,c),null}}};return e.addEventListener("submit",a=>{a.preventDefault(),h.submit()}),h}function x(t=document){return Array.from(t.querySelectorAll("[data-contact-form]")).map(r=>_(r))}function E(){x(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",E,{once:!0}):E();
|
data/assets/js/dist/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as p}from"./chunks/chunk-PATLC23F.js";var _="[data-copy-citation], [data-copy-bibliography]";var g=!1;function G(t){let e=t.getAttribute("data-target"),n=e?document.getElementById(e):null;return n?"value"in n?n.value:n.textContent||"":""}async function O(t){let e=G(t);if(!(!e||!navigator.clipboard||!navigator.clipboard.writeText)){t.dataset.originalText===void 0&&(t.dataset.originalText=t.textContent);try{await navigator.clipboard.writeText(e),t.dataset.copied="true",t.textContent="Copied!",setTimeout(()=>{t.dataset.copied="false",t.textContent=t.dataset.originalText},2e3)}catch(n){t.dataset.copied="error",t.textContent="Error"}}}function h(){g||(g=!0,document.addEventListener("click",t=>{let e=t.target instanceof Element?t.target.closest(_):null;e&&O(e)}))}var y="datalog-color-mode",l="dark-mode";function b(){try{return localStorage.getItem(y)}catch(t){return null}}function $(t){try{localStorage.setItem(y,t)}catch(e){}}function q(t){let e=b();return e==="dark"?!0:e==="light"?!1:t.matches}function E(){let t=document.querySelector("[data-toggle-dark-mode]"),e=document.body,n=window.matchMedia("(prefers-color-scheme: dark)");q(n)&&e.classList.add(l);let r=()=>{let a=e.classList.contains(l)?"dark":"light";e.dataset.theme=a,document.documentElement.dataset.theme=a},o=()=>{r(),t&&t.setAttribute("aria-pressed",e.classList.contains(l))};o(),t&&t.addEventListener("click",()=>{let a=e.classList.toggle(l);t.setAttribute("aria-pressed",String(a)),$(a?"dark":"light"),r()}),n.addEventListener("change",a=>{b()||(a.matches?e.classList.add(l):e.classList.remove(l),o())})}var H="datalog-github-";var S=Symbol("recently-failed");function f(t,e){return`${H}${t}-${e}`}function K(t,e,n){try{let r=localStorage.getItem(f(t,e));if(!r)return null;let o=JSON.parse(r);if(!o||typeof o!="object")return null;let a=o.failed?6e5:n;return Date.now()-o.timestamp>a?(localStorage.removeItem(f(t,e)),null):o.failed?S:o.data}catch(r){return null}}function L(t,e,n){try{localStorage.setItem(f(t,e),JSON.stringify(p({timestamp:Date.now()},n)))}catch(r){}}async function M(t,e,n,r){let o=K(t,e,r);if(o===S)return null;if(o)return o;try{let a=await fetch(`${n}/${t}/${e}`);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let s=await a.json();return L(t,e,{data:s}),s}catch(a){return L(t,e,{failed:!0}),null}}function B(t,e){t.querySelectorAll("[data-github-stat]").forEach(r=>{let o=r.getAttribute("data-github-stat");if(!o)return;let a=e[o];typeof a=="number"?r.textContent=a.toLocaleString():typeof a=="string"&&a.length>0&&(r.textContent=a)})}function F(t){t.dataset.githubState="error";let e=t.getAttribute("data-github-unavailable");e&&t.querySelectorAll("[data-github-stat]").forEach(n=>{n.textContent=e})}function v(){let t=document.querySelectorAll("[data-github-owner][data-github-repo]");if(!t.length)return Promise.resolve();let n=(window.DatalogIntegrations||{}).github||{};if(n.enabled===!1)return Promise.resolve();let r=n.api_base||"https://api.github.com/repos",o=Number(n.cache_ttl||43200)*1e3,a=Array.from(t).map(s=>{let u=s.getAttribute("data-github-owner"),d=s.getAttribute("data-github-repo");return!u||!d?Promise.resolve():(s.dataset.githubState="loading",M(u,d,r,o).then(i=>{if(!i){F(s);return}B(s,i),s.dataset.githubState="ready"}))});return Promise.all(a)}var z="[data-language-filter], [data-navigate-on-change]";function U(t){if(typeof t!="string")return null;let e=Array.from(t).filter(r=>{let o=r.codePointAt(0);return o>31&&o!==127}).join("").trim();if(!e)return null;let n=/^[a-z][a-z0-9+.-]*:/i.exec(e);return n&&!/^https?:$/i.test(n[0])?null:e}function A(){let t=document.querySelectorAll(z);t.length!==0&&t.forEach(e=>{e.addEventListener("change",n=>{let r=U(n.target&&n.target.value);r&&(window.location.href=r)})})}var V="(min-width: 48rem)",T="#site-nav",k=".nav-toggle",m="nav-open";function w(t){return t.replace(/index\.html$/,"").replace(/\/$/,"")}function j(t){let e=t.getAttribute("href");if(!e)return null;try{let n=new URL(e,window.location.origin);if(!n.hash)return null;let r=new URL(window.location.href);return w(n.pathname)!==w(r.pathname)?null:n.hash.replace("#","")}catch(n){return null}}function Y(t){if(!t)return!1;let e=document.getElementById(t);return e?(e.scrollIntoView({block:"start"}),!0):!1}function x(){let t=document.querySelector(T);if(!t)return;let e=document.querySelector(k),n=document.body,r=window.matchMedia(V),o=i=>{if(i){t.dataset.open="true",n.classList.remove(m),e&&(e.setAttribute("aria-expanded","false"),e.classList.remove("is-active"));return}let c=t.dataset.open==="true";c||(t.dataset.open="false"),e&&(e.setAttribute("aria-expanded",String(c)),e.classList.toggle("is-active",c))},a=({focusToggle:i=!1}={})=>{r.matches||(t.dataset.open="false",n.classList.remove(m),e&&(e.setAttribute("aria-expanded","false"),e.classList.remove("is-active"),i&&e.focus()))},s=()=>{r.matches||(t.dataset.open="true",n.classList.add(m),e&&(e.setAttribute("aria-expanded","true"),e.classList.add("is-active")))},u=()=>{r.matches||(t.dataset.open==="true"?a():s())};r.matches||(t.dataset.open="false"),o(r.matches),r.addEventListener("change",i=>{i.matches?o(!0):(a(),t.dataset.open="false",o(!1))}),t.querySelectorAll(".nav-link").forEach(i=>{let c=j(i);i.addEventListener("click",R=>{r.matches||a(),c&&Y(c)&&R.preventDefault()})}),e&&e.addEventListener("click",()=>{u()}),document.addEventListener("keydown",i=>{i.key==="Escape"&&t.dataset.open==="true"&&a({focusToggle:!0})}),document.addEventListener("click",i=>{if(r.matches||t.dataset.open!=="true")return;let c=i.target;!c||typeof c.closest!="function"||c.closest(T)||e&&c.closest(k)||a()})}function J(t,e){let n=window.pageYOffset||document.documentElement.scrollTop,r=document.documentElement.scrollHeight-window.innerHeight,o=r>0?Math.min(n/r*100,100):0;t.tagName==="PROGRESS"?t.setAttribute("value",String(o)):t.style.setProperty("--progress",`${o}%`),e&&(e.textContent=Math.round(o))}function C(){let t=document.querySelector("[data-scroll-progress]");if(!t)return;let e=document.querySelector("[data-scroll-progress-value]"),n=()=>J(t,e);n(),window.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n)}function I(t){if(!t)return;let e=t.querySelector("input[type='search']"),n=t.getAttribute("action");e?(e.focus(),e.select()):n&&(window.location.href=n)}function X(t){if(!t)return!1;if(t.isContentEditable)return!0;let e=t.tagName;return e==="INPUT"||e==="TEXTAREA"||e==="SELECT"}function N(){let t=document.querySelector(".site-search");t&&document.addEventListener("keydown",e=>{X(document.activeElement)||(e.key==="/"&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(e.preventDefault(),I(t)),(e.key==="k"||e.key==="K")&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),I(t)))})}function Q(t){if(!t)return;t.getAttribute("tabindex")===null&&(t.setAttribute("tabindex","-1"),t.dataset.skipLinkTempTabindex="true"),t.addEventListener("blur",()=>{t.dataset.skipLinkTempTabindex&&(t.removeAttribute("tabindex"),delete t.dataset.skipLinkTempTabindex)},{once:!0}),t.focus()}function P(){let t=document.querySelectorAll(".skip-link[href^='#']");t.length&&t.forEach(e=>{e.addEventListener("click",n=>{let o=(e.getAttribute("href")||"").slice(1);if(!o)return;let a=document.getElementById(o);a&&(n.preventDefault(),Q(a))})})}var Z=[P,x,E,A,C,N,v,h];function D(t=Z){t.forEach(e=>{try{e()}catch(n){}})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>D()):D();export{D as initializeCore};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b as x,c as b}from"./chunks/chunk-V7734B2G.js";import{c as v}from"./chunks/chunk-2DYDWUFX.js";import"./chunks/chunk-PATLC23F.js";var C="corrections",E=20,_=500;function D(t){let e=t.querySelector("[data-correction-labels]");if(!e)return{};try{return JSON.parse(e.textContent)||{}}catch(n){return{}}}function U(){let t=globalThis.crypto;return t&&typeof t.randomUUID=="function"?t.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function F(t,e){!t||!e||e.querySelectorAll("h2[id], h3[id]").forEach(n=>{let o=t.ownerDocument.createElement("option");o.value=n.id,o.textContent=n.textContent.trim(),t.appendChild(o)})}function I(t,e){let n=t.getSelection&&t.getSelection();if(!n||n.isCollapsed||n.rangeCount===0||!e)return"";let o=n.getRangeAt(0);return e.contains(o.commonAncestorContainer)?n.toString().trim().slice(0,_):""}function L(t,e){let n={category:t.category||"other",message:t.message||"",article:{url:e.url,title:e.title}};return t.section&&(n.section=t.section),t.contact_email&&(n.contact_email=t.contact_email),t.quote&&(n.quote=t.quote),n}function R(t,e,n={}){let o={};return t.message.length<E&&(o.message=(n.message_short||"Say a little more: at least {{min}} characters.").split("{{min}}").join(String(E))),t.contact_email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.contact_email)&&(o.contact_email=n.email_invalid||"That does not look like an email address."),e.website&&(o.website="spam"),Object.keys(o).length>0?o:null}function T(t,e={}){let n=t.ownerDocument,o=e.window||n.defaultView,l=e.client||v(),S=e.content===void 0?n.querySelector(".post-content"):e.content,r=t.querySelector("form"),c=D(t),u=c.errors||{},A={url:t.dataset.articleUrl||"",title:t.dataset.articleTitle||""},p=r.elements.namedItem("quote"),s=t.querySelector("[data-correction-quote]"),d=null;if(F(r.elements.namedItem("section"),S),!l.enabled)return a(r,"disabled",u.disabled||""),{form:r,available:!1,submit:async()=>null};let w=()=>(d||(d=l.feature(C).catch(i=>{throw d=null,b(r,i,u),r.dataset.state="disabled",r.querySelectorAll("button[type=submit]").forEach(m=>{m.disabled=!0}),i})),d),y=t.tagName==="DETAILS"?t:t.querySelector("details");y&&y.addEventListener("toggle",()=>{if(!y.open)return;let i=I(o,S);p&&i&&!p.value&&(p.value=i,s&&(s.textContent=i,s.hidden=!1)),w().catch(()=>{})});let q={form:r,available:!0,async submit(){let i=x(r),m=L(i,A),g=R(m,i,c);if(g)return g.website?(a(r,"success",c.success||""),null):(a(r,"invalid",u.invalid||"",g),null);a(r,"pending",c.pending||"");try{await w()}catch(f){return null}try{let f=await l.post(l.pathFor(C),m,{idempotencyKey:U()});return r.reset(),s&&(s.hidden=!0),a(r,"success",c.success||""),f}catch(f){return b(r,f,u),null}}};return r.addEventListener("submit",i=>{i.preventDefault(),q.submit()}),q}function h(t=document){return Array.from(t.querySelectorAll("[data-correction-report]")).map(e=>T(e))}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>h()):h();export{h as initCorrectionReports};
|
data/assets/js/dist/loader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunks/chunk-
|
|
1
|
+
import"./chunks/chunk-PATLC23F.js";function f(){let e=document.getElementById("datalog-js-manifest");if(!e||!e.textContent)return{};try{return JSON.parse(e.textContent)}catch(n){return{}}}function m(e){return`feature${e.replace(/(^|-)([a-z])/g,(n,r,c)=>c.toUpperCase())}`}function o(e,n){let r=document.body;if(!r)return;let c=`${m(e)}State`;r.dataset[c]=n}async function u(e){return import(e)}var b=[{name:"search",test:()=>document.querySelector("[data-search-app]")},{name:"visualizations",test:()=>document.querySelector("[data-viz-type]")},{name:"math",test:()=>{var e;return((e=document.body)==null?void 0:e.dataset.featureMath)==="true"}},{name:"academic",test:()=>document.querySelector("[data-citation-metric], [data-citation-table], [data-citation-chart]")},{name:"notebook",test:()=>{var e;return((e=document.body)==null?void 0:e.dataset.featureNotebook)==="true"||document.querySelector(".notebook-output")}},{name:"reading-state",test:()=>document.querySelector("[data-reading-state], [data-reading-list]")},{name:"corrections",test:()=>document.querySelector("[data-correction-report]")},{name:"contact",test:()=>document.querySelector("[data-contact-form]")},{name:"comments",test:()=>document.querySelector("[data-comments-thread]")},{name:"reactions",test:()=>document.querySelector("[data-reactions]")},{name:"webmentions",test:()=>document.querySelector("[data-webmentions]")},{name:"subscriptions",test:()=>document.querySelector("[data-subscribe], [data-subscription-manage]")},{name:"moderation",test:()=>document.querySelector("[data-moderation-inbox]")}];async function i(e){let n=e||f(),{core:r,features:c={}}=n;if(!r)return;try{o("core","loading"),await u(r),o("core","ready")}catch(t){o("core","error");return}let d=document.body;if(!d)return;let l=b.filter(t=>{let s=m(t.name),a=d.dataset[s];return a==="true"||a==="auto"?a==="auto"&&typeof t.test=="function"?!!t.test():!0:!1}).map(async({name:t,test:s})=>{let a=c[t];if(a){o(t,"loading");try{if(typeof s=="function"&&!s()){o(t,"skipped");return}await u(a),o(t,"ready")}catch(y){o(t,"error")}}});await Promise.all(l)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>i()):i();export{i as bootstrapFeatures};
|
data/assets/js/dist/math.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){let u={init(e){this.MathJax=e,this.displayCounter=0,this.anchorCounter=0,this.equationMap=new Map,this.editor=null,this.editorOpen=!1,this.messageTimeout=null,this.initialized=!0,this.pendingTypeset=[],this.setupEditor(),e.startup.promise.then(()=>{if(this.decorateExisting(e.startup.document.math||[]),this.updateEquationReferences(),this.pendingTypeset.length>0){let t=[...this.pendingTypeset];this.pendingTypeset=[],t.forEach(a=>{this.renderLatex(a.target,a.latex,a.options||{})})}}).catch(t=>{}),document.addEventListener("click",t=>this.handleClick(t)),document.addEventListener("keydown",t=>this.handleKeydown(t))},onPageReady(){this.updateEquationReferences()},decorateExisting(e){!e||e.length===0||(this.displayCounter=0,this.anchorCounter=0,this.equationMap.clear(),e.forEach(t=>{try{this.decorateMathItem(t)}catch(a){}}))},decorateMathItem(e){if(!e||!e.typesetRoot)return;let t=e.typesetRoot,a=e.math||"",i=t.closest("[data-math-alt]")||t,n=this.resolveAltText(i,a);t.dataset.mathLatex=a,t.setAttribute("tabindex","0"),t.setAttribute("role","math"),this.syncAltAttributes(i,t,n),e.display?this.decorateDisplay(t,a):this.decorateInline(t,a)},decorateInline(e,t){e&&(e.classList.contains("math-expression__inline")||e.classList.add("math-expression__inline"),e.dataset.mathLatexClean=this.cleanLatex(t))},decorateDisplay(e,t){if(!e)return;let i=e.parentElement&&e.parentElement.classList.contains("math-expression")?e.parentElement:null;i||(i=document.createElement("figure"),i.className="math-expression math-expression--display",e.parentNode.insertBefore(i,e),i.appendChild(e));let n=this.extractEquationInfo(t);this.anchorCounter+=1;let r=`eq:auto-${this.anchorCounter}`,s=n.tag||"";n.skipNumber||(this.displayCounter+=1,s||(s=String(this.displayCounter)));let o=s?`(${s})`:"",l=this.buildAnchorId(n.label,r);if(i.dataset.mathLatex=t,i.dataset.mathLatexClean=this.cleanLatex(t),e.dataset.mathAlt&&!i.dataset.mathAlt&&(i.dataset.mathAlt=e.dataset.mathAlt),o?i.dataset.equationNumber=o:i.removeAttribute("data-equation-number"),i.dataset.equationLabel=n.label||"",l){i.id=l;let c=o||n.label||l;if((o||n.label)&&(this.setEquationReference(l,c),n.label&&n.label!==l&&this.setEquationReference(n.label,c,l),n.label&&n.label.startsWith("eq:"))){let h=n.label.replace(/^eq:/,"");this.setEquationReference(h,c,l)}}this.attachNumberBadge(i,o),this.attachToolbar(i)},extractEquationInfo(e){let t=(e||"").trim(),a=t.match(/\\tag\*?\{([^}]*)\}/),i=t.match(/\\label\{([^}]*)\}/),n=/\\notag|\\nonumber/.test(t);return{tag:a?a[1].trim():"",label:i?i[1].trim():"",skipNumber:n}},buildAnchorId(e,t){return e?e.startsWith("eq:")?e:`eq:${e}`:t||""},setEquationReference(e,t,a){if(!e)return;let i=a||e,n=t||e;this.equationMap.set(e,{anchor:i,label:e,number:n}),e.startsWith("eq:")||this.equationMap.set(`eq:${e}`,{anchor:i,label:e,number:n})},attachNumberBadge(e,t){let a=e.querySelector(".math-expression__number"),i=e.querySelector(".math-expression__sr");if(!t){a&&a.remove(),i&&i.remove();return}a||(a=document.createElement("span"),a.className="math-expression__number",a.setAttribute("aria-hidden","true"),e.appendChild(a)),a.textContent=t,i||(i=document.createElement("span"),i.className="visually-hidden math-expression__sr",e.appendChild(i)),i.textContent=`Equation ${t.replace(/[()]/g,"")}`},attachToolbar(e){let t=e.querySelector(".math-expression__toolbar");if(!t){t=document.createElement("div"),t.className="math-expression__toolbar";let a=document.createElement("button");a.type="button",a.className="math-expression__button",a.setAttribute("data-math-copy","true"),a.setAttribute("aria-label","Copy LaTeX code");let i=document.createElement("span");i.setAttribute("aria-hidden","true"),i.textContent="\u29C9";let n=document.createElement("span");n.className="visually-hidden",n.textContent="Copy equation",a.appendChild(i),a.appendChild(n);let r=document.createElement("button");r.type="button",r.className="math-expression__button",r.setAttribute("data-math-edit","true"),r.setAttribute("aria-label","Open equation editor");let s=document.createElement("span");s.setAttribute("aria-hidden","true"),s.textContent="\u270E";let o=document.createElement("span");o.className="visually-hidden",o.textContent="Edit equation",r.appendChild(s),r.appendChild(o);let l=document.createElement("span");l.className="math-expression__message",l.setAttribute("aria-live","polite"),l.hidden=!0,t.appendChild(a),t.appendChild(r),t.appendChild(l),e.appendChild(t)}},handleClick(e){let t=e.target.closest("[data-math-copy]");if(t){e.preventDefault();let s=t.closest(".math-expression"),o=s?s.dataset.mathLatexClean||s.dataset.mathLatex:null;this.copyLatex(o,s);return}let a=e.target.closest("[data-math-edit]");if(a){e.preventDefault();let s=a.closest(".math-expression"),o=s&&s.dataset.mathLatex||"";this.openEditor(o);return}if(e.target.closest("[data-math-editor-close]")){e.preventDefault(),this.closeEditor();return}if(e.target.closest("[data-math-editor-copy]")){e.preventDefault(),this.editor&&this.editor.textarea&&this.copyLatex(this.editor.textarea.value,null,this.editor.status);return}let r=e.target.closest("[data-symbol-insert]");if(r){e.preventDefault();let s=r.getAttribute("data-symbol-insert");this.insertSymbol(s||"")}},handleKeydown(e){let t=document.activeElement,a=t&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable);if((e.ctrlKey||e.metaKey)&&e.altKey&&(e.key==="e"||e.key==="E")){e.preventDefault();let i=a&&t&&t.value||"";this.openEditor(i);return}e.key==="Escape"&&this.editorOpen&&(e.preventDefault(),this.closeEditor())},copyLatex(e,t,a){if(!e)return;let i=r=>{if(a)a.hidden=!1,a.textContent=r,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{a.hidden=!0,a.textContent=""},2e3);else if(t){let s=t.querySelector(".math-expression__message");s&&(s.hidden=!1,s.textContent=r,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{s.hidden=!0,s.textContent=""},2e3))}},n=()=>{let r=document.createElement("textarea");r.value=e,r.setAttribute("aria-hidden","true"),r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();try{document.execCommand("copy"),i("Copied equation")}catch(s){i("Unable to copy")}document.body.removeChild(r)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(()=>i("Copied equation")).catch(()=>n()):n()},setupEditor(){if(this.editor)return;let e=document.createElement("div");e.id="math-tooling-panel",e.hidden=!0;let t=document.createElement("div");t.className="math-tooling",t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.setAttribute("aria-labelledby","math-tooling-title");let a=document.createElement("h2");a.id="math-tooling-title",a.className="math-tooling__title",a.textContent="Equation editor";let i=document.createElement("p");i.className="math-tooling__description",i.innerHTML="Craft LaTeX expressions with live preview, quick statistical symbols, and chemistry support.";let n=document.createElement("textarea");n.className="math-tooling__input",n.setAttribute("data-math-editor-input","true"),n.setAttribute("spellcheck","false"),n.rows=10;let r=document.createElement("div");r.className="math-tooling__actions";let s=document.createElement("div");s.className="math-tooling__preview",s.setAttribute("data-math-editor-preview","true"),s.setAttribute("aria-live","polite");let o=document.createElement("span");o.className="math-tooling__status",o.hidden=!0;let l=document.createElement("div");l.className="math-tooling__library";let c=document.createElement("h3");c.className="math-tooling__library-title",c.textContent="Quick insert";let h=document.createElement("div");h.className="math-tooling__symbols",[{label:"Mean \u03BC",value:"\\mu"},{label:"Variance \u03C3\xB2",value:"\\sigma^2"},{label:"Std. dev \u03C3",value:"\\sigma"},{label:"Probability",value:"\\mathbb{P}(A)"},{label:"Expectation",value:"\\mathbb{E}[X]"},{label:"Covariance",value:"\\mathrm{Cov}(X, Y)"},{label:"Vector",value:"\\mathbf{x}"},{label:"Norm",value:"\\lVert x \\rVert_2"},{label:"Inner product",value:"\\langle x, y \\rangle"},{label:"Derivative",value:"\\frac{\\mathrm{d}}{\\mathrm{d}t}"},{label:"Integral",value:"\\int_0^1 f(x) \\, \\mathrm{d}x"},{label:"Bayes",value:"\\mathbb{P}(A \\mid B)"},{label:"Chemical H\u2082O",value:"\\ce{H2O}"},{label:"Chemical CO\u2082",value:"\\ce{CO2}"}].forEach(g=>{let p=document.createElement("button");p.type="button",p.className="math-tooling__symbol",p.setAttribute("data-symbol-insert",g.value),p.textContent=g.label,h.appendChild(p)});let d=document.createElement("button");d.type="button",d.className="math-tooling__close",d.setAttribute("data-math-editor-close","true");let b=document.createElement("span");b.setAttribute("aria-hidden","true"),b.textContent="\u2715";let f=document.createElement("span");f.className="visually-hidden",f.textContent="Close equation editor",d.appendChild(b),d.appendChild(f);let m=document.createElement("button");m.type="button",m.className="math-tooling__copy",m.setAttribute("data-math-editor-copy","true"),m.textContent="Copy LaTeX",r.appendChild(m),r.appendChild(d),r.appendChild(o),l.appendChild(c),l.appendChild(h),t.appendChild(a),t.appendChild(i),t.appendChild(n),t.appendChild(s),t.appendChild(r),t.appendChild(l),e.appendChild(t),document.body.appendChild(e),n.addEventListener("input",()=>this.updateEditorPreview()),this.editor={overlay:e,dialog:t,textarea:n,preview:s,status:o}},openEditor(e){if(!this.editor)return;let t=(e||"").trim();this.editor.overlay.hidden=!1,document.body.classList.add("math-tooling-open"),this.editor.textarea.value=t,this.editor.textarea.focus(),this.editor.textarea.setSelectionRange(t.length,t.length),this.editorOpen=!0,this.updateEditorPreview()},closeEditor(){this.editor&&(this.editor.overlay.hidden=!0,document.body.classList.remove("math-tooling-open"),this.editorOpen=!1)},updateEditorPreview(){if(!this.editor||!this.MathJax)return;let e=this.editor.textarea.value.trim();if(!e){this.editor.preview.replaceChildren();let t=document.createElement("p");t.className="math-tooling__placeholder",t.textContent="Preview will appear here.",this.editor.preview.appendChild(t);return}this.renderLatex(this.editor.preview,e,{display:!0,enhance:!1})},insertSymbol(e){if(!this.editor||!this.editor.textarea)return;let t=this.editor.textarea,a=t.selectionStart||0,i=t.selectionEnd||0,n=t.value,r=`${n.slice(0,a)}${e}${n.slice(i)}`;t.value=r;let s=a+e.length;t.focus(),t.setSelectionRange(s,s),this.updateEditorPreview()},updateEquationReferences(){if(!this.equationMap||this.equationMap.size===0)return;document.querySelectorAll("[data-equation-ref]").forEach(a=>{let i=a.getAttribute("data-equation-ref");if(!i)return;let n=this.lookupEquation(i.replace(/^#/,""));if(!n)return;a.setAttribute("href",`#${n.anchor}`);let r=a.textContent.trim();(!r||r===i||r===n.anchor||r===`(${i})`)&&(a.textContent=n.number||n.anchor),a.classList.add("math-reference"),a.setAttribute("aria-label",`Jump to equation ${n.number||n.anchor}`)}),document.querySelectorAll('a[href^="#eq:"]').forEach(a=>{let i=a.getAttribute("href");if(!i)return;let n=i.replace(/^#/,""),r=this.lookupEquation(n);if(!r)return;a.setAttribute("href",`#${r.anchor}`);let s=a.textContent.trim();(!s||s===i||s===n)&&(a.textContent=r.number||r.anchor),a.dataset.equationRef=r.anchor,a.classList.add("math-reference")})},lookupEquation(e){if(!e)return null;if(this.equationMap.has(e))return this.equationMap.get(e);let t=e.startsWith("eq:")?e:`eq:${e}`;return this.equationMap.get(t)||null},renderLatex(e,t,a={}){if(!e)return Promise.resolve();let i=a.display!==!1;if(!this.MathJax)return e.textContent=t,this.pendingTypeset||(this.pendingTypeset=[]),this.pendingTypeset.push({target:e,latex:t,options:a}),Promise.resolve();let n=i?`\\[${t}\\]`:`\\(${t}\\)`;return e.innerHTML=n,this.MathJax.typesetPromise([e]).catch(r=>{})},cleanLatex(e){return(e||"").replace(/%\s*alt:.*$/gm,"").replace(/\\label\{[^}]*\}/g,"").replace(/\\tag\*?\{[^}]*\}/g,"").trim()},resolveAltText(e,t){let a=e||null,i=this.findDatasetAlt(a);if(i)return i;let n=this.extractAltComment(t);if(n)return n;let s=(a&&a.getAttribute?a.getAttribute("data-math-source"):null)||t;return this.generateAltFromLatex(s)},findDatasetAlt(e){let t=e;for(;t;){if(t.dataset&&t.dataset.mathAlt){let a=t.dataset.mathAlt.trim();if(a)return a}t=t.parentElement}return""},extractAltComment(e){if(!e)return"";let t=String(e).split(/\r?\n/);for(let a=0;a<t.length;a+=1){let i=t[a];if(!i)continue;let n=i.match(/%\s*alt:\s*(.+)$/i);if(n)return n[1].trim()}return""},generateAltFromLatex(e){if(!e)return"";let t=String(e).replace(/%.*$/gm,"");return t=t.replace(/\\frac\s*\{([^{}]+)\}\s*\{([^{}]+)\}/g,(a,i,n)=>{let r=this.sanitizeSegment(i),s=this.sanitizeSegment(n);return`${r} over ${s}`.trim()}),t=t.replace(/\\int(?:_\{([^}]*)\}|_([^\s^{}]+))?(?:\^\{([^}]*)\}|\^([^\s_{}]+))?/g,(a,i,n,r,s)=>{let o=this.sanitizeSegment(i||n),l=this.sanitizeSegment(r||s),c="integral";return o&&(c+=` from ${o}`),l&&(c+=` to ${l}`),c}),t=t.replace(/\\sum(?:_\{([^}]*)\}|_([^\s^{}]+))?(?:\^\{([^}]*)\}|\^([^\s_{}]+))?/g,(a,i,n,r,s)=>{let o=this.sanitizeSegment(i||n),l=this.sanitizeSegment(r||s),c="summation";return o&&(c+=` from ${o}`),l&&(c+=` to ${l}`),c}),t=t.replace(/\\sqrt\s*\{([^{}]+)\}/g,(a,i)=>`square root of ${this.sanitizeSegment(i)}`),t=t.replace(/\\mathrm\s*\{([^{}]+)\}/g,(a,i)=>this.sanitizeSegment(i)),t=t.replace(/\\operatorname\*?\s*\{([^{}]+)\}/g,(a,i)=>this.sanitizeSegment(i)),t=t.replace(/\\[a-zA-Z]+/g," "),t=t.replace(/[{}]/g," "),t=t.replace(/\s+/g," ").trim(),t||"Mathematical expression"},sanitizeSegment(e){return e?String(e).replace(/\\[a-zA-Z]+/g," ").replace(/[{}]/g," ").replace(/\s+/g," ").trim():""},syncAltAttributes(e,t,a){a&&(e&&e.setAttribute&&(e.setAttribute("aria-label",a),e.dataset&&(e.dataset.mathAlt=a)),t&&t.setAttribute&&(t.setAttribute("aria-label",a),t.dataset&&(t.dataset.mathAlt=a)))}};typeof globalThis!="undefined"&&(globalThis.__DATALOG_MATH_INTERNALS__=u),window.DatalogMath={init(e){u.init(e)},onPageReady(){u.initialized&&u.onPageReady()},renderLatex(e,t,a){return u.renderLatex(e,t,a)}}})();
|
|
1
|
+
(function(){let d={init(t){this.MathJax=t,this.displayCounter=0,this.anchorCounter=0,this.equationMap=new Map,this.editor=null,this.editorOpen=!1,this.messageTimeout=null,this.initialized=!0,this.pendingTypeset=[],this.setupEditor(),t.startup.promise.then(()=>{if(this.decorateExisting(t.startup.document.math||[]),this.updateEquationReferences(),this.pendingTypeset.length>0){let e=[...this.pendingTypeset];this.pendingTypeset=[],e.forEach(a=>{this.renderLatex(a.target,a.latex,a.options||{})})}}).catch(e=>{}),document.addEventListener("click",e=>this.handleClick(e)),document.addEventListener("keydown",e=>this.handleKeydown(e))},onPageReady(){this.updateEquationReferences()},decorateExisting(t){!t||t.length===0||(this.displayCounter=0,this.anchorCounter=0,this.equationMap.clear(),t.forEach(e=>{try{this.decorateMathItem(e)}catch(a){}}))},decorateMathItem(t){if(!t||!t.typesetRoot)return;let e=t.typesetRoot,a=t.math||"",n=e.closest("[data-math-alt]")||e,i=this.resolveAltText(n,a);e.dataset.mathLatex=a,e.setAttribute("tabindex","0"),e.setAttribute("role","math"),this.syncAltAttributes(n,e,i),t.display?this.decorateDisplay(e,a):this.decorateInline(e,a),this.exposeReferenceLinks(e)},exposeAllReferenceLinks(t){(t&&typeof t.querySelectorAll=="function"?t:document).querySelectorAll("mjx-container").forEach(a=>this.exposeReferenceLinks(a))},exposeReferenceLinks(t){if(!t||typeof t.querySelectorAll!="function")return;let e=Array.from(t.querySelectorAll("mjx-assistive-mml [href]")),a=t;t.querySelectorAll('[aria-hidden="true"] a[href]').forEach(n=>{n.setAttribute("tabindex","-1");let i=n.getAttribute("href")||"";if(!i.startsWith("#")||n.dataset.mathReferenceExposed==="true")return;n.dataset.mathReferenceExposed="true";let r=e.find(l=>l.getAttribute("href")===i),s=(r&&r.textContent||n.textContent||"").replace(/\s+/g," ").trim(),o=document.createElement("a");o.className="math-reference-link",o.href=i,o.textContent=s?`Equation ${s}`:"Equation",a.insertAdjacentElement("afterend",o),a=o})},decorateInline(t,e){t&&(t.classList.contains("math-expression__inline")||t.classList.add("math-expression__inline"),t.dataset.mathLatexClean=this.cleanLatex(e))},decorateDisplay(t,e){if(!t)return;let n=t.parentElement&&t.parentElement.classList.contains("math-expression")?t.parentElement:null;n||(n=document.createElement("figure"),n.className="math-expression math-expression--display",t.parentNode.insertBefore(n,t),n.appendChild(t));let i=this.extractEquationInfo(e);this.anchorCounter+=1;let r=`eq:auto-${this.anchorCounter}`,s=i.tag||"";i.skipNumber||(this.displayCounter+=1,s||(s=String(this.displayCounter)));let o=s?`(${s})`:"",l=this.buildAnchorId(i.label,r);if(n.dataset.mathLatex=e,n.dataset.mathLatexClean=this.cleanLatex(e),t.dataset.mathAlt&&!n.dataset.mathAlt&&(n.dataset.mathAlt=t.dataset.mathAlt),o?n.dataset.equationNumber=o:n.removeAttribute("data-equation-number"),n.dataset.equationLabel=i.label||"",l){n.id=l;let c=o||i.label||l;if((o||i.label)&&(this.setEquationReference(l,c),i.label&&i.label!==l&&this.setEquationReference(i.label,c,l),i.label&&i.label.startsWith("eq:"))){let h=i.label.replace(/^eq:/,"");this.setEquationReference(h,c,l)}}this.attachNumberBadge(n,o),this.attachToolbar(n)},extractEquationInfo(t){let e=(t||"").trim(),a=e.match(/\\tag\*?\{([^}]*)\}/),n=e.match(/\\label\{([^}]*)\}/),i=/\\notag|\\nonumber/.test(e);return{tag:a?a[1].trim():"",label:n?n[1].trim():"",skipNumber:i}},buildAnchorId(t,e){return t?t.startsWith("eq:")?t:`eq:${t}`:e||""},setEquationReference(t,e,a){if(!t)return;let n=a||t,i=e||t;this.equationMap.set(t,{anchor:n,label:t,number:i}),t.startsWith("eq:")||this.equationMap.set(`eq:${t}`,{anchor:n,label:t,number:i})},attachNumberBadge(t,e){let a=t.querySelector(".math-expression__number"),n=t.querySelector(".math-expression__sr");if(!e){a&&a.remove(),n&&n.remove();return}a||(a=document.createElement("span"),a.className="math-expression__number",a.setAttribute("aria-hidden","true"),t.appendChild(a)),a.textContent=e,n||(n=document.createElement("span"),n.className="visually-hidden math-expression__sr",t.appendChild(n)),n.textContent=`Equation ${e.replace(/[()]/g,"")}`},attachToolbar(t){let e=t.querySelector(".math-expression__toolbar");if(!e){e=document.createElement("div"),e.className="math-expression__toolbar";let a=document.createElement("button");a.type="button",a.className="math-expression__button",a.setAttribute("data-math-copy","true"),a.setAttribute("aria-label","Copy LaTeX code");let n=document.createElement("span");n.setAttribute("aria-hidden","true"),n.textContent="\u29C9";let i=document.createElement("span");i.className="visually-hidden",i.textContent="Copy equation",a.appendChild(n),a.appendChild(i);let r=document.createElement("button");r.type="button",r.className="math-expression__button",r.setAttribute("data-math-edit","true"),r.setAttribute("aria-label","Open equation editor");let s=document.createElement("span");s.setAttribute("aria-hidden","true"),s.textContent="\u270E";let o=document.createElement("span");o.className="visually-hidden",o.textContent="Edit equation",r.appendChild(s),r.appendChild(o);let l=document.createElement("span");l.className="math-expression__message",l.setAttribute("aria-live","polite"),l.hidden=!0,e.appendChild(a),e.appendChild(r),e.appendChild(l),t.appendChild(e)}},handleClick(t){let e=t.target.closest("[data-math-copy]");if(e){t.preventDefault();let s=e.closest(".math-expression"),o=s?s.dataset.mathLatexClean||s.dataset.mathLatex:null;this.copyLatex(o,s);return}let a=t.target.closest("[data-math-edit]");if(a){t.preventDefault();let s=a.closest(".math-expression"),o=s&&s.dataset.mathLatex||"";this.openEditor(o);return}if(t.target.closest("[data-math-editor-close]")){t.preventDefault(),this.closeEditor();return}if(t.target.closest("[data-math-editor-copy]")){t.preventDefault(),this.editor&&this.editor.textarea&&this.copyLatex(this.editor.textarea.value,null,this.editor.status);return}let r=t.target.closest("[data-symbol-insert]");if(r){t.preventDefault();let s=r.getAttribute("data-symbol-insert");this.insertSymbol(s||"")}},handleKeydown(t){let e=document.activeElement,a=e&&(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable);if((t.ctrlKey||t.metaKey)&&t.altKey&&(t.key==="e"||t.key==="E")){t.preventDefault();let n=a&&e&&e.value||"";this.openEditor(n);return}t.key==="Escape"&&this.editorOpen&&(t.preventDefault(),this.closeEditor())},copyLatex(t,e,a){if(!t)return;let n=r=>{if(a)a.hidden=!1,a.textContent=r,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{a.hidden=!0,a.textContent=""},2e3);else if(e){let s=e.querySelector(".math-expression__message");s&&(s.hidden=!1,s.textContent=r,clearTimeout(this.messageTimeout),this.messageTimeout=window.setTimeout(()=>{s.hidden=!0,s.textContent=""},2e3))}},i=()=>{let r=document.createElement("textarea");r.value=t,r.setAttribute("aria-hidden","true"),r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();try{document.execCommand("copy"),n("Copied equation")}catch(s){n("Unable to copy")}document.body.removeChild(r)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(t).then(()=>n("Copied equation")).catch(()=>i()):i()},setupEditor(){if(this.editor)return;let t=document.createElement("div");t.id="math-tooling-panel",t.hidden=!0;let e=document.createElement("div");e.className="math-tooling",e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-labelledby","math-tooling-title");let a=document.createElement("h2");a.id="math-tooling-title",a.className="math-tooling__title",a.textContent="Equation editor";let n=document.createElement("p");n.className="math-tooling__description",n.innerHTML="Craft LaTeX expressions with live preview, quick statistical symbols, and chemistry support.";let i=document.createElement("textarea");i.className="math-tooling__input",i.setAttribute("data-math-editor-input","true"),i.setAttribute("spellcheck","false"),i.rows=10;let r=document.createElement("div");r.className="math-tooling__actions";let s=document.createElement("div");s.className="math-tooling__preview",s.setAttribute("data-math-editor-preview","true"),s.setAttribute("aria-live","polite");let o=document.createElement("span");o.className="math-tooling__status",o.hidden=!0;let l=document.createElement("div");l.className="math-tooling__library";let c=document.createElement("h3");c.className="math-tooling__library-title",c.textContent="Quick insert";let h=document.createElement("div");h.className="math-tooling__symbols",[{label:"Mean \u03BC",value:"\\mu"},{label:"Variance \u03C3\xB2",value:"\\sigma^2"},{label:"Std. dev \u03C3",value:"\\sigma"},{label:"Probability",value:"\\mathbb{P}(A)"},{label:"Expectation",value:"\\mathbb{E}[X]"},{label:"Covariance",value:"\\mathrm{Cov}(X, Y)"},{label:"Vector",value:"\\mathbf{x}"},{label:"Norm",value:"\\lVert x \\rVert_2"},{label:"Inner product",value:"\\langle x, y \\rangle"},{label:"Derivative",value:"\\frac{\\mathrm{d}}{\\mathrm{d}t}"},{label:"Integral",value:"\\int_0^1 f(x) \\, \\mathrm{d}x"},{label:"Bayes",value:"\\mathbb{P}(A \\mid B)"},{label:"Chemical H\u2082O",value:"\\ce{H2O}"},{label:"Chemical CO\u2082",value:"\\ce{CO2}"}].forEach(g=>{let p=document.createElement("button");p.type="button",p.className="math-tooling__symbol",p.setAttribute("data-symbol-insert",g.value),p.textContent=g.label,h.appendChild(p)});let u=document.createElement("button");u.type="button",u.className="math-tooling__close",u.setAttribute("data-math-editor-close","true");let f=document.createElement("span");f.setAttribute("aria-hidden","true"),f.textContent="\u2715";let b=document.createElement("span");b.className="visually-hidden",b.textContent="Close equation editor",u.appendChild(f),u.appendChild(b);let m=document.createElement("button");m.type="button",m.className="math-tooling__copy",m.setAttribute("data-math-editor-copy","true"),m.textContent="Copy LaTeX",r.appendChild(m),r.appendChild(u),r.appendChild(o),l.appendChild(c),l.appendChild(h),e.appendChild(a),e.appendChild(n),e.appendChild(i),e.appendChild(s),e.appendChild(r),e.appendChild(l),t.appendChild(e),document.body.appendChild(t),i.addEventListener("input",()=>this.updateEditorPreview()),this.editor={overlay:t,dialog:e,textarea:i,preview:s,status:o}},openEditor(t){if(!this.editor)return;let e=(t||"").trim();this.editor.overlay.hidden=!1,document.body.classList.add("math-tooling-open"),this.editor.textarea.value=e,this.editor.textarea.focus(),this.editor.textarea.setSelectionRange(e.length,e.length),this.editorOpen=!0,this.updateEditorPreview()},closeEditor(){this.editor&&(this.editor.overlay.hidden=!0,document.body.classList.remove("math-tooling-open"),this.editorOpen=!1)},updateEditorPreview(){if(!this.editor||!this.MathJax)return;let t=this.editor.textarea.value.trim();if(!t){this.editor.preview.replaceChildren();let e=document.createElement("p");e.className="math-tooling__placeholder",e.textContent="Preview will appear here.",this.editor.preview.appendChild(e);return}this.renderLatex(this.editor.preview,t,{display:!0,enhance:!1})},insertSymbol(t){if(!this.editor||!this.editor.textarea)return;let e=this.editor.textarea,a=e.selectionStart||0,n=e.selectionEnd||0,i=e.value,r=`${i.slice(0,a)}${t}${i.slice(n)}`;e.value=r;let s=a+t.length;e.focus(),e.setSelectionRange(s,s),this.updateEditorPreview()},updateEquationReferences(){if(!this.equationMap||this.equationMap.size===0)return;document.querySelectorAll("[data-equation-ref]").forEach(a=>{let n=a.getAttribute("data-equation-ref");if(!n)return;let i=this.lookupEquation(n.replace(/^#/,""));if(!i)return;a.setAttribute("href",`#${i.anchor}`);let r=a.textContent.trim();(!r||r===n||r===i.anchor||r===`(${n})`)&&(a.textContent=i.number||i.anchor),a.classList.add("math-reference"),a.setAttribute("aria-label",`Jump to equation ${i.number||i.anchor}`)}),document.querySelectorAll('a[href^="#eq:"]').forEach(a=>{let n=a.getAttribute("href");if(!n)return;let i=n.replace(/^#/,""),r=this.lookupEquation(i);if(!r)return;a.setAttribute("href",`#${r.anchor}`);let s=a.textContent.trim();(!s||s===n||s===i)&&(a.textContent=r.number||r.anchor),a.dataset.equationRef=r.anchor,a.classList.add("math-reference")})},lookupEquation(t){if(!t)return null;if(this.equationMap.has(t))return this.equationMap.get(t);let e=t.startsWith("eq:")?t:`eq:${t}`;return this.equationMap.get(e)||null},renderLatex(t,e,a={}){if(!t)return Promise.resolve();let n=a.display!==!1;if(!this.MathJax)return t.textContent=e,this.pendingTypeset||(this.pendingTypeset=[]),this.pendingTypeset.push({target:t,latex:e,options:a}),Promise.resolve();let i=n?`\\[${e}\\]`:`\\(${e}\\)`;return t.innerHTML=i,this.MathJax.typesetPromise([t]).catch(r=>{})},cleanLatex(t){return(t||"").replace(/%\s*alt:.*$/gm,"").replace(/\\label\{[^}]*\}/g,"").replace(/\\tag\*?\{[^}]*\}/g,"").trim()},resolveAltText(t,e){let a=t||null,n=this.findDatasetAlt(a);if(n)return n;let i=this.extractAltComment(e);if(i)return i;let s=(a&&a.getAttribute?a.getAttribute("data-math-source"):null)||e;return this.generateAltFromLatex(s)},findDatasetAlt(t){let e=t;for(;e;){if(e.dataset&&e.dataset.mathAlt){let a=e.dataset.mathAlt.trim();if(a)return a}e=e.parentElement}return""},extractAltComment(t){if(!t)return"";let e=String(t).split(/\r?\n/);for(let a=0;a<e.length;a+=1){let n=e[a];if(!n)continue;let i=n.match(/%\s*alt:\s*(.+)$/i);if(i)return i[1].trim()}return""},generateAltFromLatex(t){if(!t)return"";let e=String(t).replace(/%.*$/gm,"");return e=e.replace(/\\frac\s*\{([^{}]+)\}\s*\{([^{}]+)\}/g,(a,n,i)=>{let r=this.sanitizeSegment(n),s=this.sanitizeSegment(i);return`${r} over ${s}`.trim()}),e=e.replace(/\\int(?:_\{([^}]*)\}|_([^\s^{}]+))?(?:\^\{([^}]*)\}|\^([^\s_{}]+))?/g,(a,n,i,r,s)=>{let o=this.sanitizeSegment(n||i),l=this.sanitizeSegment(r||s),c="integral";return o&&(c+=` from ${o}`),l&&(c+=` to ${l}`),c}),e=e.replace(/\\sum(?:_\{([^}]*)\}|_([^\s^{}]+))?(?:\^\{([^}]*)\}|\^([^\s_{}]+))?/g,(a,n,i,r,s)=>{let o=this.sanitizeSegment(n||i),l=this.sanitizeSegment(r||s),c="summation";return o&&(c+=` from ${o}`),l&&(c+=` to ${l}`),c}),e=e.replace(/\\sqrt\s*\{([^{}]+)\}/g,(a,n)=>`square root of ${this.sanitizeSegment(n)}`),e=e.replace(/\\mathrm\s*\{([^{}]+)\}/g,(a,n)=>this.sanitizeSegment(n)),e=e.replace(/\\operatorname\*?\s*\{([^{}]+)\}/g,(a,n)=>this.sanitizeSegment(n)),e=e.replace(/\\[a-zA-Z]+/g," "),e=e.replace(/[{}]/g," "),e=e.replace(/\s+/g," ").trim(),e||"Mathematical expression"},sanitizeSegment(t){return t?String(t).replace(/\\[a-zA-Z]+/g," ").replace(/[{}]/g," ").replace(/\s+/g," ").trim():""},syncAltAttributes(t,e,a){a&&(t&&t.setAttribute&&(t.setAttribute("aria-label",a),t.dataset&&(t.dataset.mathAlt=a)),e&&e.setAttribute&&(e.setAttribute("aria-label",a),e.dataset&&(e.dataset.mathAlt=a)))}};typeof globalThis!="undefined"&&(globalThis.__DATALOG_MATH_INTERNALS__=d),typeof document!="undefined"&&(document.addEventListener("datalog:math-ready",()=>d.exposeAllReferenceLinks(document)),d.exposeAllReferenceLinks(document)),window.DatalogMath={init(t){d.init(t)},onPageReady(){d.initialized&&d.onPageReady()},renderLatex(t,e,a){return d.renderLatex(t,e,a)}}})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as U,b as O}from"./chunks/chunk-2DYDWUFX.js";import{a as T,b as N}from"./chunks/chunk-PATLC23F.js";var z="moderation",V=["comment","correction","abuse"],Y={approve:"approved",spam:"spam",hide:"hidden",delete:"deleted",reviewed:"reviewed",accept:"accepted",reject:"rejected",resolve:"resolved",dismiss:"dismissed"},G={comment:{pending:["approve","spam","delete"],approved:["hide","spam","delete"],spam:["approve","delete"],hidden:["approve","delete"]},correction:{new:["reviewed","accept","reject"],reviewed:["accept","reject"],accepted:["resolve","reject"]},abuse:{open:["dismiss","hide","delete"]}},X={comment:["pending"],correction:["new","reviewed","accepted"],abuse:["open"]},Q=/^https?:\/\//i,Z=new Set(["unauthorized","forbidden"]),tt=new Set(["disabled","unsupported","version"]);function et(t,e){let s=t.querySelector(e);if(!s)return{};try{return JSON.parse(s.textContent)||{}}catch(d){return{}}}function nt(){let t=globalThis.crypto;return t&&typeof t.randomUUID=="function"?t.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function i(t){return typeof t=="string"?t:""}function W(t){return(G[t.type]||{})[t.status]||[]}function B(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=i(t.type).toLowerCase();if(t.id===null||t.id===void 0||!V.includes(e))return null;let s=t.author&&typeof t.author=="object"?t.author:{},d=t.context&&typeof t.context=="object"?t.context:{},m=d.parent&&typeof d.parent=="object"?d.parent:null,f=t.resolution&&typeof t.resolution=="object"?t.resolution:{},_=Array.isArray(t.history)?t.history:[];return{id:String(t.id),type:e,status:i(t.status).toLowerCase(),created_at:i(t.created_at),path:i(t.path),title:i(t.title),author:{name:i(s.name),email:i(s.email)},body:i(t.body)||i(t.message),category:i(t.category),section:i(t.section),quote:i(t.quote),reason:i(t.reason),parent:m?{author:i(m.author&&m.author.name),body:i(m.body)}:null,link:Q.test(i(f.url))?f.url:"",history:_.filter(l=>l&&typeof l=="object").map(l=>({action:i(l.action),at:i(l.at),moderator:i(l.moderator),note:i(l.note)}))}}function ot(t={},e=""){let s=new URLSearchParams;["type","status","path","category","since","q"].forEach(m=>{let f=i(t[m]).trim();f&&f!=="all"&&s.set(m,f)}),e&&s.set("cursor",e);let d=s.toString();return d?`?${d}`:""}function P(t,e){let s=new Date(t);if(Number.isNaN(s.getTime()))return t;try{return s.toLocaleString(e||void 0,{dateStyle:"medium",timeStyle:"short"})}catch(d){return s.toISOString()}}function o(t,e,s,d,m){let f=t.createElement(s);return d&&(f.className=d),m!==void 0&&(f.textContent=m),e.appendChild(f),f}function K(t,e,s={}){let{labels:d={},lang:m,siteUrl:f="",onAction:_}=s,l=d.types||{},q=d.statuses||{},C=d.actions||{},k=t.createElement("li");k.className=`moderation-item moderation-item--${e.type}`,k.dataset.itemId=e.id,k.dataset.itemStatus=e.status;let p=o(t,k,"article","moderation-item__card"),y=o(t,p,"header","moderation-item__meta");if(o(t,y,"span","moderation-item__type",l[e.type]||e.type),o(t,y,"span","moderation-item__status",q[e.status]||e.status),e.category&&o(t,y,"span","moderation-item__category",(d.categories||{})[e.category]||e.category),e.created_at){let r=o(t,y,"time","moderation-item__time",P(e.created_at,m));r.dateTime=e.created_at}if(e.path){let r=o(t,p,"p","moderation-item__where"),c=o(t,r,"a","",e.title||e.path);e.path.startsWith("/")&&!e.path.startsWith("//")&&(c.href=`${f.replace(/\/+$/,"")}${e.path}${e.section?`#${encodeURIComponent(e.section)}`:""}`)}if((e.author.name||e.author.email)&&o(t,p,"p","moderation-item__author",[e.author.name,e.author.email].filter(Boolean).join(" \xB7 ")),e.parent){let r=o(t,p,"blockquote","moderation-item__context");o(t,r,"p","",`${d.in_reply_to||"In reply to"} ${e.parent.author||""}`.trim()),o(t,r,"p","",e.parent.body)}e.quote&&o(t,p,"blockquote","moderation-item__quote",e.quote),e.reason&&o(t,p,"p","moderation-item__reason",e.reason);let A=o(t,p,"div","moderation-item__body");if(e.body.split(/\n{2,}/).forEach(r=>o(t,A,"p","",r)),e.link){let r=o(t,p,"p","moderation-item__link"),c=o(t,r,"a","",e.link);c.href=e.link,c.rel="noopener"}if(e.history.length>0){let r=o(t,p,"ol","moderation-item__history");e.history.forEach(c=>{let g=[C[c.action]||c.action,c.moderator,c.at?P(c.at,m):"",c.note].filter(Boolean).join(" \xB7 ");o(t,r,"li","",g)})}let S=W(e);if(S.length>0&&_){let r=o(t,p,"div","moderation-item__actions"),c=`moderation-note-${e.id}`,g=o(t,r,"label","moderation-item__note-label",d.note||"Note");g.htmlFor=c;let E=o(t,r,"input","moderation-item__note");E.type="text",E.id=c,E.name="note";let w=null;if(S.includes("resolve")){let x=`moderation-link-${e.id}`,h=o(t,r,"label","moderation-item__note-label",d.link||"Issue, pull request or revision");h.htmlFor=x,w=o(t,r,"input","moderation-item__note"),w.type="url",w.id=x,w.name="link"}let $=o(t,r,"div","moderation-item__buttons");S.forEach(x=>{let h=o(t,$,"button","post-tool",C[x]||x);h.type="button",h.dataset.moderationAction=x,h.addEventListener("click",()=>_(e,x,{note:E.value.trim(),link:w?w.value.trim():""}))})}let I=o(t,p,"p","moderation-item__message");return I.setAttribute("data-item-message",""),I.setAttribute("role","status"),I.hidden=!0,k}function at(t,e={}){let s=t.ownerDocument,d=s.defaultView,m=d&&d.DatalogDynamicServices||{},f=t.dataset.moderationEndpoint||"",_=e.client||O(N(T({},m),{base_url:f||m.base_url||"",credentials:t.dataset.moderationCredentials||"include"})),l=et(t,"[data-moderation-labels]"),q=l.errors||{},C=s.documentElement.lang||void 0,k=t.dataset.moderationSite||"",p=t.querySelector("[data-moderation-status]"),y=t.querySelector("[data-moderation-list]"),A=t.querySelector("[data-moderation-filters]"),S=t.querySelector("[data-moderation-more]"),I=t.querySelector("[data-moderation-sign-in]"),r="",c=!1,g=(n,a="",b=!1)=>{t.dataset.state=n,t.setAttribute("aria-busy",n==="loading"?"true":"false"),p&&(p.textContent=a,p.hidden=a==="",p.setAttribute("role",b?"alert":"status")),I&&(I.hidden=n!=="unauthorized")},E=()=>{let n={};return A&&new FormData(A).forEach((a,b)=>{n[b]=String(a)}),n},w=n=>{y.textContent="",S&&(S.hidden=!0),n&&n.kind==="unauthorized"?g("unauthorized",l.unauthorized||"",!0):n&&n.kind==="forbidden"?g("forbidden",l.forbidden||"",!0):n&&tt.has(n.kind)?g("disabled",U(n,q)):g("error",U(n,q),!0)},$=(n,a,b=!1)=>{let u=n.querySelector("[data-item-message]");u&&(u.textContent=a,u.hidden=a==="",u.setAttribute("role",b?"alert":"status"))},x=n=>{let a=i(E().status).trim();return a?a===n.status:(X[n.type]||[]).includes(n.status)},h={root:t,client:_,async load(n=!1){if(c)return null;c=!0,n||(r=""),g("loading",l.loading||"");try{await _.feature(z);let a=await _.get(`${_.pathFor(z)}/items${ot(E(),n?r:"")}`),b=a&&a.data&&typeof a.data=="object"?a.data:{},u=(Array.isArray(b.items)?b.items:[]).map(B).filter(Boolean);n||(y.textContent=""),u.forEach(L=>y.appendChild(K(s,L,{labels:l,lang:C,siteUrl:k,onAction:h.act}))),r=i(b.next_cursor),S&&(S.hidden=r==="");let j=y.children.length;return g(j>0?"loaded":"empty",j>0?"":l.empty||""),u}catch(a){return w(a),null}finally{c=!1}},async act(n,a,b={}){let u=Array.from(y.children).find(v=>v.dataset.itemId===n.id);if(!u||!W(n).includes(a))return null;if(a==="resolve"&&!Q.test(b.link||""))return $(u,l.link_required||"",!0),null;let j=Array.from(u.querySelectorAll("button"));j.forEach(v=>{v.disabled=!0}),u.setAttribute("aria-busy","true"),$(u,l.working||"");let L={action:a};b.note&&(L.note=b.note),a==="resolve"&&(L.link=b.link);try{let v=await _.post(`${_.pathFor(z)}/items/${encodeURIComponent(n.id)}/actions`,L,{idempotencyKey:nt()}),F=B(v&&v.data&&v.data.item)||N(T({},n),{status:Y[a]||n.status}),D=(l.done||"{{action}}").split("{{action}}").join((l.actions||{})[a]||a);if(x(F)){let R=K(s,F,{labels:l,lang:C,siteUrl:k,onAction:h.act});y.replaceChild(R,u),$(R,D)}else u.remove(),g(y.children.length>0?"loaded":"empty",y.children.length>0?D:`${D} ${l.empty||""}`.trim());return F}catch(v){return v&&Z.has(v.kind)?w(v):(u.setAttribute("aria-busy","false"),j.forEach(M=>{M.disabled=!1}),$(u,U(v,q),!0)),null}}};return A&&(A.addEventListener("submit",n=>{n.preventDefault(),h.load()}),A.addEventListener("reset",()=>{Promise.resolve().then(()=>h.load())})),S&&S.addEventListener("click",()=>h.load(!0)),_.enabled?(h.load(),h):(g("disabled",q.disabled||""),h)}function H(t=document){return Array.from(t.querySelectorAll("[data-moderation-inbox]")).map(e=>at(e))}function J(){H(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",J,{once:!0}):J();
|
data/assets/js/dist/notebook.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunks/chunk-
|
|
1
|
+
import"./chunks/chunk-PATLC23F.js";var a=t=>new Promise((r,o)=>{if(document.querySelector(`script[src="${t}"]`)){r();return}let e=document.createElement("script");e.src=t,e.async=!0,e.onload=()=>r(),e.onerror=n=>o(n),document.head.appendChild(e)}),i=()=>{let t=document.querySelectorAll(".notebook-output-plotly");return t.length?(typeof window.Plotly!="undefined"?Promise.resolve(window.Plotly):a("https://cdn.jsdelivr.net/npm/plotly.js-dist-min@2.27.0/plotly.min.js").then(()=>window.Plotly)).then(o=>{t.forEach(e=>{try{let n=JSON.parse(e.dataset.plotly||"{}"),l=n.layout||{},s=Array.isArray(n.data)?n.data:Array.isArray(n)?n:[];o.newPlot(e,s,l,{responsive:!0})}catch(n){e.replaceChildren(),e.insertAdjacentHTML("afterbegin",'<p class="notebook-output__warning">Plotly figure could not be rendered. Open in Binder or Colab to interact.</p>')}})}):Promise.resolve()},d=()=>{let t=document.querySelectorAll(".notebook-output-vega");return t.length?a("https://cdn.jsdelivr.net/npm/vega@5").then(()=>a("https://cdn.jsdelivr.net/npm/vega-lite@5")).then(()=>a("https://cdn.jsdelivr.net/npm/vega-embed@6")).then(()=>{t.forEach(o=>{try{let e=JSON.parse(o.dataset.vega||"{}");window.vegaEmbed(o,e,{actions:!1})}catch(e){o.replaceChildren(),o.insertAdjacentHTML("afterbegin",'<p class="notebook-output__warning">Vega specification could not be parsed. Open in Binder for the interactive version.</p>')}})}):Promise.resolve()},p=()=>{document.querySelectorAll(".notebook-segment").forEach((r,o)=>{let e=r.id||`cell-${o+1}`;r.id=e,r.setAttribute("data-cell-anchor",e)})},u=()=>{let t={root:null,rootMargin:"0px 0px -65%",threshold:0},r=document.querySelectorAll(".notebook-segment"),o=document.querySelectorAll("[data-cell-anchor-link]");if(!r.length||!o.length)return;let e=new IntersectionObserver(n=>{n.forEach(l=>{l.isIntersecting&&o.forEach(s=>{s.classList.toggle("is-active",s.hash===`#${l.target.id}`)})})},t);r.forEach(n=>e.observe(n))},c=()=>{p(),i().catch(()=>{document.querySelectorAll(".notebook-output-plotly").forEach(t=>{t.replaceChildren(),t.insertAdjacentHTML("afterbegin",'<p class="notebook-output__warning">Plotly assets failed to load. Launch Binder/Colab to view the interactive chart.</p>')})}),d().catch(()=>{document.querySelectorAll(".notebook-output-vega").forEach(t=>{t.replaceChildren(),t.insertAdjacentHTML("afterbegin",'<p class="notebook-output__warning">Vega assets failed to load. Launch Binder/Colab to view the interactive chart.</p>')})}),u()};typeof window!="undefined"&&document.readyState==="loading"?document.addEventListener("DOMContentLoaded",c):typeof window!="undefined"&&c();export{p as annotateCells,u as handleScrollSpy,c as initNotebookFeatures,i as initPlotly,d as initVega,a as loadScript};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as v,c as U}from"./chunks/chunk-2DYDWUFX.js";import"./chunks/chunk-PATLC23F.js";var x="reactions",j="datalog-reaction:",k=new Set(["disabled","unsupported","version"]);function N(e,r){let a=e.querySelector(r);if(!a)return{};try{return JSON.parse(a.textContent)||{}}catch(s){return{}}}function T(){let e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function K(e,r){try{return e?e.getItem(j+r):null}catch(a){return null}}function q(e,r,a){try{e&&e.setItem(j+r,a)}catch(s){}}function D(e){let r=e&&typeof e=="object"?e.counts:null;if(!r||typeof r!="object"||Array.isArray(r))return null;let a={};return Object.keys(r).forEach(s=>{let c=r[s];Number.isInteger(c)&&c>=0&&(a[s]=c)}),a}function P(e,r={}){let a=e.ownerDocument,s=r.window||a.defaultView,c=r.client||U(),m=r.storage===void 0?B(s):r.storage,d=e.dataset.reactionsPath||"/",M=e.dataset.reactionsCounts!=="false",f=N(e,"[data-reactions-labels]"),E=f.errors||{},y=e.querySelector("[data-reactions-status]"),i=Array.from(e.querySelectorAll("[data-reaction]")),p=null,g=!1,S=!1,h=K(m,d),u=(t,n=!1)=>{y&&(y.textContent=t,y.hidden=t==="",y.setAttribute("role",n?"alert":"status"))},l=t=>{e.dataset.state=t},w=()=>{i.forEach(t=>{t.setAttribute("aria-pressed",t.dataset.reaction===h?"true":"false")})},b=t=>{i.forEach(n=>{let o=n.querySelector("[data-reaction-count]");if(!o)return;let F=M&&t?t[n.dataset.reaction]:void 0;Number.isInteger(F)?(o.textContent=String(F),o.hidden=!1):(o.textContent="",o.hidden=!0)})},I=t=>{e.setAttribute("aria-busy",t?"true":"false"),i.forEach(n=>{n.disabled=t})},C=t=>{l("disabled"),b(null),i.forEach(n=>{n.disabled=!0}),u(v(t,E))},O=()=>(p||(p=c.feature(x).catch(t=>{throw p=null,t})),p),A={root:e,get selected(){return h},async load(){l("loading");try{await O();let t=await c.get(`${c.pathFor(x)}?path=${encodeURIComponent(d)}`),n=D(t&&t.data);return b(n),l("loaded"),g=!0,n}catch(t){return t&&k.has(t.kind)?C(t):(b(null),l("unavailable")),null}},async react(t){if(S||!i.some(n=>n.dataset.reaction===t))return null;if(t===h)return u(f.already||""),null;S=!0,I(!0),l("pending"),u(f.sending||"");try{await O();let n=await c.post(c.pathFor(x),{path:d,reaction:t},{idempotencyKey:T()});h=t,q(m,d,t),w();let o=D(n&&n.data);return o&&b(o),l("selected"),u(f.thanks||""),n}catch(n){return n&&k.has(n.kind)?C(n):n&&n.kind==="conflict"?(h=t,q(m,d,t),w(),l("selected"),u(f.already||"")):(l(g?"loaded":"unavailable"),u(v(n,E),!0)),null}finally{S=!1,e.dataset.state!=="disabled"&&I(!1)}}};w(),i.forEach(t=>{t.addEventListener("click",()=>{A.react(t.dataset.reaction)})});let R=()=>{g||A.load()};if(r.immediate||!s||typeof s.IntersectionObserver!="function")R();else{let t=new s.IntersectionObserver(n=>{n.some(o=>o.isIntersecting)&&(t.disconnect(),R())},{rootMargin:"400px 0px"});t.observe(e)}return A}function B(e){try{return e&&e.localStorage?e.localStorage:null}catch(r){return null}}function L(e=document){return Array.from(e.querySelectorAll("[data-reactions]")).map(r=>P(r))}function $(){L(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",$,{once:!0}):$();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as v,b as k}from"./chunks/chunk-PATLC23F.js";var lt=new Set(["SCRIPT","STYLE","TEMPLATE","NOSCRIPT"]),z=3;function F(t){let e=t.ownerDocument,n=[],r="",a=e.createTreeWalker(t,4,{acceptNode(o){return lt.has(o.parentNode&&o.parentNode.nodeName)?2:1}});for(let o=a.nextNode();o;o=a.nextNode())n.push({node:o,start:r.length,end:r.length+o.data.length}),r+=o.data;return{text:r,nodes:n}}function M(t,e){return!!(t.compareDocumentPosition(e)&4)}function J(t,e,n){if(e.nodeType===z){let o=t.nodes.find(i=>i.node===e);return o?o.start+n:0}let r=e.childNodes[n];if(!r){let o=t.nodes.find(i=>!e.contains(i.node)&&M(e,i.node));return o?o.start:t.text.length}let a=t.nodes.find(o=>o.node===r||r.contains(o.node)||M(r,o.node));return a?a.start:t.text.length}function ct(t,e){let n=e.nodeType===z?e.parentNode:e,r=null;return t.querySelectorAll("h2[id], h3[id], h4[id]").forEach(a=>{(a===n||a.contains(n)||M(a,n))&&(r=a.id)}),r}function G(t,e){let n=F(e),r=J(n,t.startContainer,t.startOffset),a=J(n,t.endContainer,t.endOffset);return a<=r?null:{quote:n.text.slice(r,a),prefix:n.text.slice(Math.max(0,r-32),r),suffix:n.text.slice(a,a+32),section:ct(e,t.startContainer)}}function Y(t,e){let n=[],r=t.indexOf(e);for(;r!==-1;)n.push(r),r=t.indexOf(e,r+1);return n}function K(t){let e="",n=[],r=!1;for(let a=0;a<t.length;a+=1){let o=t[a];/\s/.test(o)?r||(e+=" ",n.push(a),r=!0):(e+=o,n.push(a),r=!1)}return{out:e,map:n}}function dt(t,e){let n=0;for(;n<t.length&&n<e.length&&t[t.length-1-n]===e[e.length-1-n];)n+=1;return n}function ut(t,e){let n=0;for(;n<t.length&&n<e.length&&t[n]===e[n];)n+=1;return n}function ft(t,e,n){let r=t.nodes.find(i=>e>=i.start&&e<i.end)||t.nodes.find(i=>e===i.end),a=t.nodes.find(i=>n>i.start&&n<=i.end);if(!r||!a)return null;let o=r.node.ownerDocument.createRange();return o.setStart(r.node,e-r.start),o.setEnd(a.node,n-a.start),o}function I(t,e){if(!e||typeof e.quote!="string"||e.quote==="")return null;let n=F(t),r=Y(n.text,e.quote).map(o=>({start:o,end:o+e.quote.length}));if(r.length===0){let o=K(n.text),i=K(e.quote).out.trim();i&&(r=Y(o.out,i).map(s=>({start:o.map[s],end:o.map[s+i.length-1]+1})))}if(r.length===0)return null;let a=r.map(o=>k(v({},o),{score:dt(n.text.slice(Math.max(0,o.start-32),o.start),e.prefix||"")+ut(n.text.slice(o.end,o.end+32),e.suffix||"")}));return a.sort((o,i)=>i.score-o.score),ft(n,a[0].start,a[0].end)}var pt="datalog-annotation",W="reading-highlight";function ht(t=window){return!!(t&&t.CSS&&"highlights"in t.CSS&&typeof t.Highlight=="function")}function gt(t){t.querySelectorAll(`mark.${W}`).forEach(e=>{let n=e.parentNode;for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e),n.normalize()})}function mt(t,e){let n=t.startContainer.ownerDocument,r=t.commonAncestorContainer,a=[];if(r.nodeType===3)a.push(r);else{let o=n.createTreeWalker(r,4);for(let i=o.nextNode();i;i=o.nextNode())t.intersectsNode(i)&&a.push(i)}a.forEach(o=>{let i=n.createRange();if(i.setStart(o,o===t.startContainer?t.startOffset:0),i.setEnd(o,o===t.endContainer?t.endOffset:o.data.length),i.collapsed)return;let s=n.createElement("mark");s.className=W,s.dataset.annotationId=e,i.surroundContents(s)})}function Q(t,e,n={}){let r=t.ownerDocument.defaultView,a=n.api===void 0?ht(r):n.api,o=[],i=[];gt(t);let s=[];return e.forEach(c=>{let h=I(t,c);h?(o.push(c.id),s.push([c.id,h])):i.push(c.id)}),a?r.CSS.highlights.set(pt,new r.Highlight(...s.map(([,c])=>c))):s.reverse().forEach(([c,h])=>mt(h,c)),{found:o,lost:i}}var O="datalog-reading:";function yt(t=window){try{let e=t.localStorage,n=`${O}probe`;return e.setItem(n,"1"),e.removeItem(n),e}catch(e){return null}}function w(t,e=""){return{article:t,title:e,bookmarked:!1,annotations:[]}}function St(t){return!!(t&&typeof t.id=="string"&&typeof t.quote=="string"&&t.quote.length>0)}function $(t){try{let e=JSON.parse(t);return e&&typeof e=="object"?e:null}catch(e){return null}}function N(t){if(!t||typeof t.article!="string"||t.article==="")return null;let e=w(t.article,typeof t.title=="string"?t.title:"");return e.bookmarked=t.bookmarked===!0,e.annotations=Array.isArray(t.annotations)?t.annotations.filter(St):[],t.progress&&typeof t.progress.ratio=="number"&&(e.progress=t.progress),typeof t.saved_at=="string"&&(e.saved_at=t.saved_at),typeof t.updated_at=="string"&&(e.updated_at=t.updated_at),e}function Z(t=yt()){let e=!!t,n=l=>`${O}${l}`;function r(){let l=[];for(let d=0;d<t.length;d+=1){let p=t.key(d);p&&p.startsWith(O)&&p!==`${O}probe`&&l.push(p)}return l}function a(l){if(!e)return null;try{return N($(t.getItem(n(l))))}catch(d){return null}}function o(l,d){if(!e)return!1;try{let p=N(k(v({},d),{article:l}));return p?(p.updated_at=new Date().toISOString(),t.setItem(n(l),JSON.stringify(p)),!0):!1}catch(p){return!1}}function i(l){if(!e)return!1;try{return t.removeItem(n(l)),!0}catch(d){return!1}}function s(){if(!e)return[];try{return r().map(l=>N($(t.getItem(l)))).filter(Boolean)}catch(l){return[]}}function c(){if(!e)return!1;try{return r().forEach(l=>t.removeItem(l)),!0}catch(l){return!1}}function h(){return JSON.stringify({format:1,exported_at:new Date().toISOString(),articles:s()},null,2)}function m(l){let d=$(l),p=Array.isArray(d)?d:d&&Array.isArray(d.articles)?d.articles:null;if(!p)throw new Error("Not a reading data export");return p.reduce((x,T)=>{let b=N(T);return b&&o(b.article,b)?x+1:x},0)}return{available:e,read:a,write:o,remove:i,all:s,clear:c,exportJSON:h,importJSON:m}}var xt=.4;function Et({scrollY:t,innerHeight:e,contentTop:n,contentHeight:r,headings:a}){let o=t+e*xt,i=r>0?Math.min(1,Math.max(0,(o-n)/r)):0,s=null;return a.forEach(c=>{c.top<=o&&(s=c.id)}),{ratio:Math.round(i*1e3)/1e3,anchor:s}}function tt(t,e,n){return!!(t&&typeof t.ratio=="number"&&t.ratio>=.05&&t.ratio<=.92&&e>n*1.5)}function et({content:t,store:e,article:n,title:r,win:a=window,interval:o=1e3}){let i=null,s=null,c=()=>{let l=t.getBoundingClientRect(),d=Array.from(t.querySelectorAll("h2[id], h3[id], h4[id]")).map(p=>({id:p.id,top:p.getBoundingClientRect().top+a.scrollY}));return Et({scrollY:a.scrollY,innerHeight:a.innerHeight,contentTop:l.top+a.scrollY,contentHeight:l.height,headings:d})},h=()=>{let l=c();if(s&&Math.abs(s.ratio-l.ratio)<.01)return;s=l;let d=e.read(n)||w(n,r);d.title=d.title||r,d.progress=k(v({},l),{updated_at:new Date().toISOString()}),e.write(n,d)},m=()=>{i||(i=a.setTimeout(()=>{i=null,h()},o))};return a.addEventListener("scroll",m,{passive:!0}),{stop(){a.removeEventListener("scroll",m),i&&a.clearTimeout(i)},save:h,snapshot:c}}var vt=new Set(["INPUT","TEXTAREA","SELECT"]);function B(t,e){return Object.keys(e).reduce((n,r)=>n.split(`{{${r}}}`).join(String(e[r])),t||"")}function kt(){let t=globalThis.crypto;return t&&typeof t.randomUUID=="function"?t.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function bt(t){let e=t.activeElement;return!!(e&&(vt.has(e.tagName)||e.isContentEditable))}function nt(t,e){if(!e)return"";let n=t.ownerDocument.getElementById(e);return n&&t.contains(n)?n.textContent.trim():e}function Ct(t,e){let n=t.startContainer.nodeType===3?t.startContainer.parentElement:t.startContainer;n&&typeof n.scrollIntoView=="function"&&n.scrollIntoView({block:"center"});let r=e.getSelection&&e.getSelection();r&&(r.removeAllRanges(),r.addRange(t))}function ot(t,e){let n=t.dataset.article,r=t.dataset.title||"",a=t.querySelector("[data-bookmark-label]")||t,o=()=>{let i=e.read(n),s=!!(i&&i.bookmarked);t.setAttribute("aria-pressed",s?"true":"false"),a.textContent=s?t.dataset.labelSaved:t.dataset.labelSave};return e.available?(t.addEventListener("click",()=>{let i=e.read(n)||w(n,r);i.title=i.title||r,i.bookmarked=!i.bookmarked,i.saved_at=i.bookmarked?new Date().toISOString():void 0,e.write(n,i),o()}),o(),{refresh:o}):(t.disabled=!0,t.title=t.dataset.unavailable||"",{refresh:o})}function rt(t,e,n,r){let a=t.ownerDocument,o=a.defaultView,i=t.querySelector("[data-reading-status]"),s=d=>{i&&(i.textContent=d)},c=t.querySelector("[data-reading-export]");c&&c.addEventListener("click",()=>{let d=new o.Blob([e.exportJSON()],{type:"application/json"}),p=o.URL.createObjectURL(d),x=a.createElement("a");x.href=p,x.download="datalog-reading-data.json",a.body.appendChild(x),x.click(),x.remove(),o.URL.revokeObjectURL(p),s(c.dataset.done||"")});let h=t.querySelector("[data-reading-import]");h&&h.addEventListener("change",()=>{let d=h.files&&h.files[0];d&&(d.text().then(p=>{let x=e.importJSON(p);s(B(h.dataset.done,{count:x})),n()}).catch(()=>s(h.dataset.failed||"")),h.value="")});let m=t.querySelector("[data-reading-erase-article]");m&&r&&m.addEventListener("click",()=>{e.remove(r),s(m.dataset.done||""),n()});let l=t.querySelector("[data-reading-erase-all]");l&&l.addEventListener("click",()=>{l.dataset.confirm&&!o.confirm(l.dataset.confirm)||(e.clear(),s(l.dataset.done||""),n())})}function qt(t,e,n={}){let r=t.ownerDocument,a=r.defaultView,o=t.dataset.article,i=t.dataset.title||"",s=n.content||r.querySelector(".post-content"),c=t.dataset.progress!=="false",h=t.dataset.highlights!=="false",m=t.querySelector("[data-reading-resume]"),l=t.querySelector("[data-reading-toolbar]"),d=t.querySelector("[data-reading-list-items]"),p=t.querySelector("[data-reading-empty]"),x=t.querySelector("[data-reading-item-template]"),T=t.querySelector("[data-reading-unavailable]"),b=n.bookmark?ot(n.bookmark,e):null,A=null,P=[],E=()=>e.read(o)||w(o,i),D=u=>{u.title=u.title||i,e.write(o,u)};if(!e.available)return T&&(T.hidden=!1),t.querySelectorAll("button, input").forEach(u=>{u.disabled=!0}),{available:!1,record:E,addAnnotation:()=>null,removeAnnotation:()=>!1,repaint:()=>null};let U=()=>{if(!s||!h)return{found:[],lost:[]};let u=Q(s,E().annotations);return P=u.lost,u},at=()=>{if(!d||!x)return;let u=E().annotations;d.textContent="",p&&(p.hidden=u.length>0),u.forEach(f=>{let g=x.content.firstElementChild.cloneNode(!0);g.dataset.annotation=f.id;let y=g.querySelector("[data-annotation-quote]");y.textContent=f.quote.length>160?`${f.quote.slice(0,157)}\u2026`:f.quote;let S=g.querySelector("[data-annotation-section]");S.textContent=nt(s,f.section);let q=g.querySelector("[data-annotation-lost]");q.hidden=!P.includes(f.id);let _=g.querySelector("[data-annotation-note]");_.value=f.note||"",_.addEventListener("change",()=>{let R=E(),V=R.annotations.find(st=>st.id===f.id);V&&(V.note=_.value,D(R))}),g.querySelector("[data-annotation-go]").addEventListener("click",()=>{let R=s&&I(s,f);R&&Ct(R,a)}),g.querySelector("[data-annotation-remove]").addEventListener("click",()=>{C.removeAnnotation(f.id)}),d.appendChild(g)})},L=()=>{U(),at(),b&&b.refresh()},X=()=>{l&&(l.hidden=!0)},it=u=>{if(l&&(A=u,l.hidden=!1,typeof u.getBoundingClientRect=="function")){let f=u.getBoundingClientRect();l.style.top=`${Math.max(0,f.top+a.scrollY-l.offsetHeight-8)}px`,l.style.left=`${Math.max(0,f.left+a.scrollX)}px`}},j=()=>{let u=a.getSelection&&a.getSelection();if(!u||u.rangeCount===0||u.isCollapsed||!s)return null;let f=u.getRangeAt(0);return s.contains(f.commonAncestorContainer)?f:null},C={available:!0,record:E,repaint:U,addAnnotation(u,f=""){if(!s)return null;let g=G(u,s);if(!g||g.quote.trim()==="")return null;let y=k(v({id:kt()},g),{note:f,created_at:new Date().toISOString()}),S=E();return S.annotations.push(y),D(S),L(),y},removeAnnotation(u){let f=E(),g=f.annotations.length;return f.annotations=f.annotations.filter(y=>y.id!==u),f.annotations.length===g?!1:(D(f),L(),!0)},highlightSelection(u=!1){let f=A||j();if(!f)return null;let g=C.addAnnotation(f);A=null,X();let y=a.getSelection&&a.getSelection();if(y&&y.removeAllRanges(),g&&u&&d){let S=d.querySelector(`[data-annotation="${g.id}"] [data-annotation-note]`);S&&S.focus()}return g}};if(h&&l&&s){let u=null;r.addEventListener("selectionchange",()=>{u&&a.clearTimeout(u),u=a.setTimeout(()=>{let y=j();y?it(y.cloneRange()):l.contains(r.activeElement)||(A=null,X())},150)});let f=l.querySelector("[data-reading-highlight]"),g=l.querySelector("[data-reading-note]");f&&f.addEventListener("click",()=>C.highlightSelection(!1)),g&&g.addEventListener("click",()=>C.highlightSelection(!0)),r.addEventListener("keydown",y=>{if(!y.altKey||!y.shiftKey||bt(r))return;let S=y.key.toLowerCase();(S==="h"||S==="n")&&(y.preventDefault(),C.highlightSelection(S==="n"))})}if(c&&s){let u=E().progress;if(m&&!a.location.hash&&tt(u,s.getBoundingClientRect().height,a.innerHeight)){let f=m.querySelector("[data-reading-resume-detail]");if(f){let S=nt(s,u.anchor),q=Math.round(u.ratio*100);f.textContent=`${S?`${S} \xB7 `:""}${B(m.dataset.progressLabel,{percent:q})}`}m.hidden=!1;let g=m.querySelector("[data-reading-resume-go]");g&&g.addEventListener("click",()=>{let S=u.anchor&&r.getElementById(u.anchor);if(S&&typeof S.scrollIntoView=="function")S.scrollIntoView({block:"start"});else{let q=s.getBoundingClientRect();a.scrollTo(0,q.top+a.scrollY+q.height*u.ratio-a.innerHeight*.4)}m.hidden=!0});let y=m.querySelector("[data-reading-resume-dismiss]");y&&y.addEventListener("click",()=>{m.hidden=!0})}et({content:s,store:e,article:o,title:i,win:a})}return rt(t,e,L,o),L(),C}function wt(t,e){let n=t.ownerDocument,r=t.querySelector("[data-reading-list-items]"),a=t.querySelector("[data-reading-list-empty]"),o=t.querySelector("[data-reading-unavailable]"),i=()=>{if(!r)return;let s=e.all().filter(c=>c.bookmarked||c.progress||c.annotations.length>0).sort((c,h)=>String(h.updated_at||"").localeCompare(String(c.updated_at||"")));r.textContent="",a&&(a.hidden=s.length>0),s.forEach(c=>{let h=n.createElement("li");h.className="reading-list__item";let m=n.createElement("a");m.href=c.article,m.textContent=c.title||c.article,h.appendChild(m);let l=n.createElement("span");l.className="reading-list__meta";let d=[];c.bookmarked&&d.push(t.dataset.savedLabel||""),c.progress&&d.push(B(t.dataset.progressLabel,{percent:Math.round(c.progress.ratio*100)})),c.annotations.length>0&&d.push(B(t.dataset.highlightsLabel,{count:c.annotations.length})),l.textContent=d.filter(Boolean).join(" \xB7 "),h.appendChild(l);let p=n.createElement("button");p.type="button",p.className="post-tool",p.textContent=t.dataset.removeLabel||"",p.addEventListener("click",()=>{e.remove(c.article),i()}),h.appendChild(p),r.appendChild(h)})};return e.available?(rt(t,e,i),i(),{render:i}):(o&&(o.hidden=!1),t.querySelectorAll("button, input").forEach(s=>{s.disabled=!0}),{render:i})}function H(t=document,e=Z()){let n=t.querySelector("[data-reading-state]"),r=t.querySelector("[data-reading-list]"),a=t.querySelector("[data-bookmark-toggle]"),o={article:null,list:null};return n?o.article=qt(n,e,{bookmark:a}):a&&ot(a,e),r&&(o.list=wt(r,e)),o}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>H()):H();export{H as initReadingState};
|
data/assets/js/dist/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunks/chunk-225H5YXE.js";var Q="datalog-search-analytics";function j({panel:e,list:n,empty:t,onSelect:i}){if(!e||!n||!t)return{record(){},render(){}};let r=d(),f="";function d(){let u=Object.create(null);try{let c=window.localStorage.getItem(Q);if(c){let a=JSON.parse(c);a&&typeof a=="object"&&Object.entries(a).forEach(([l,S])=>{typeof S=="number"&&Number.isFinite(S)&&(u[l]=S)})}}catch(c){}return u}function m(){try{window.localStorage.setItem(Q,JSON.stringify(r))}catch(u){}}function s(u){let c=(u||"").trim();!c||c===f||(f=c,r[c]=(r[c]||0)+1,m(),p())}function p(){let u=Object.entries(r).filter(([a])=>a&&a.trim().length>1).sort((a,l)=>l[1]-a[1]).slice(0,5);if(n.replaceChildren(),u.length===0){t.hidden=!1;return}t.hidden=!0;let c=document.createDocumentFragment();u.forEach(([a,l])=>{let S=document.createElement("li"),g=document.createElement("button");g.type="button",g.className="search-analytics__query",g.textContent=`${a} (${l})`,g.addEventListener("click",()=>{typeof i=="function"&&i(a)}),S.appendChild(g),c.appendChild(S)}),n.appendChild(c)}return{record:s,render:p}}function k(e=""){let n=e==null?"":String(e);try{return n.toLowerCase().normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"")}catch(t){return n.toLowerCase()}}function F(e=""){return k(e).replace(/\s+/g,"")}function P(e=""){return k(e).split(/[^\p{L}\p{N}\\._]+/u).filter(Boolean)}function H(e=""){return/\\|\^|_|\{|\}|\$/.test(e)}function B(e=""){return/`|::|->|=>|\(|\)|\{|\}|\[|\]|=|\bdef\b|\bfunction\b|\bclass\b/.test(e)}function K(e,n){if(!e||!n)return!1;let t=0;for(let i=0;i<e.length&&t<n.length;i+=1)e[i]===n[t]&&(t+=1);return t===n.length}function ae(e){return e&&new DOMParser().parseFromString(String(e),"text/html").body.textContent||""}function O(e,n,t){if(!e)return"";let i=ae(e),r=Math.max(0,n-80),f=Math.min(i.length,n+t+80);return`${i.slice(r,f)}${f<i.length?"\u2026":""}`}function ie(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oe={"&":"&","<":"<",">":">",'"':""","'":"'"};function _(e){return String(e).replace(/[&<>"']/g,n=>oe[n])}function N(e,n){if(!e)return"";let t=String(e),i=Array.from(new Set(P(n||""))).sort((s,p)=>p.length-s.length);if(!i.length)return _(t);let r=new RegExp(i.map(ie).join("|"),"giu"),f="",d=0,m;for(;(m=r.exec(t))!==null;)f+=`${_(t.slice(d,m.index))}<mark>${_(m[0])}</mark>`,d=m.index+m[0].length;return f+_(t.slice(d))}function M(e){return(e||"").toString().split(/[-_\s]+/).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function X(e){switch(e){case"post":return"Tutorial & Blog";case"project":return"Project";case"research":return"Research";case"dataset":return"Dataset";default:return M(e||"Page")}}function J({panel:e,limit:n=8,onSelect:t}){if(!e)return{setSuggestions(){},update(){},close(){},handleNavigation(){}};let i=[],r=-1;function f(c){i=Array.isArray(c)?[...c]:[]}function d(c){r=-1;let a=(c||"").trim().toLowerCase();if(!a){p();return}let l=i.filter(g=>g&&g.toLowerCase().includes(a)).slice(0,n);if(l.length===0){p();return}let S=document.createDocumentFragment();l.forEach((g,C)=>{let E=document.createElement("button");E.type="button",E.className="search-autocomplete__option",E.setAttribute("role","option"),E.dataset.autocompleteOption="",E.dataset.value=g,E.setAttribute("aria-selected",C===r?"true":"false"),E.replaceChildren(),E.insertAdjacentHTML("beforeend",N(g,a)),S.appendChild(E)}),e.replaceChildren(),e.appendChild(S),e.hidden=!1}function m(c,a){if(e.hidden)return;let l=Array.from(e.querySelectorAll("[data-autocomplete-option]"));if(l.length!==0){if(c.key==="ArrowDown")c.preventDefault(),r=(r+1)%l.length,s(l);else if(c.key==="ArrowUp")c.preventDefault(),r=(r-1+l.length)%l.length,s(l);else if(c.key==="Enter"&&r>=0){c.preventDefault();let S=l[r],g=S?S.dataset.value:"";g&&a&&(a.value=g),typeof t=="function"&&t(g),u()}}}function s(c){c.forEach((a,l)=>{let S=l===r;a.setAttribute("aria-selected",S?"true":"false"),a.classList.toggle("is-active",S)})}function p(){e.replaceChildren(),e.hidden=!0,r=-1}function u(){p()}return e.addEventListener("click",c=>{let a=c.target.closest("[data-autocomplete-option]");if(!a)return;let l=a.dataset.value||"";l&&typeof t=="function"&&t(l),u()}),{setSuggestions:f,update:d,close:u,handleNavigation:m}}function W(e=[]){let n=Array.isArray(e)?[...e]:[];function t(d){n=Array.isArray(d)?[...d]:[]}function i(d,m={}){let s=(d||"").trim();if(!s)return[];let p=k(s),u=P(s),c=H(s),a=B(s),{type:l="",language:S="",difficulty:g="",tags:C=new Set}=m;return n.map(E=>ce(E,{rawQuery:s,normalizedQuery:p,queryTokens:u,mathQuery:c,codeQuery:a,typeFilter:l,languageFilter:S,difficultyFilter:g,selectedTags:C})).filter(E=>E&&E.score>0).sort((E,T)=>T.score-E.score||E.title.localeCompare(T.title))}function r(d=150){return se(n,d)}function f(){return[...n]}return{setDocuments:t,search:i,suggestions:r,getDocuments:f}}function se(e=[],n=150){let t=new Set;return e.forEach(i=>{i.title&&t.add(i.title),Array.isArray(i.languages)&&i.languages.forEach(r=>t.add(r)),Array.isArray(i.tags)&&i.tags.forEach(r=>t.add(`#${r}`)),Array.isArray(i.math)&&i.math.slice(0,3).forEach(r=>t.add(r))}),Array.from(t).slice(0,n)}function ce(e,n){let{rawQuery:t,normalizedQuery:i,queryTokens:r,mathQuery:f,codeQuery:d,typeFilter:m,languageFilter:s,difficultyFilter:p,selectedTags:u}=n;if(m&&e.type!==m)return null;let c=Array.isArray(e.languages)?e.languages:[];if(s&&!c.includes(s))return null;if(p){let y=String(e.difficulty||"").toLowerCase();if(!y||y!==p)return null}if(u&&u.size>0){let y=new Set(G(e).tags);for(let o of u)if(!y.has(o))return null}if(!t)return null;let{title:a,summary:l,content:S,tags:g,languages:C,difficulty:E}=G(e),T=Array.isArray(e.code)?e.code:[],q=Array.isArray(e.math)?e.math:[],x=0,w="",D=null,A=null;if(a.includes(i)&&(x+=40),r.forEach(y=>{y&&(a.includes(y)&&(x+=12),l.includes(y)&&(x+=8),S.includes(y)&&(x+=6),g.forEach(o=>{o.includes(y)&&(x+=4)}),C.forEach(o=>{o.includes(y)&&(x+=4)}),E.includes(y)&&(x+=2))}),T.length>0){let y=F(t);for(let o of T){let b=String(o.language||"").toLowerCase(),v=o.code||"",z=F(v);if(z.includes(y)){x+=30,D={language:b,code:v};break}if(d&&K(z,y)){x+=18,D={language:b,code:v};break}}!D&&T[0]&&(D={language:String(T[0].language||"").toLowerCase(),code:T[0].code||""})}if(q.length>0){let y=i.replace(/\\/g,"");for(let o of q)if(k(String(o)).includes(y)){x+=26,A=o;break}f&&!A&&q[0]&&(A=q[0],x+=10)}if(S.includes(i)){let y=S.indexOf(i);w=O(e.content||"",y,t.length),x+=10}else if(l.includes(i)){let y=l.indexOf(i);w=O(e.summary||"",y,t.length),x+=6}return x===0?null:{id:`${e.url}`,title:e.title,url:e.url,summary:e.summary,snippet:w,codeSnippet:D,mathSnippet:A,tags:e.tags||[],languages:e.languages||[],difficulty:e.difficulty||"",type:e.type||"page",date:e.date,readingTime:e.reading_time,score:x}}var Y=new WeakMap;function G(e){let n=Y.get(e);if(n)return n;let t=e.normalized||{},i={title:t.title||k(e.title||""),summary:t.summary||k(e.summary||""),content:t.content||k(e.content||""),tags:V(t.tags,e.tags),languages:V(t.languages,e.languages),difficulty:t.difficulty||k(e.difficulty||"")};return Y.set(e,i),i}function V(e,n){return Array.isArray(e)&&e.length>0?e:Array.isArray(n)?n.map(t=>k(t)):[]}function Z(e,n,t){if(!e)return;let i=new Set;n.forEach(d=>{(d.tags||d.topics||[]).forEach(s=>{if(!s)return;let p=String(s).trim().toLowerCase();p&&i.add(p)})});let r=Array.from(i).sort();if(r.length===0){let d=document.createElement("p");d.className="search-filter__empty",d.textContent="No tags available yet.",e.replaceChildren(d);return}let f=document.createDocumentFragment();r.forEach(d=>{let m=document.createElement("button");m.type="button",m.className="search-filter__tag",m.textContent=d,m.dataset.filterTag=d,m.setAttribute("aria-pressed",t.has(d)?"true":"false"),f.appendChild(m)}),e.replaceChildren(),e.appendChild(f)}function ee(e,n,t){let{resultsList:i,resultsMeta:r,emptyState:f,template:d}=t;if(!i||!r||!f||!d)return;if(i.replaceChildren(),!n){r.textContent="Enter a query to begin.",f.hidden=!0;return}if(e.length===0){r.textContent=`No matches for \u201C${n}\u201D.`,f.hidden=!1;return}f.hidden=!0,r.textContent=`${e.length} result${e.length===1?"":"s"} for \u201C${n}\u201D.`;let m=document.createDocumentFragment();e.forEach(s=>{let p=d.content.cloneNode(!0),u=p.querySelector("[data-result-type]"),c=p.querySelector("[data-result-difficulty]"),a=p.querySelector("[data-result-languages]"),l=p.querySelector("[data-result-link]"),S=p.querySelector("[data-result-summary]"),g=p.querySelector("[data-result-code]"),C=g?g.querySelector("code"):null,E=p.querySelector("[data-result-math]"),T=p.querySelector("[data-result-math-preview]"),q=p.querySelector("[data-result-math-code]"),x=p.querySelector("[data-result-math-copy]"),w=p.querySelector("[data-result-excerpt]"),D=p.querySelector("[data-result-tags]"),A=p.querySelector("[data-result-date]");if(u&&(u.textContent=X(s.type)),c&&(s.difficulty?(c.textContent=`Difficulty: ${M(s.difficulty)}`,c.hidden=!1):c.hidden=!0),a&&(s.languages&&s.languages.length>0?(a.textContent=`Languages: ${s.languages.map(y=>M(y)).join(", ")}`,a.hidden=!1):a.hidden=!0),l&&(l.textContent=s.title||s.url,l.setAttribute("href",s.url)),S&&(S.replaceChildren(),S.insertAdjacentHTML("beforeend",N(s.summary||"",n))),E&&q&&(s.mathSnippet?(E.hidden=!1,q.textContent=s.mathSnippet,T&&(window.DatalogMath&&typeof window.DatalogMath.renderLatex=="function"?window.DatalogMath.renderLatex(T,s.mathSnippet,{display:!1,enhance:!1}):window.MathJax&&typeof window.MathJax.typesetPromise=="function"?(T.textContent=`\\(${s.mathSnippet}\\)`,window.MathJax.typesetPromise([T]).catch(()=>{T.textContent=s.mathSnippet})):T.textContent=s.mathSnippet),x&&x.addEventListener("click",()=>le(s.mathSnippet,E))):E.hidden=!0),w&&(s.snippet?(w.replaceChildren(),w.insertAdjacentHTML("beforeend",N(s.snippet,n)),w.hidden=!1):w.hidden=!0),g&&C)if(s.codeSnippet&&s.codeSnippet.code){let y=s.codeSnippet.language||"text";g.classList.remove("language-none"),g.classList.add(`language-${y}`),C.className=`language-${y}`,C.textContent=s.codeSnippet.code,g.hidden=!1}else g.hidden=!0;if(D&&(D.replaceChildren(),(s.tags||[]).forEach(y=>{let o=document.createElement("li");o.textContent=`#${y}`,D.appendChild(o)})),A)if(s.date){let y=new Date(s.date);Number.isNaN(y.getTime())?A.hidden=!0:(A.textContent=y.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),A.hidden=!1)}else A.hidden=!0;m.appendChild(p)}),i.appendChild(m)}function le(e,n){if(!e)return;let t=()=>{if(!n)return;let r=n.querySelector("[data-result-math-copy]"),f=r?r.querySelector(".visually-hidden"):null;if(r&&f){let d=r.getAttribute("data-sr-original")||f.textContent;r.getAttribute("data-sr-original")||r.setAttribute("data-sr-original",d||"Copy LaTeX"),f.textContent="Copied LaTeX",r.classList.add("is-copied"),window.setTimeout(()=>{f.textContent=r.getAttribute("data-sr-original")||"Copy LaTeX",r.classList.remove("is-copied")},2e3)}},i=()=>{let r=document.createElement("textarea");r.value=e,r.setAttribute("aria-hidden","true"),r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();try{document.execCommand("copy"),t()}catch(f){}document.body.removeChild(r)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(()=>t()).catch(()=>i()):i()}var ue=8;function te(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),i=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-meta]"),f=e.querySelector("[data-search-empty]"),d=e.querySelector("[data-search-autocomplete]"),m=e.querySelector("[data-search-analytics]"),s=m?m.querySelector(".search-app__analytics-list"):null,p=m?m.querySelector(".search-app__analytics-empty"):null,u=document.getElementById("search-result-template"),c=e.querySelector("[data-filter-type]"),a=e.querySelector("[data-filter-language]"),l=e.querySelector("[data-filter-difficulty]"),S=e.querySelector("[data-filter-tags]"),g=e.getAttribute("data-search-index")||"/search.json",C=new Set,E=W(),T=j({panel:m,list:s,empty:p,onSelect:o=>{t&&(t.value=o,A())}}),q=J({panel:d,limit:ue,onSelect:o=>{o&&t&&(t.value=o,t.focus(),A())}}),x=!1,w=new URLSearchParams(window.location.search);t&&w.has("q")&&(t.value=w.get("q")||""),c&&w.has("type")&&(c.value=w.get("type")),a&&w.has("language")&&(a.value=w.get("language")),l&&w.has("difficulty")&&(l.value=w.get("difficulty")),w.has("tags")&&w.get("tags").split(",").map(o=>o.trim().toLowerCase()).filter(Boolean).forEach(o=>C.add(o)),fe(t,()=>{q.close(),A()}),de(g).then(o=>{let b=o.documents||[];E.setDocuments(b),q.setSuggestions(E.suggestions()),Z(S,b,C),x=!0,D()}).catch(o=>{r&&(r.textContent="Unable to load the search index. Please try again later.")}),n&&n.addEventListener("submit",o=>{o.preventDefault(),A()}),t&&(t.addEventListener("input",()=>{q.update(t.value)}),t.addEventListener("keydown",o=>{q.handleNavigation(o,t)}),t.addEventListener("focus",()=>{q.update(t.value)})),c&&c.addEventListener("change",A),a&&a.addEventListener("change",A),l&&l.addEventListener("change",A),e.addEventListener("click",o=>{let b=o.target;if(b.matches("[data-filter-tag]")){let v=b.getAttribute("data-filter-tag");v&&(C.has(v)?(C.delete(v),b.setAttribute("aria-pressed","false")):(C.add(v),b.setAttribute("aria-pressed","true")),A())}}),document.addEventListener("click",o=>{!d||d.hidden||e.contains(o.target)||q.close()}),document.addEventListener("keydown",o=>{let b=document.activeElement?document.activeElement.tagName:"";["INPUT","TEXTAREA"].includes(b)||(o.key==="/"&&!o.ctrlKey&&!o.metaKey&&!o.altKey||(o.key==="k"||o.key==="K")&&(o.ctrlKey||o.metaKey))&&(o.preventDefault(),t&&(t.focus(),t.select()))}),T.render();function D(){t&&t.value.trim()?A():y()}function A(){if(!t)return;if(!x){r&&(r.textContent="Loading technical index\u2026");return}let o=t.value.trim(),b={type:c?c.value:"",language:a?a.value:"",difficulty:l?l.value:"",tags:C},v=E.search(o,b);ee(v,o,{resultsList:i,resultsMeta:r,emptyState:f,template:u}),y(o),T.record(o)}function y(o){let b=new URL(window.location.href),v=b.searchParams;o?v.set("q",o):v.delete("q"),c&&c.value?v.set("type",c.value):v.delete("type"),a&&a.value?v.set("language",a.value):v.delete("language"),l&&l.value?v.set("difficulty",l.value):v.delete("difficulty"),C.size>0?v.set("tags",Array.from(C).join(",")):v.delete("tags");let z=v.toString(),R=z?`${b.pathname}?${z}`:b.pathname;window.history.replaceState({},"",R)}}function de(e){return fetch(e,{credentials:"same-origin"}).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.json()})}function fe(e,n){e&&e.addEventListener("keydown",t=>{t.key==="Escape"&&(e.value="",typeof n=="function"&&n())})}var pe=300,ge="search-result-",U=500;function he(e,n=pe){let t,i=(...r)=>{t&&window.clearTimeout(t),t=window.setTimeout(()=>{t=void 0,e.apply(null,r)},n)};return i.cancel=()=>{t&&(window.clearTimeout(t),t=void 0)},i}function $(e,n){if(!e)return;let t=String(n||"");e.textContent===t?e.textContent=`${t}\xA0`:e.textContent=t,t.trim()?e.removeAttribute("hidden"):e.setAttribute("hidden","")}function me(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),i=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-empty]"),f=e.querySelector("[data-search-loading]"),d=e.querySelector("[data-search-region]"),m=e.querySelector('[data-search-live="count"]'),s=e.querySelector('[data-search-live="selection"]'),p=e.querySelector('[data-search-live="status"]');if(!t||!i)return;let u=-1,c=0,a=[],l=!1,S=0,g=null,C=he(()=>{n&&(l=!0,o(),$(p,"Loading results\u2026"),n.dispatchEvent(new Event("submit",{cancelable:!0})))});new MutationObserver(()=>{A()}).observe(i,{childList:!0}),A(),t.addEventListener("input",()=>{w(!1),C()}),t.addEventListener("keydown",T);function T(h){if(!a.length&&["ArrowDown","ArrowUp","Enter"].includes(h.key))return!1;switch(h.key){case"ArrowDown":return h.preventDefault(),q(1),!0;case"ArrowUp":return h.preventDefault(),q(-1),!0;case"Enter":return u>=0?(h.preventDefault(),v(),!0):!1;case"Escape":return h.preventDefault(),z(),!0;default:return!1}}function q(h){if(!a.length)return;let L=u===-1?h>0?0:a.length-1:(u+h+a.length)%a.length;x(L)}function x(h){if(!(h<-1||h>=a.length)&&u!==h)if(u>=0&&a[u]&&a[u].classList.remove("is-active"),u=h,u>=0){let L=a[u];if(!L)return;L.classList.add("is-active");let I=D(L);t.setAttribute("aria-activedescendant",I);let re=R(L);$(s,`Result ${u+1} of ${a.length}: ${re}`),L.scrollIntoView({block:"nearest"})}else t.removeAttribute("aria-activedescendant"),$(s,"Search results selection cleared.")}function w(h=!0){u>=0&&a[u]&&a[u].classList.remove("is-active"),u=-1,t.removeAttribute("aria-activedescendant"),h&&$(s,"Search results selection cleared.")}function D(h){if(h.id)return h.id;c+=1;let L=`${ge}${c}`;return h.id=L,L}function A(){a=Array.from(i.querySelectorAll(".search-result")),a.forEach(h=>{D(h),h.setAttribute("role","option"),h.setAttribute("tabindex","-1")}),u>=a.length&&w(!1),l&&(l=!1,$(p,"Results updated.")),b(),y()}function y(){if(!m)return;let h=t.value.trim();if(!h){$(m,"Enter a query to begin.");return}if(r&&!r.hidden&&a.length===0){$(m,`No results found for \u201C${h}\u201D.`);return}$(m,`${a.length} result${a.length===1?"":"s"} found for \u201C${h}\u201D.`)}function o(){d&&d.setAttribute("aria-busy","true"),f&&(g&&(window.clearTimeout(g),g=null),S=Date.now(),f.hidden=!1,f.removeAttribute("hidden"))}function b(){if(d&&d.setAttribute("aria-busy","false"),f){let h=()=>{f.hidden=!0,f.setAttribute("hidden",""),g=null,S=0},L=S?Date.now()-S:U;if(L<U){let I=U-L;g&&window.clearTimeout(g),g=window.setTimeout(h,I)}else h()}}function v(){let h=u>=0?a[u]:null;if(!h)return;let L=h.querySelector("[data-result-link]");L&&L.href&&window.location.assign(L.href)}function z(){C.cancel(),t.value="",w(),$(p,"Search cleared."),n&&(l=!0,o(),n.dispatchEvent(new Event("submit",{cancelable:!0})))}function R(h){let L=h.querySelector("[data-result-link]");if(L&&L.textContent)return L.textContent.trim();let I=h.querySelector(".search-result__title");return I&&I.textContent?I.textContent.trim():"Result"}}var ye=typeof process!="undefined"&&process.env&&process.env.VITEST==="true";function ne(){te(),me()}ye||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ne):ne());export{he as debounce,me as setupSearchEnhancements,$ as updateLiveRegion};
|
|
1
|
+
import"./chunks/chunk-PATLC23F.js";var Q="datalog-search-analytics";function j({panel:e,list:n,empty:t,onSelect:i}){if(!e||!n||!t)return{record(){},render(){}};let r=d(),f="";function d(){let u=Object.create(null);try{let c=window.localStorage.getItem(Q);if(c){let a=JSON.parse(c);a&&typeof a=="object"&&Object.entries(a).forEach(([l,S])=>{typeof S=="number"&&Number.isFinite(S)&&(u[l]=S)})}}catch(c){}return u}function m(){try{window.localStorage.setItem(Q,JSON.stringify(r))}catch(u){}}function s(u){let c=(u||"").trim();!c||c===f||(f=c,r[c]=(r[c]||0)+1,m(),p())}function p(){let u=Object.entries(r).filter(([a])=>a&&a.trim().length>1).sort((a,l)=>l[1]-a[1]).slice(0,5);if(n.replaceChildren(),u.length===0){t.hidden=!1;return}t.hidden=!0;let c=document.createDocumentFragment();u.forEach(([a,l])=>{let S=document.createElement("li"),g=document.createElement("button");g.type="button",g.className="search-analytics__query",g.textContent=`${a} (${l})`,g.addEventListener("click",()=>{typeof i=="function"&&i(a)}),S.appendChild(g),c.appendChild(S)}),n.appendChild(c)}return{record:s,render:p}}function k(e=""){let n=e==null?"":String(e);try{return n.toLowerCase().normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"")}catch(t){return n.toLowerCase()}}function F(e=""){return k(e).replace(/\s+/g,"")}function P(e=""){return k(e).split(/[^\p{L}\p{N}\\._]+/u).filter(Boolean)}function H(e=""){return/\\|\^|_|\{|\}|\$/.test(e)}function B(e=""){return/`|::|->|=>|\(|\)|\{|\}|\[|\]|=|\bdef\b|\bfunction\b|\bclass\b/.test(e)}function K(e,n){if(!e||!n)return!1;let t=0;for(let i=0;i<e.length&&t<n.length;i+=1)e[i]===n[t]&&(t+=1);return t===n.length}function ae(e){return e&&new DOMParser().parseFromString(String(e),"text/html").body.textContent||""}function O(e,n,t){if(!e)return"";let i=ae(e),r=Math.max(0,n-80),f=Math.min(i.length,n+t+80);return`${i.slice(r,f)}${f<i.length?"\u2026":""}`}function ie(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oe={"&":"&","<":"<",">":">",'"':""","'":"'"};function _(e){return String(e).replace(/[&<>"']/g,n=>oe[n])}function N(e,n){if(!e)return"";let t=String(e),i=Array.from(new Set(P(n||""))).sort((s,p)=>p.length-s.length);if(!i.length)return _(t);let r=new RegExp(i.map(ie).join("|"),"giu"),f="",d=0,m;for(;(m=r.exec(t))!==null;)f+=`${_(t.slice(d,m.index))}<mark>${_(m[0])}</mark>`,d=m.index+m[0].length;return f+_(t.slice(d))}function M(e){return(e||"").toString().split(/[-_\s]+/).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function X(e){switch(e){case"post":return"Tutorial & Blog";case"project":return"Project";case"research":return"Research";case"dataset":return"Dataset";default:return M(e||"Page")}}function J({panel:e,limit:n=8,onSelect:t}){if(!e)return{setSuggestions(){},update(){},close(){},handleNavigation(){}};let i=[],r=-1;function f(c){i=Array.isArray(c)?[...c]:[]}function d(c){r=-1;let a=(c||"").trim().toLowerCase();if(!a){p();return}let l=i.filter(g=>g&&g.toLowerCase().includes(a)).slice(0,n);if(l.length===0){p();return}let S=document.createDocumentFragment();l.forEach((g,C)=>{let E=document.createElement("button");E.type="button",E.className="search-autocomplete__option",E.setAttribute("role","option"),E.dataset.autocompleteOption="",E.dataset.value=g,E.setAttribute("aria-selected",C===r?"true":"false"),E.replaceChildren(),E.insertAdjacentHTML("beforeend",N(g,a)),S.appendChild(E)}),e.replaceChildren(),e.appendChild(S),e.hidden=!1}function m(c,a){if(e.hidden)return;let l=Array.from(e.querySelectorAll("[data-autocomplete-option]"));if(l.length!==0){if(c.key==="ArrowDown")c.preventDefault(),r=(r+1)%l.length,s(l);else if(c.key==="ArrowUp")c.preventDefault(),r=(r-1+l.length)%l.length,s(l);else if(c.key==="Enter"&&r>=0){c.preventDefault();let S=l[r],g=S?S.dataset.value:"";g&&a&&(a.value=g),typeof t=="function"&&t(g),u()}}}function s(c){c.forEach((a,l)=>{let S=l===r;a.setAttribute("aria-selected",S?"true":"false"),a.classList.toggle("is-active",S)})}function p(){e.replaceChildren(),e.hidden=!0,r=-1}function u(){p()}return e.addEventListener("click",c=>{let a=c.target.closest("[data-autocomplete-option]");if(!a)return;let l=a.dataset.value||"";l&&typeof t=="function"&&t(l),u()}),{setSuggestions:f,update:d,close:u,handleNavigation:m}}function W(e=[]){let n=Array.isArray(e)?[...e]:[];function t(d){n=Array.isArray(d)?[...d]:[]}function i(d,m={}){let s=(d||"").trim();if(!s)return[];let p=k(s),u=P(s),c=H(s),a=B(s),{type:l="",language:S="",difficulty:g="",tags:C=new Set}=m;return n.map(E=>ce(E,{rawQuery:s,normalizedQuery:p,queryTokens:u,mathQuery:c,codeQuery:a,typeFilter:l,languageFilter:S,difficultyFilter:g,selectedTags:C})).filter(E=>E&&E.score>0).sort((E,T)=>T.score-E.score||E.title.localeCompare(T.title))}function r(d=150){return se(n,d)}function f(){return[...n]}return{setDocuments:t,search:i,suggestions:r,getDocuments:f}}function se(e=[],n=150){let t=new Set;return e.forEach(i=>{i.title&&t.add(i.title),Array.isArray(i.languages)&&i.languages.forEach(r=>t.add(r)),Array.isArray(i.tags)&&i.tags.forEach(r=>t.add(`#${r}`)),Array.isArray(i.math)&&i.math.slice(0,3).forEach(r=>t.add(r))}),Array.from(t).slice(0,n)}function ce(e,n){let{rawQuery:t,normalizedQuery:i,queryTokens:r,mathQuery:f,codeQuery:d,typeFilter:m,languageFilter:s,difficultyFilter:p,selectedTags:u}=n;if(m&&e.type!==m)return null;let c=Array.isArray(e.languages)?e.languages:[];if(s&&!c.includes(s))return null;if(p){let y=String(e.difficulty||"").toLowerCase();if(!y||y!==p)return null}if(u&&u.size>0){let y=new Set(G(e).tags);for(let o of u)if(!y.has(o))return null}if(!t)return null;let{title:a,summary:l,content:S,tags:g,languages:C,difficulty:E}=G(e),T=Array.isArray(e.code)?e.code:[],q=Array.isArray(e.math)?e.math:[],x=0,w="",D=null,A=null;if(a.includes(i)&&(x+=40),r.forEach(y=>{y&&(a.includes(y)&&(x+=12),l.includes(y)&&(x+=8),S.includes(y)&&(x+=6),g.forEach(o=>{o.includes(y)&&(x+=4)}),C.forEach(o=>{o.includes(y)&&(x+=4)}),E.includes(y)&&(x+=2))}),T.length>0){let y=F(t);for(let o of T){let b=String(o.language||"").toLowerCase(),v=o.code||"",z=F(v);if(z.includes(y)){x+=30,D={language:b,code:v};break}if(d&&K(z,y)){x+=18,D={language:b,code:v};break}}!D&&T[0]&&(D={language:String(T[0].language||"").toLowerCase(),code:T[0].code||""})}if(q.length>0){let y=i.replace(/\\/g,"");for(let o of q)if(k(String(o)).includes(y)){x+=26,A=o;break}f&&!A&&q[0]&&(A=q[0],x+=10)}if(S.includes(i)){let y=S.indexOf(i);w=O(e.content||"",y,t.length),x+=10}else if(l.includes(i)){let y=l.indexOf(i);w=O(e.summary||"",y,t.length),x+=6}return x===0?null:{id:`${e.url}`,title:e.title,url:e.url,summary:e.summary,snippet:w,codeSnippet:D,mathSnippet:A,tags:e.tags||[],languages:e.languages||[],difficulty:e.difficulty||"",type:e.type||"page",date:e.date,readingTime:e.reading_time,score:x}}var Y=new WeakMap;function G(e){let n=Y.get(e);if(n)return n;let t=e.normalized||{},i={title:t.title||k(e.title||""),summary:t.summary||k(e.summary||""),content:t.content||k(e.content||""),tags:V(t.tags,e.tags),languages:V(t.languages,e.languages),difficulty:t.difficulty||k(e.difficulty||"")};return Y.set(e,i),i}function V(e,n){return Array.isArray(e)&&e.length>0?e:Array.isArray(n)?n.map(t=>k(t)):[]}function Z(e,n,t){if(!e)return;let i=new Set;n.forEach(d=>{(d.tags||d.topics||[]).forEach(s=>{if(!s)return;let p=String(s).trim().toLowerCase();p&&i.add(p)})});let r=Array.from(i).sort();if(r.length===0){let d=document.createElement("p");d.className="search-filter__empty",d.textContent="No tags available yet.",e.replaceChildren(d);return}let f=document.createDocumentFragment();r.forEach(d=>{let m=document.createElement("button");m.type="button",m.className="search-filter__tag",m.textContent=d,m.dataset.filterTag=d,m.setAttribute("aria-pressed",t.has(d)?"true":"false"),f.appendChild(m)}),e.replaceChildren(),e.appendChild(f)}function ee(e,n,t){let{resultsList:i,resultsMeta:r,emptyState:f,template:d}=t;if(!i||!r||!f||!d)return;if(i.replaceChildren(),!n){r.textContent="Enter a query to begin.",f.hidden=!0;return}if(e.length===0){r.textContent=`No matches for \u201C${n}\u201D.`,f.hidden=!1;return}f.hidden=!0,r.textContent=`${e.length} result${e.length===1?"":"s"} for \u201C${n}\u201D.`;let m=document.createDocumentFragment();e.forEach(s=>{let p=d.content.cloneNode(!0),u=p.querySelector("[data-result-type]"),c=p.querySelector("[data-result-difficulty]"),a=p.querySelector("[data-result-languages]"),l=p.querySelector("[data-result-link]"),S=p.querySelector("[data-result-summary]"),g=p.querySelector("[data-result-code]"),C=g?g.querySelector("code"):null,E=p.querySelector("[data-result-math]"),T=p.querySelector("[data-result-math-preview]"),q=p.querySelector("[data-result-math-code]"),x=p.querySelector("[data-result-math-copy]"),w=p.querySelector("[data-result-excerpt]"),D=p.querySelector("[data-result-tags]"),A=p.querySelector("[data-result-date]");if(u&&(u.textContent=X(s.type)),c&&(s.difficulty?(c.textContent=`Difficulty: ${M(s.difficulty)}`,c.hidden=!1):c.hidden=!0),a&&(s.languages&&s.languages.length>0?(a.textContent=`Languages: ${s.languages.map(y=>M(y)).join(", ")}`,a.hidden=!1):a.hidden=!0),l&&(l.textContent=s.title||s.url,l.setAttribute("href",s.url)),S&&(S.replaceChildren(),S.insertAdjacentHTML("beforeend",N(s.summary||"",n))),E&&q&&(s.mathSnippet?(E.hidden=!1,q.textContent=s.mathSnippet,T&&(window.DatalogMath&&typeof window.DatalogMath.renderLatex=="function"?window.DatalogMath.renderLatex(T,s.mathSnippet,{display:!1,enhance:!1}):window.MathJax&&typeof window.MathJax.typesetPromise=="function"?(T.textContent=`\\(${s.mathSnippet}\\)`,window.MathJax.typesetPromise([T]).catch(()=>{T.textContent=s.mathSnippet})):T.textContent=s.mathSnippet),x&&x.addEventListener("click",()=>le(s.mathSnippet,E))):E.hidden=!0),w&&(s.snippet?(w.replaceChildren(),w.insertAdjacentHTML("beforeend",N(s.snippet,n)),w.hidden=!1):w.hidden=!0),g&&C)if(s.codeSnippet&&s.codeSnippet.code){let y=s.codeSnippet.language||"text";g.classList.remove("language-none"),g.classList.add(`language-${y}`),C.className=`language-${y}`,C.textContent=s.codeSnippet.code,g.hidden=!1}else g.hidden=!0;if(D&&(D.replaceChildren(),(s.tags||[]).forEach(y=>{let o=document.createElement("li");o.textContent=`#${y}`,D.appendChild(o)})),A)if(s.date){let y=new Date(s.date);Number.isNaN(y.getTime())?A.hidden=!0:(A.textContent=y.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}),A.hidden=!1)}else A.hidden=!0;m.appendChild(p)}),i.appendChild(m)}function le(e,n){if(!e)return;let t=()=>{if(!n)return;let r=n.querySelector("[data-result-math-copy]"),f=r?r.querySelector(".visually-hidden"):null;if(r&&f){let d=r.getAttribute("data-sr-original")||f.textContent;r.getAttribute("data-sr-original")||r.setAttribute("data-sr-original",d||"Copy LaTeX"),f.textContent="Copied LaTeX",r.classList.add("is-copied"),window.setTimeout(()=>{f.textContent=r.getAttribute("data-sr-original")||"Copy LaTeX",r.classList.remove("is-copied")},2e3)}},i=()=>{let r=document.createElement("textarea");r.value=e,r.setAttribute("aria-hidden","true"),r.style.position="fixed",r.style.opacity="0",document.body.appendChild(r),r.select();try{document.execCommand("copy"),t()}catch(f){}document.body.removeChild(r)};navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e).then(()=>t()).catch(()=>i()):i()}var ue=8;function te(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),i=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-meta]"),f=e.querySelector("[data-search-empty]"),d=e.querySelector("[data-search-autocomplete]"),m=e.querySelector("[data-search-analytics]"),s=m?m.querySelector(".search-app__analytics-list"):null,p=m?m.querySelector(".search-app__analytics-empty"):null,u=document.getElementById("search-result-template"),c=e.querySelector("[data-filter-type]"),a=e.querySelector("[data-filter-language]"),l=e.querySelector("[data-filter-difficulty]"),S=e.querySelector("[data-filter-tags]"),g=e.getAttribute("data-search-index")||"/search.json",C=new Set,E=W(),T=j({panel:m,list:s,empty:p,onSelect:o=>{t&&(t.value=o,A())}}),q=J({panel:d,limit:ue,onSelect:o=>{o&&t&&(t.value=o,t.focus(),A())}}),x=!1,w=new URLSearchParams(window.location.search);t&&w.has("q")&&(t.value=w.get("q")||""),c&&w.has("type")&&(c.value=w.get("type")),a&&w.has("language")&&(a.value=w.get("language")),l&&w.has("difficulty")&&(l.value=w.get("difficulty")),w.has("tags")&&w.get("tags").split(",").map(o=>o.trim().toLowerCase()).filter(Boolean).forEach(o=>C.add(o)),fe(t,()=>{q.close(),A()}),de(g).then(o=>{let b=o.documents||[];E.setDocuments(b),q.setSuggestions(E.suggestions()),Z(S,b,C),x=!0,D()}).catch(o=>{r&&(r.textContent="Unable to load the search index. Please try again later.")}),n&&n.addEventListener("submit",o=>{o.preventDefault(),A()}),t&&(t.addEventListener("input",()=>{q.update(t.value)}),t.addEventListener("keydown",o=>{q.handleNavigation(o,t)}),t.addEventListener("focus",()=>{q.update(t.value)})),c&&c.addEventListener("change",A),a&&a.addEventListener("change",A),l&&l.addEventListener("change",A),e.addEventListener("click",o=>{let b=o.target;if(b.matches("[data-filter-tag]")){let v=b.getAttribute("data-filter-tag");v&&(C.has(v)?(C.delete(v),b.setAttribute("aria-pressed","false")):(C.add(v),b.setAttribute("aria-pressed","true")),A())}}),document.addEventListener("click",o=>{!d||d.hidden||e.contains(o.target)||q.close()}),document.addEventListener("keydown",o=>{let b=document.activeElement?document.activeElement.tagName:"";["INPUT","TEXTAREA"].includes(b)||(o.key==="/"&&!o.ctrlKey&&!o.metaKey&&!o.altKey||(o.key==="k"||o.key==="K")&&(o.ctrlKey||o.metaKey))&&(o.preventDefault(),t&&(t.focus(),t.select()))}),T.render();function D(){t&&t.value.trim()?A():y()}function A(){if(!t)return;if(!x){r&&(r.textContent="Loading technical index\u2026");return}let o=t.value.trim(),b={type:c?c.value:"",language:a?a.value:"",difficulty:l?l.value:"",tags:C},v=E.search(o,b);ee(v,o,{resultsList:i,resultsMeta:r,emptyState:f,template:u}),y(o),T.record(o)}function y(o){let b=new URL(window.location.href),v=b.searchParams;o?v.set("q",o):v.delete("q"),c&&c.value?v.set("type",c.value):v.delete("type"),a&&a.value?v.set("language",a.value):v.delete("language"),l&&l.value?v.set("difficulty",l.value):v.delete("difficulty"),C.size>0?v.set("tags",Array.from(C).join(",")):v.delete("tags");let z=v.toString(),R=z?`${b.pathname}?${z}`:b.pathname;window.history.replaceState({},"",R)}}function de(e){return fetch(e,{credentials:"same-origin"}).then(n=>{if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.json()})}function fe(e,n){e&&e.addEventListener("keydown",t=>{t.key==="Escape"&&(e.value="",typeof n=="function"&&n())})}var pe=300,ge="search-result-",U=500;function he(e,n=pe){let t,i=(...r)=>{t&&window.clearTimeout(t),t=window.setTimeout(()=>{t=void 0,e.apply(null,r)},n)};return i.cancel=()=>{t&&(window.clearTimeout(t),t=void 0)},i}function $(e,n){if(!e)return;let t=String(n||"");e.textContent===t?e.textContent=`${t}\xA0`:e.textContent=t,t.trim()?e.removeAttribute("hidden"):e.setAttribute("hidden","")}function me(){let e=document.querySelector("[data-search-app]");if(!e)return;let n=e.querySelector("[data-search-form]"),t=e.querySelector("[data-search-input]"),i=e.querySelector("[data-search-results]"),r=e.querySelector("[data-search-empty]"),f=e.querySelector("[data-search-loading]"),d=e.querySelector("[data-search-region]"),m=e.querySelector('[data-search-live="count"]'),s=e.querySelector('[data-search-live="selection"]'),p=e.querySelector('[data-search-live="status"]');if(!t||!i)return;let u=-1,c=0,a=[],l=!1,S=0,g=null,C=he(()=>{n&&(l=!0,o(),$(p,"Loading results\u2026"),n.dispatchEvent(new Event("submit",{cancelable:!0})))});new MutationObserver(()=>{A()}).observe(i,{childList:!0}),A(),t.addEventListener("input",()=>{w(!1),C()}),t.addEventListener("keydown",T);function T(h){if(!a.length&&["ArrowDown","ArrowUp","Enter"].includes(h.key))return!1;switch(h.key){case"ArrowDown":return h.preventDefault(),q(1),!0;case"ArrowUp":return h.preventDefault(),q(-1),!0;case"Enter":return u>=0?(h.preventDefault(),v(),!0):!1;case"Escape":return h.preventDefault(),z(),!0;default:return!1}}function q(h){if(!a.length)return;let L=u===-1?h>0?0:a.length-1:(u+h+a.length)%a.length;x(L)}function x(h){if(!(h<-1||h>=a.length)&&u!==h)if(u>=0&&a[u]&&a[u].classList.remove("is-active"),u=h,u>=0){let L=a[u];if(!L)return;L.classList.add("is-active");let I=D(L);t.setAttribute("aria-activedescendant",I);let re=R(L);$(s,`Result ${u+1} of ${a.length}: ${re}`),L.scrollIntoView({block:"nearest"})}else t.removeAttribute("aria-activedescendant"),$(s,"Search results selection cleared.")}function w(h=!0){u>=0&&a[u]&&a[u].classList.remove("is-active"),u=-1,t.removeAttribute("aria-activedescendant"),h&&$(s,"Search results selection cleared.")}function D(h){if(h.id)return h.id;c+=1;let L=`${ge}${c}`;return h.id=L,L}function A(){a=Array.from(i.querySelectorAll(".search-result")),a.forEach(h=>{D(h),h.setAttribute("role","option"),h.setAttribute("tabindex","-1")}),u>=a.length&&w(!1),l&&(l=!1,$(p,"Results updated.")),b(),y()}function y(){if(!m)return;let h=t.value.trim();if(!h){$(m,"Enter a query to begin.");return}if(r&&!r.hidden&&a.length===0){$(m,`No results found for \u201C${h}\u201D.`);return}$(m,`${a.length} result${a.length===1?"":"s"} found for \u201C${h}\u201D.`)}function o(){d&&d.setAttribute("aria-busy","true"),f&&(g&&(window.clearTimeout(g),g=null),S=Date.now(),f.hidden=!1,f.removeAttribute("hidden"))}function b(){if(d&&d.setAttribute("aria-busy","false"),f){let h=()=>{f.hidden=!0,f.setAttribute("hidden",""),g=null,S=0},L=S?Date.now()-S:U;if(L<U){let I=U-L;g&&window.clearTimeout(g),g=window.setTimeout(h,I)}else h()}}function v(){let h=u>=0?a[u]:null;if(!h)return;let L=h.querySelector("[data-result-link]");L&&L.href&&window.location.assign(L.href)}function z(){C.cancel(),t.value="",w(),$(p,"Search cleared."),n&&(l=!0,o(),n.dispatchEvent(new Event("submit",{cancelable:!0})))}function R(h){let L=h.querySelector("[data-result-link]");if(L&&L.textContent)return L.textContent.trim();let I=h.querySelector(".search-result__title");return I&&I.textContent?I.textContent.trim():"Result"}}var ye=typeof process!="undefined"&&process.env&&process.env.VITEST==="true";function ne(){te(),me()}ye||(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ne):ne());export{he as debounce,me as setupSearchEnhancements,$ as updateLiveRegion};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sources": {
|
|
3
|
+
"assets/js/academic.js": "c4a510fe7457b70273361e0dec773299604d17c2fbd43eab62a78dd9ff2175da",
|
|
4
|
+
"assets/js/analytics-dashboard.js": "98458c96b2f93c4842a3c4c4197cbcc6e1ebc84f74b322e1935408d3d0d8a3ae",
|
|
5
|
+
"assets/js/comments.js": "5710a30b20bdffa02b256ec9f9e6b07f0871fa5903eb5b60880aba6e915956f5",
|
|
6
|
+
"assets/js/comments/thread.js": "440b5adb0e6595df75fa79f34c240461e16ede29e54dd8a32ef985cc9dabfd59",
|
|
7
|
+
"assets/js/contact.js": "7b93f9f5d8f3c0852303ea22c970845072935de50fd6f765087825e60b845c69",
|
|
8
|
+
"assets/js/contact/form.js": "e1645a734beee64a7ed025896a8e3dcbee3a1cbfa7d35df6043994b9f52844ce",
|
|
9
|
+
"assets/js/core/copy-buttons.js": "339e890158e3c9e5b06f85c56f8658b352a15df8c955e1208dbfa8a75443a55e",
|
|
10
|
+
"assets/js/core/dark-mode.js": "1d4a699f6b810c829138823e346d96fa95bb89a3247937f5ff001a476d1856f3",
|
|
11
|
+
"assets/js/core/github-cards.js": "7eb0c4f489fd838f4c62ed0e5ba59ad4c51e01c8a7ccf04c2ef26c1b47fa284e",
|
|
12
|
+
"assets/js/core/language-filter.js": "adbe34d62cbbf77bbaab8339101f5c75d8934eed735c7279c95ab007bd56f461",
|
|
13
|
+
"assets/js/core/navigation.js": "5d8457d996c040343fdb2ba44c204cdb04dfa2f509c127f702095d720c4d3469",
|
|
14
|
+
"assets/js/core/scroll-progress.js": "9610488213fa83f9270d0f2c9026b7f3e689503f41efa0c01317a51760d44b5f",
|
|
15
|
+
"assets/js/core/search-hotkeys.js": "19881663e3db178e92ab58a382c5369aab5a3045b58410d906eb117924125186",
|
|
16
|
+
"assets/js/core/skip-links.js": "138265a3aa853bf07a798efd03d56b14a5733f6e6c1810ccf87e4cfb86d52c30",
|
|
17
|
+
"assets/js/corrections.js": "16010732e7d653490d7b08d8dea88616008f9ae15efbc0f42848c52a7c8a6209",
|
|
18
|
+
"assets/js/corrections/form.js": "965df11af774ab219a45ea993b17418e93acbf7cb44b83f402c33235369a3810",
|
|
19
|
+
"assets/js/dynamic-services/client.js": "a495de0733d4cbac24787f2d5b8583e09643862b2c8f93b5513701c30927f2b1",
|
|
20
|
+
"assets/js/dynamic-services/form-state.js": "0711cb2280a1c38cbb8f9ea1f075a6fb3d91ce4ab32647e54351e51ab1e3ebf1",
|
|
21
|
+
"assets/js/loader.js": "4544818b74f4c34a634c58008ca3348ad0bede869ccf81af27ba4dad1cbb9283",
|
|
22
|
+
"assets/js/main.js": "3f613ee824f48b83f9065f087bc8e1a75f0368e37a23dacf3196c2b9ffcd38ad",
|
|
23
|
+
"assets/js/math.js": "267693a35a1b9cbf3a9c5475fdaadf3eac5b715bd60af0761b4c0adf0eaf521a",
|
|
24
|
+
"assets/js/moderation.js": "2e9bcb00f0dcf4dd436458d99764989c9728794716dd33c59310d65206323c46",
|
|
25
|
+
"assets/js/moderation/inbox.js": "853e517447d9123a938858e206080e0cc5b27b44603d2f936f6d709774fd1d63",
|
|
26
|
+
"assets/js/notebook.js": "361f716a76b398aeb564ef05ba026018b1bc083de28d75c9b8df5776a6ccb21a",
|
|
27
|
+
"assets/js/reactions.js": "8386cffaacba9a1f976274f8145b95e9c1c2409da977dfc94ca195477971848b",
|
|
28
|
+
"assets/js/reactions/widget.js": "9dc58e5f3f8a95937ed3ffb640eab0aa4a79d5aabda36ea7791937e7320b3778",
|
|
29
|
+
"assets/js/reading-state.js": "d2543904e203ccad34e0950bdeb2c526ad0908ee147d8f031e421b6bd0115fd6",
|
|
30
|
+
"assets/js/reading-state/anchors.js": "f63336769fad19836c7be98c0f80d52147341ece776fcb25b47cbf42a54c1f2f",
|
|
31
|
+
"assets/js/reading-state/highlights.js": "65f58cebcbd622ec99373d8ba9083c10b37d45b34d926e7c8cfa23e08fa93e38",
|
|
32
|
+
"assets/js/reading-state/progress.js": "bcbb2ac2783e50ec71ca4d5b243d4083212fa9e23822438a77911c4f1b427f33",
|
|
33
|
+
"assets/js/reading-state/storage.js": "961c50c9028187c68a29b30617a05bcfb25e475e63edd4f45ed7b08c40d91d06",
|
|
34
|
+
"assets/js/reading-state/ui.js": "e0583dc9ef2025012b2918b636d5ad18e4ee30b89d86c0a40bd0223b16e5e7e8",
|
|
35
|
+
"assets/js/search.js": "602c89a4a2608ba6662140975a381b8d7d8847c0a10ba11b72247b27c2104f8d",
|
|
36
|
+
"assets/js/search/analytics.js": "e0473ca5b34073e3246b5b1baec9d4d670a067102e98369208fdc10ff8e4cc1e",
|
|
37
|
+
"assets/js/search/app.js": "66d93d600d184132c7f6de57764860b5d890b0e777a68e1ec3535399158eec20",
|
|
38
|
+
"assets/js/search/autocomplete.js": "fb1f2e3751c628a589b71800dcd4be725f4b71736b20b32063e3920ff579e59a",
|
|
39
|
+
"assets/js/search/engine.js": "a3731200c827952e6b3aeaa2a8c457277af7b2134f0071fc93e0e2224fb8ccc7",
|
|
40
|
+
"assets/js/search/filters.js": "0b4bb4f36132cc876a9bf86326cdd0829d9a2c79455ebf4491b55020b3dfb584",
|
|
41
|
+
"assets/js/search/render.js": "75eaec880b1fe09a27bf11515a813628fc2a299cacaf340ebd1fd6cc4f5ea678",
|
|
42
|
+
"assets/js/search/utils.js": "a805c21d30ce0d02007609d510c43e99cbb53681ed37b77dd0755af4ccb39e08",
|
|
43
|
+
"assets/js/subscriptions.js": "053b8387521deb5d4f940ef9effc816bc7e754e351460bda098cccd112d0b0c3",
|
|
44
|
+
"assets/js/subscriptions/form.js": "ff2bbe7a41367e15b964f0b996bf3e04cd3d8c99eca06182e74ffdb7e3980c3c",
|
|
45
|
+
"assets/js/subscriptions/manage.js": "5d7661edb6930cb9b582b36323ce7af08c5340bbf20c8ca19fefb343608b9a77",
|
|
46
|
+
"assets/js/visualizations.js": "114cf5d7b5ed286e1e8d17174fa126787311b8585c2b03f7e73bc960b3c08051",
|
|
47
|
+
"assets/js/webmentions.js": "f36402477bf0e6bd835e3ccf3a0fb67eb3af590ef6da179613eab10409e79803",
|
|
48
|
+
"assets/js/webmentions/list.js": "008a18cb6a9d631fe8711125bf16430e4af0867f73c5d24912f14dbc5b22bb66",
|
|
49
|
+
"package-lock.json": "47c57dbc04bc096bd3d1c0153bf214e1b9127167cd3625947bc518cb0c5888d1",
|
|
50
|
+
"scripts/build_js.mjs": "b976e20ead1e5b69973b5f7413480f0b004db4dfac5a843c220059794eb57af3"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as q,b as U,c as L}from"./chunks/chunk-V7734B2G.js";import{a as F,c as k}from"./chunks/chunk-2DYDWUFX.js";import"./chunks/chunk-PATLC23F.js";var p="subscriptions",C=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function O(e,r){let a=e.querySelector(r);if(!a)return{};try{return JSON.parse(a.textContent)||{}}catch(t){return{}}}function T(){let e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}function $(e,r={}){let a={email:e.email||""};return r.hasTopics&&(a.topics=[].concat(e.topics||[]).filter(Boolean)),r.sourceUrl&&(a.source_url=r.sourceUrl),r.locale&&(a.locale=r.locale),a}function M(e,r,a={}){let t={};return C.test(e.email)||(t.email=a.email_invalid||"That does not look like an email address."),Array.isArray(e.topics)&&e.topics.length===0&&(t.topics=a.topics_required||"Pick at least one."),r.website&&(t.website="spam"),Object.keys(t).length>0?t:null}function _(e,r={}){let a=r.client||k(),t=e.querySelector("form"),o=O(e,"[data-subscribe-labels]"),y=o.errors||{},S=e.ownerDocument,u=S.querySelector('link[rel="canonical"]'),A={sourceUrl:e.dataset.subscribeSource||u&&u.href||"",locale:e.dataset.subscribeLocale||S.documentElement.lang||"",hasTopics:t.querySelector('[name="topics"]')!==null},w=e.dataset.subscribeDoubleOptIn!=="false",h=null,v=c=>{t.dataset.result=c,q(t,"success",o[c]||"")};if(!a.enabled)return q(t,"disabled",y.disabled||""),{form:t,available:!1,submit:async()=>null};let f=()=>(h||(h=a.feature(p).catch(c=>{throw h=null,L(t,c,y),t.dataset.state="disabled",t.querySelectorAll("button[type=submit]").forEach(i=>{i.disabled=!0}),c})),h);t.addEventListener("focusin",()=>f().catch(()=>{}),{once:!0});let b={form:t,available:!0,async submit(){let c=U(t),i=$(c,A),d=M(i,c,o);if(delete t.dataset.result,d)return d.website?(v("pending"),null):(q(t,"invalid",y.invalid||"",d),null);q(t,"pending",o.sending||"");try{await f()}catch(l){return null}try{let l=await a.post(a.pathFor(p),i,{idempotencyKey:T()}),m=l&&l.data&&typeof l.data.status=="string"?l.data.status:"";return t.reset(),v(m==="confirmed"||m==="subscribed"||m===""&&!w?"confirmed":"pending"),l}catch(l){return l&&l.kind==="conflict"?v("duplicate"):L(t,l,y),null}}};return t.addEventListener("submit",c=>{c.preventDefault(),b.submit()}),b}function D(e=document){return Array.from(e.querySelectorAll("[data-subscribe]")).map(r=>_(r))}var N=["confirm","unsubscribe","manage"],R=/^[A-Za-z0-9._~-]{8,512}$/;function j(e,r){let a=e.querySelector(r);if(!a)return{};try{return JSON.parse(a.textContent)||{}}catch(t){return{}}}function K(e){let r=new URLSearchParams(e||""),a=N.find(o=>r.has(o));if(!a)return null;let t=(r.get(a)||"").trim();return R.test(t)?{action:a,token:t}:null}function P(e,r={}){let t=e.ownerDocument.defaultView,o=r.client||k(),y=r.location||t&&t.location||{search:"",pathname:"/"},S=r.history===void 0?t&&t.history:r.history,u=j(e,"[data-manage-labels]"),A=u.errors||{},w=e.querySelector("[data-manage-status]"),h=e.querySelector("[data-manage-idle]"),v=e.querySelector("[data-manage-unsubscribe-panel]"),f=e.querySelector("[data-manage-preferences]"),b=K(y.search),c=b?`${o.pathFor(p)}/${encodeURIComponent(b.token)}`:"",i=(n,s="",E=!1)=>{e.dataset.state=n,w&&(w.textContent=s,w.hidden=s==="",w.setAttribute("role",E?"alert":"status"))},d=n=>{[h,v,f].forEach(s=>{s&&(s.hidden=s!==n)})},l=n=>{let s=n&&(n.kind==="not_found"||n.status===410);d(null),i("error",s?u.invalid_link||"":F(n,A),!0)},m=n=>{e.setAttribute("aria-busy",n?"true":"false"),e.querySelectorAll("button").forEach(s=>{s.disabled=n})},g={root:e,request:b,async confirm(){d(null),i("pending",u.confirming||"");try{await o.feature(p);let n=await o.post(`${o.pathFor(p)}/confirm`,{token:b.token});return i("confirmed",u.confirmed||""),n}catch(n){return l(n),null}},async unsubscribe(){m(!0),i("pending",u.unsubscribing||"");try{await o.feature(p);let n=await o.delete(c);return d(null),i("unsubscribed",u.unsubscribed||""),n}catch(n){return l(n),null}finally{m(!1)}},async load(){d(null),i("loading",u.loading||"");try{await o.feature(p);let n=await o.get(c),s=n&&n.data&&Array.isArray(n.data.topics)?n.data.topics.map(String):[];return f&&f.querySelectorAll('[name="topics"]').forEach(E=>{E.checked=s.includes(E.value)}),d(f),i("loaded"),s}catch(n){return l(n),null}},async save(){let n=Array.from(f.querySelectorAll('[name="topics"]:checked')).map(s=>s.value);m(!0),i("pending",u.saving||"");try{let s=await o.patch(c,{topics:n});return i("saved",u.saved||""),s}catch(s){return i("error",F(s,A),!0),null}finally{m(!1)}}};return e.querySelectorAll("[data-manage-unsubscribe]").forEach(n=>{n.addEventListener("click",()=>g.unsubscribe())}),f&&f.addEventListener("submit",n=>{n.preventDefault(),g.save()}),o.enabled?b?(S&&typeof S.replaceState=="function"&&S.replaceState(null,"",y.pathname),b.action==="confirm"?g.confirm():b.action==="manage"?g.load():(d(v),i("idle")),g):(d(h),i("idle"),g):(d(null),i("disabled",A.disabled||""),g)}function I(e=document){return Array.from(e.querySelectorAll("[data-subscription-manage]")).map(r=>P(r))}function x(){D(document),I(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",x,{once:!0}):x();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as N,c as A}from"./chunks/chunk-2DYDWUFX.js";import"./chunks/chunk-PATLC23F.js";var S="webmentions",_=["mention","reply"],O=["mention","reply","repost","like"],D=200,F=280,T=/^https?:\/\//i,M=new Set(["disabled","unsupported","version"]);function U(e,t){let r=e.querySelector(t);if(!r)return{};try{return JSON.parse(r.textContent)||{}}catch(s){return{}}}function x(e,t){if(typeof e!="string")return"";let r=e.replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t-1).trimEnd()}\u2026`:r}function j(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch(t){return""}}function k(e,t=_){if(!e||typeof e!="object"||Array.isArray(e))return null;let r=typeof e.source=="string"?e.source.trim():"",s=typeof e.type=="string"?e.type.trim().toLowerCase():"mention";if(e.verified!==!0||!T.test(r)||!t.includes(s))return null;let a=e.author&&typeof e.author=="object"?e.author:{},f=typeof a.url=="string"&&T.test(a.url.trim())?a.url.trim():"",i=typeof e.published_at=="string"&&!Number.isNaN(Date.parse(e.published_at))?e.published_at:"";return{id:e.id===null||e.id===void 0?"":String(e.id),source:r,host:j(r),type:s,title:x(e.title,D),excerpt:x(e.excerpt,F),author:{name:x(a.name,120),url:f},published_at:i}}function R(e,t=_){return(e&&typeof e=="object"&&Array.isArray(e.mentions)?e.mentions:[]).map(s=>k(s,t)).filter(Boolean).sort((s,a)=>a.published_at.localeCompare(s.published_at))}function q(e,t){let r=new Date(e);if(Number.isNaN(r.getTime()))return"";try{return r.toLocaleDateString(t||void 0,{dateStyle:"medium"})}catch(s){return r.toISOString().slice(0,10)}}function W(e,t,r={}){let{labels:s={},lang:a}=r,f=s.types||{},i=e.createElement("li");i.className=`webmention webmention--${t.type}`,t.id&&(i.dataset.mentionId=t.id);let c=e.createElement("span");c.className="webmention__type",c.textContent=f[t.type]||t.type,i.appendChild(c);let d=e.createElement("a");d.className="webmention__title",d.href=t.source,d.rel="nofollow noopener ugc",d.textContent=t.title||t.host||t.source,i.appendChild(d);let u=e.createElement("span");if(u.className="webmention__meta",t.author.name){let n;t.author.url?(n=e.createElement("a"),n.href=t.author.url,n.rel="nofollow noopener ugc"):n=e.createElement("span"),n.className="webmention__author",n.textContent=t.author.name,u.appendChild(n)}if(t.host&&t.title){let n=e.createElement("span");n.className="webmention__host",n.textContent=t.host,u.appendChild(n)}if(t.published_at){let n=e.createElement("time");n.className="webmention__time",n.dateTime=t.published_at,n.textContent=q(t.published_at,a),u.appendChild(n)}if(u.childNodes.length>0&&i.appendChild(u),t.excerpt){let n=e.createElement("p");n.className="webmention__excerpt",n.textContent=t.excerpt,i.appendChild(n)}return i}function $(e,t={}){let r=e.ownerDocument,s=t.window||r.defaultView,a=t.client||A(),f=e.dataset.webmentionsTarget||"",i=(e.dataset.webmentionsTypes||_.join(",")).split(",").map(o=>o.trim().toLowerCase()).filter(o=>O.includes(o)),c=U(e,"[data-webmentions-labels]"),d=c.errors||{},u=r.documentElement.lang||void 0,n=e.querySelector("[data-webmentions-status]"),w=e.querySelector("[data-webmentions-list]"),h=null,g=!1,C=!1,b=(o,l="",p={})=>{if(e.dataset.state=o,!!n&&(n.textContent=l,n.hidden=l==="",n.setAttribute("role",p.alert?"alert":"status"),p.retry)){let m=r.createElement("button");m.type="button",m.className="post-tool",m.setAttribute("data-webmentions-retry",""),m.textContent=c.retry||"Try again",m.addEventListener("click",()=>y.load()),n.appendChild(r.createTextNode(" ")),n.appendChild(m)}},I=()=>(h||(h=a.feature(S).catch(o=>{throw h=null,o})),h),y={root:e,types:i,async load(){if(g)return null;g=!0,b("loading",c.loading||"");try{await I();let o=await a.get(`${a.pathFor(S)}?target=${encodeURIComponent(f)}`),l=R(o&&o.data,i);return w.textContent="",l.forEach(p=>w.appendChild(W(r,p,{labels:c,lang:u}))),w.hidden=l.length===0,b(l.length>0?"loaded":"empty",l.length>0?"":c.empty||""),C=!0,l}catch(o){return o&&M.has(o.kind)?(b("disabled"),e.hidden=!0):b("error",N(o,d),{alert:!0,retry:!0}),null}finally{g=!1}}},E=()=>{C||y.load()};if(t.immediate||!s||typeof s.IntersectionObserver!="function")E();else{let o=new s.IntersectionObserver(l=>{l.some(p=>p.isIntersecting)&&(o.disconnect(),E())},{rootMargin:"400px 0px"});o.observe(e)}return y}function L(e=document){return Array.from(e.querySelectorAll("[data-webmentions]")).map(t=>$(t))}function v(){L(document)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",v,{once:!0}):v();
|