From ba1515d9eeb4a4025f62b90a6ed114f76d6286d0 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sun, 28 May 2023 17:44:08 -0700 Subject: [PATCH 001/197] base setup --- .github/workflows/deploy.yaml | 37 +- .github/workflows/docker-publish.yaml | 42 - .gitignore | 7 +- .hugo_build.lock | 0 Dockerfile | 10 - Makefile | 24 - README.md | 21 +- assets/indices/.gitkeep | 0 assets/js/callouts.js | 6 - assets/js/clipboard.js | 45 - assets/js/code-title.js | 17 - assets/js/darkmode.js | 37 - assets/js/full-text-search.js | 61 - assets/js/graph.js | 279 -- assets/js/popover.js | 79 - assets/js/router.js | 25 - assets/js/semantic-search.js | 54 - assets/js/util.js | 226 -- assets/styles/_callouts.scss | 174 - assets/styles/_dark_syntax.scss | 85 - assets/styles/_light_syntax.scss | 85 - assets/styles/base.scss | 625 ---- assets/styles/clipboard.scss | 47 - assets/styles/code-title.scss | 20 - assets/styles/custom.scss | 31 - assets/styles/darkmode.scss | 44 - assets/styles/syntax.scss | 66 - config.toml | 33 - data/config.yaml | 29 - data/graphConfig.yaml | 37 - i18n/ar.toml | 65 - i18n/bn.toml | 65 - i18n/de.toml | 65 - i18n/en.toml | 65 - i18n/es.toml | 65 - i18n/fr.toml | 65 - i18n/it.toml | 65 - i18n/no.toml | 65 - i18n/tr.toml | 65 - i18n/uk.toml | 65 - i18n/zh-cn.toml | 65 - layouts/404.html | 15 - .../_markup/render-codeblock-mermaid.html | 4 - layouts/_default/_markup/render-image.html | 9 - layouts/_default/_markup/render-link.html | 16 - layouts/_default/baseof.html | 10 - layouts/_default/section.html | 21 - layouts/_default/single.html | 34 - layouts/_default/taxonomy.html | 30 - layouts/_default/term.html | 21 - layouts/index.html | 20 - layouts/partials/backlinks.html | 30 - layouts/partials/contact.html | 19 - layouts/partials/darkmode.html | 15 - layouts/partials/date-fmt.html | 7 - layouts/partials/footer.html | 16 - layouts/partials/footerIndex.html | 24 - layouts/partials/github.html | 3 - layouts/partials/graph.html | 18 - layouts/partials/head.html | 252 -- layouts/partials/header.html | 11 - layouts/partials/katex.html | 14 - layouts/partials/mermaid.html | 8 - layouts/partials/page-list.html | 20 - layouts/partials/recent.html | 12 - layouts/partials/search.html | 18 - layouts/partials/textprocessing.html | 162 - layouts/partials/toc.html | 9 - package-lock.json | 2903 +++++++++++++++++ package.json | 55 + quartz/bootstrap.mjs | 2 + screenshot.png | Bin 1036554 -> 0 bytes static/icon.png | Bin 17368 -> 0 bytes tsconfig.json | 27 + 74 files changed, 3015 insertions(+), 3751 deletions(-) delete mode 100644 .github/workflows/docker-publish.yaml delete mode 100644 .hugo_build.lock delete mode 100644 Dockerfile delete mode 100644 Makefile delete mode 100644 assets/indices/.gitkeep delete mode 100644 assets/js/callouts.js delete mode 100644 assets/js/clipboard.js delete mode 100644 assets/js/code-title.js delete mode 100644 assets/js/darkmode.js delete mode 100644 assets/js/full-text-search.js delete mode 100644 assets/js/graph.js delete mode 100644 assets/js/popover.js delete mode 100644 assets/js/router.js delete mode 100644 assets/js/semantic-search.js delete mode 100644 assets/js/util.js delete mode 100644 assets/styles/_callouts.scss delete mode 100644 assets/styles/_dark_syntax.scss delete mode 100644 assets/styles/_light_syntax.scss delete mode 100644 assets/styles/base.scss delete mode 100644 assets/styles/clipboard.scss delete mode 100644 assets/styles/code-title.scss delete mode 100644 assets/styles/custom.scss delete mode 100644 assets/styles/darkmode.scss delete mode 100644 assets/styles/syntax.scss delete mode 100644 config.toml delete mode 100644 data/config.yaml delete mode 100644 data/graphConfig.yaml delete mode 100644 i18n/ar.toml delete mode 100644 i18n/bn.toml delete mode 100644 i18n/de.toml delete mode 100644 i18n/en.toml delete mode 100644 i18n/es.toml delete mode 100644 i18n/fr.toml delete mode 100644 i18n/it.toml delete mode 100644 i18n/no.toml delete mode 100644 i18n/tr.toml delete mode 100644 i18n/uk.toml delete mode 100644 i18n/zh-cn.toml delete mode 100644 layouts/404.html delete mode 100644 layouts/_default/_markup/render-codeblock-mermaid.html delete mode 100644 layouts/_default/_markup/render-image.html delete mode 100644 layouts/_default/_markup/render-link.html delete mode 100644 layouts/_default/baseof.html delete mode 100644 layouts/_default/section.html delete mode 100644 layouts/_default/single.html delete mode 100644 layouts/_default/taxonomy.html delete mode 100644 layouts/_default/term.html delete mode 100644 layouts/index.html delete mode 100644 layouts/partials/backlinks.html delete mode 100644 layouts/partials/contact.html delete mode 100644 layouts/partials/darkmode.html delete mode 100644 layouts/partials/date-fmt.html delete mode 100644 layouts/partials/footer.html delete mode 100644 layouts/partials/footerIndex.html delete mode 100644 layouts/partials/github.html delete mode 100644 layouts/partials/graph.html delete mode 100644 layouts/partials/head.html delete mode 100644 layouts/partials/header.html delete mode 100644 layouts/partials/katex.html delete mode 100644 layouts/partials/mermaid.html delete mode 100644 layouts/partials/page-list.html delete mode 100644 layouts/partials/recent.html delete mode 100644 layouts/partials/search.html delete mode 100644 layouts/partials/textprocessing.html delete mode 100644 layouts/partials/toc.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100755 quartz/bootstrap.mjs delete mode 100644 screenshot.png delete mode 100644 static/icon.png create mode 100644 tsconfig.json diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index a0d219e2..f2c10979 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -3,37 +3,38 @@ name: Deploy to GitHub Pages on: push: branches: - - hugo + - v4-alpha jobs: deploy: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 + permissions: + contents: write steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: - fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + fetch-depth: 0 - - name: Build Link Index - uses: jackyzha0/hugo-obsidian@v2.20 + - name: Setup Node + uses: actions/setup-node@v3 with: - index: true - input: content - output: assets/indices - root: . + node-version: '18' - - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 + - name: Cache dependencies + uses: actions/cache@v3 with: - hugo-version: '0.96.0' - extended: true + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- - - name: Build - run: hugo --minify + - run: npm ci + + - name: Build Quartz + run: npx quartx build - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public - publish_branch: master # deploying branch - cname: quartz.jzhao.xyz diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml deleted file mode 100644 index efc2bd4a..00000000 --- a/.github/workflows/docker-publish.yaml +++ /dev/null @@ -1,42 +0,0 @@ -name: Create and publish a Docker image - -on: - push: - branches: ['hugo'] - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - build-and-push-image: - if: github.repository == 'jackyzha0/quartz' - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Log in to the Container registry - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - - name: Build and push Docker image - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} diff --git a/.gitignore b/.gitignore index 182026f9..690975f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,3 @@ .DS_Store +node_modules public -resources -.idea -content/.obsidian -assets/indices/linkIndex.json -assets/indices/contentIndex.json -linkmap diff --git a/.hugo_build.lock b/.hugo_build.lock deleted file mode 100644 index e69de29b..00000000 diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index ac5e8de2..00000000 --- a/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM alpine:3.16 - -RUN apk add --no-cache go hugo git make perl -RUN go install github.com/jackyzha0/hugo-obsidian@latest -ENV PATH="/root/go/bin:$PATH" -RUN git clone https://github.com/jackyzha0/quartz.git /quartz - -WORKDIR /quartz - -CMD ["make", "serve"] diff --git a/Makefile b/Makefile deleted file mode 100644 index bbd3be7a..00000000 --- a/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -.DEFAULT_GOAL := serve - -help: ## Show all Makefile targets - @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' - -update: ## Update Quartz to the latest version on Github - go install github.com/jackyzha0/hugo-obsidian@latest - @git remote show upstream || (echo "remote 'upstream' not present, setting 'upstream'" && git remote add upstream https://github.com/jackyzha0/quartz.git) - git fetch upstream - git log --oneline --decorate --graph ..upstream/hugo - git checkout -p upstream/hugo -- layouts .github Makefile assets/js assets/styles/base.scss assets/styles/darkmode.scss config.toml data - -update-force: ## Forcefully pull all changes and don't ask to patch - go install github.com/jackyzha0/hugo-obsidian@latest - @git remote show upstream || (echo "remote 'upstream' not present, setting 'upstream'" && git remote add upstream https://github.com/jackyzha0/quartz.git) - git fetch upstream - git checkout upstream/hugo -- layouts .github Makefile assets/js assets/styles/base.scss assets/styles/darkmode.scss config.toml data - -serve: ## Serve Quartz locally - hugo-obsidian -input=content -output=assets/indices -index -root=. - hugo server --enableGitInfo --minify --bind=$(or $(HUGO_BIND),0.0.0.0) --baseURL=$(or $(HUGO_BASEURL),http://localhost) --port=$(or $(HUGO_PORT),1313) --appendPort=$(or $(HUGO_APPENDPORT),true) --liveReloadPort=$(or $(HUGO_LIVERELOADPORT),-1) - -docker: ## Serve locally using Docker - docker run -it --volume=$(shell pwd):/quartz -p 1313:1313 ghcr.io/jackyzha0/quartz:hugo diff --git a/README.md b/README.md index 058b8ba7..26b05475 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,14 @@ -# Quartz - -Host your second brain and [digital garden](https://jzhao.xyz/posts/networked-thought) for free. Quartz features - -1. Extremely fast natural-language search -2. Customizable and hackable design based on Hugo -3. Automatically generated backlinks, link previews, and local graph -4. Built-in CJK + Latex Support and Admonition-style callouts -5. Support for both Markdown Links and Wikilinks - -Check out some of the [amazing gardens that community members](https://quartz.jzhao.xyz/notes/showcase/) have published with Quartz! +# Quartz v4 > โ€œ[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.โ€ โ€” Richard Hamming -๐Ÿ”— Get Started: https://quartz.jzhao.xyz/ +Quartz is a set of tools that helps you publish your [digital garden](https://jzhao.xyz/posts/networked-thought) and notes as a website for free. +Quartz v4 features a from-the-ground rewrite focussing on end-user extensibility and ease-of-use. -![Quartz Example Screenshot](./screenshot.png)*Quartz Example Screenshot* +Please note that v4 is still beta software and *will* contain bugs. Use with caution! + +**If you are looking for Quartz v3, you can find it on the [`hugo` branch](https://github.com/jackyzha0/quartz/tree/hugo).** + +๐Ÿ”— Read the documentation and setup instructions: https://quartz.jzhao.xyz/ [Join the Discord Community](https://discord.gg/cRFFHYye7t) diff --git a/assets/indices/.gitkeep b/assets/indices/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/assets/js/callouts.js b/assets/js/callouts.js deleted file mode 100644 index 080bbb48..00000000 --- a/assets/js/callouts.js +++ /dev/null @@ -1,6 +0,0 @@ -const addCollapsibleCallouts = () => { - const collapsibleCallouts = document.querySelectorAll("blockquote.callout-collapsible"); - collapsibleCallouts.forEach(el => el.addEventListener('click', event => { - event.currentTarget.classList.toggle("callout-collapsed"); - })); -} diff --git a/assets/js/clipboard.js b/assets/js/clipboard.js deleted file mode 100644 index 10e02c68..00000000 --- a/assets/js/clipboard.js +++ /dev/null @@ -1,45 +0,0 @@ -const svgCopy = - ''; -const svgCheck = - ''; - - -const addCopyButtons = () => { - let els = document.getElementsByClassName("highlight"); - // for each highlight - for (let i = 0; i < els.length; i++) { - try { - if (els[i].getElementsByClassName("clipboard-button").length) continue; - - // find pre > code inside els[i] - let codeBlocks = els[i].getElementsByTagName("code"); - - // line numbers are inside first code block - let lastCodeBlock = codeBlocks[codeBlocks.length - 1]; - const button = document.createElement("button"); - button.className = "clipboard-button"; - button.type = "button"; - button.innerHTML = svgCopy; - button.ariaLabel = "opy the shown code"; - // remove every second newline from lastCodeBlock.innerText - button.addEventListener("click", () => { - navigator.clipboard.writeText(lastCodeBlock.innerText.replace(/\n\n/g, "\n")).then( - () => { - button.blur(); - button.innerHTML = svgCheck; - setTimeout(() => { - button.innerHTML = svgCopy - button.style.borderColor = "" - }, 2000); - }, - (error) => (button.innerHTML = "Error") - ); - }); - // find chroma inside els[i] - let chroma = els[i].getElementsByClassName("chroma")[0]; - els[i].insertBefore(button, chroma); - } catch(error) { - console.debug(error); - } - } -} diff --git a/assets/js/code-title.js b/assets/js/code-title.js deleted file mode 100644 index 325e16d5..00000000 --- a/assets/js/code-title.js +++ /dev/null @@ -1,17 +0,0 @@ - -function addTitleToCodeBlocks() { - const els = document.getElementsByClassName("highlight"); - for (let i = 0; i < els.length; i++) { - try { - if (els[i].title.length) { - let div = document.createElement("div"); - if (els[i].getElementsByClassName("code-title").length) continue; - div.textContent = els[i].title; - div.classList.add("code-title") - els[i].insertBefore(div, els[i].firstChild); - } - } catch (error) { - console.debug(error); - } - } -} diff --git a/assets/js/darkmode.js b/assets/js/darkmode.js deleted file mode 100644 index 8168d77e..00000000 --- a/assets/js/darkmode.js +++ /dev/null @@ -1,37 +0,0 @@ -const userPref = window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark' -const currentTheme = localStorage.getItem('theme') ?? userPref -const syntaxTheme = document.querySelector("#theme-link"); - - -{{ $darkSyntax := resources.Get "styles/_dark_syntax.scss" | resources.ToCSS (dict "outputStyle" "compressed") | resources.Fingerprint "md5" | resources.Minify }} -{{ $lightSyntax := resources.Get "styles/_light_syntax.scss" | resources.ToCSS (dict "outputStyle" "compressed") | resources.Fingerprint "md5" | resources.Minify }} - -if (currentTheme) { - document.documentElement.setAttribute('saved-theme', currentTheme); - syntaxTheme.href = currentTheme === 'dark' ? '{{ $darkSyntax.Permalink }}' : '{{ $lightSyntax.Permalink }}'; -} - -const switchTheme = (e) => { - if (e.target.checked) { - document.documentElement.setAttribute('saved-theme', 'dark'); - localStorage.setItem('theme', 'dark'); - syntaxTheme.href = '{{ $darkSyntax.Permalink }}'; - } - else { - document.documentElement.setAttribute('saved-theme', 'light') - localStorage.setItem('theme', 'light') - syntaxTheme.href = '{{ $lightSyntax.Permalink }}'; - } -} - -window.addEventListener('DOMContentLoaded', () => { - // Darkmode toggle - const toggleSwitch = document.querySelector('#darkmode-toggle') - - // listen for toggle - toggleSwitch.addEventListener('change', switchTheme, false) - - if (currentTheme === 'dark') { - toggleSwitch.checked = true - } -}) diff --git a/assets/js/full-text-search.js b/assets/js/full-text-search.js deleted file mode 100644 index 709a3b36..00000000 --- a/assets/js/full-text-search.js +++ /dev/null @@ -1,61 +0,0 @@ -; (async function() { - const encoder = (str) => str.toLowerCase().split(/([^a-z]|[^\x00-\x7F])/) - const contentIndex = new FlexSearch.Document({ - cache: true, - charset: "latin:extra", - optimize: true, - index: [ - { - field: "content", - tokenize: "reverse", - encode: encoder, - }, - { - field: "title", - tokenize: "forward", - encode: encoder, - }, - ], - }) - - const { content } = await fetchData - for (const [key, value] of Object.entries(content)) { - contentIndex.add({ - id: key, - title: value.title, - content: removeMarkdown(value.content), - }) - } - - const formatForDisplay = (id) => ({ - id, - url: id, - title: content[id].title, - content: content[id].content, - }) - - registerHandlers((e) => { - const term = e.target.value - const searchResults = contentIndex.search(term, [ - { - field: "content", - limit: 10, - }, - { - field: "title", - limit: 5, - }, - ]) - const getByField = (field) => { - const results = searchResults.filter((x) => x.field === field) - if (results.length === 0) { - return [] - } else { - return [...results[0].result] - } - } - const allIds = new Set([...getByField("title"), ...getByField("content")]) - const finalResults = [...allIds].map(formatForDisplay) - displayResults(term, finalResults, true) - }) -})() diff --git a/assets/js/graph.js b/assets/js/graph.js deleted file mode 100644 index ce0c73b7..00000000 --- a/assets/js/graph.js +++ /dev/null @@ -1,279 +0,0 @@ -async function drawGraph(baseUrl, isHome, pathColors, graphConfig) { - - let { - depth, - enableDrag, - enableLegend, - enableZoom, - opacityScale, - scale, - repelForce, - fontSize } = graphConfig; - - const container = document.getElementById("graph-container") - const { index, links, content } = await fetchData - - // Use .pathname to remove hashes / searchParams / text fragments - const cleanUrl = window.location.origin + window.location.pathname - - const curPage = cleanUrl.replace(/\/$/g, "").replace(baseUrl, "") - - const parseIdsFromLinks = (links) => [ - ...new Set(links.flatMap((link) => [link.source, link.target])), - ] - - // Links is mutated by d3. We want to use links later on, so we make a copy and pass that one to d3 - // Note: shallow cloning does not work because it copies over references from the original array - const copyLinks = JSON.parse(JSON.stringify(links)) - - const neighbours = new Set() - const wl = [curPage || "/", "__SENTINEL"] - if (depth >= 0) { - while (depth >= 0 && wl.length > 0) { - // compute neighbours - const cur = wl.shift() - if (cur === "__SENTINEL") { - depth-- - wl.push("__SENTINEL") - } else { - neighbours.add(cur) - const outgoing = index.links[cur] || [] - const incoming = index.backlinks[cur] || [] - wl.push(...outgoing.map((l) => l.target), ...incoming.map((l) => l.source)) - } - } - } else { - parseIdsFromLinks(copyLinks).forEach((id) => neighbours.add(id)) - } - - const data = { - nodes: [...neighbours].map((id) => ({ id })), - links: copyLinks.filter((l) => neighbours.has(l.source) && neighbours.has(l.target)), - } - - const color = (d) => { - if (d.id === curPage || (d.id === "/" && curPage === "")) { - return "var(--g-node-active)" - } - - for (const pathColor of pathColors) { - const path = Object.keys(pathColor)[0] - const colour = pathColor[path] - if (d.id.startsWith(path)) { - return colour - } - } - - return "var(--g-node)" - } - - const drag = (simulation) => { - function dragstarted(event, d) { - if (!event.active) simulation.alphaTarget(1).restart() - d.fx = d.x - d.fy = d.y - } - - function dragged(event, d) { - d.fx = event.x - d.fy = event.y - } - - function dragended(event, d) { - if (!event.active) simulation.alphaTarget(0) - d.fx = null - d.fy = null - } - - const noop = () => { } - return d3 - .drag() - .on("start", enableDrag ? dragstarted : noop) - .on("drag", enableDrag ? dragged : noop) - .on("end", enableDrag ? dragended : noop) - } - - const height = Math.max(container.offsetHeight, isHome ? 500 : 250) - const width = container.offsetWidth - - const simulation = d3 - .forceSimulation(data.nodes) - .force("charge", d3.forceManyBody().strength(-100 * repelForce)) - .force( - "link", - d3 - .forceLink(data.links) - .id((d) => d.id) - .distance(40), - ) - .force("center", d3.forceCenter()) - - const svg = d3 - .select("#graph-container") - .append("svg") - .attr("width", width) - .attr("height", height) - .attr('viewBox', [-width / 2 / scale, -height / 2 / scale, width / scale, height / scale]) - - if (enableLegend) { - const legend = [{ Current: "var(--g-node-active)" }, { Note: "var(--g-node)" }, ...pathColors] - legend.forEach((legendEntry, i) => { - const key = Object.keys(legendEntry)[0] - const colour = legendEntry[key] - svg - .append("circle") - .attr("cx", -width / 2 + 20) - .attr("cy", height / 2 - 30 * (i + 1)) - .attr("r", 6) - .style("fill", colour) - svg - .append("text") - .attr("x", -width / 2 + 40) - .attr("y", height / 2 - 30 * (i + 1)) - .text(key) - .style("font-size", "15px") - .attr("alignment-baseline", "middle") - }) - } - - // draw links between nodes - const link = svg - .append("g") - .selectAll("line") - .data(data.links) - .join("line") - .attr("class", "link") - .attr("stroke", "var(--g-link)") - .attr("stroke-width", 2) - .attr("data-source", (d) => d.source.id) - .attr("data-target", (d) => d.target.id) - - // svg groups - const graphNode = svg.append("g").selectAll("g").data(data.nodes).enter().append("g") - - // calculate radius - const nodeRadius = (d) => { - const numOut = index.links[d.id]?.length || 0 - const numIn = index.backlinks[d.id]?.length || 0 - return 2 + Math.sqrt(numOut + numIn) - } - - // draw individual nodes - const node = graphNode - .append("circle") - .attr("class", "node") - .attr("id", (d) => d.id) - .attr("r", nodeRadius) - .attr("fill", color) - .style("cursor", "pointer") - .on("click", (_, d) => { - // SPA navigation - const targ = `${baseUrl}${decodeURI(d.id).replace(/\s+/g, "-")}/` - window.Million.navigate(new URL(targ), ".singlePage") - plausible("Link Click", { - props: { - href: targ, - broken: false, - internal: true, - graph: true, - } - }) - }) - .on("mouseover", function(_, d) { - d3.selectAll(".node").transition().duration(100).attr("fill", "var(--g-node-inactive)") - - const neighbours = parseIdsFromLinks([ - ...(index.links[d.id] || []), - ...(index.backlinks[d.id] || []), - ]) - const neighbourNodes = d3.selectAll(".node").filter((d) => neighbours.includes(d.id)) - const currentId = d.id - window.Million.prefetch(new URL(`${baseUrl}${decodeURI(d.id).replace(/\s+/g, "-")}/`)) - const linkNodes = d3 - .selectAll(".link") - .filter((d) => d.source.id === currentId || d.target.id === currentId) - - // highlight neighbour nodes - neighbourNodes.transition().duration(200).attr("fill", color) - - // highlight links - linkNodes.transition().duration(200).attr("stroke", "var(--g-link-active)") - - const bigFont = fontSize * 1.5 - - // show text for self - d3.select(this.parentNode) - .raise() - .select("text") - .transition() - .duration(200) - .attr('opacityOld', d3.select(this.parentNode).select('text').style("opacity")) - .style('opacity', 1) - .style('font-size', bigFont + 'em') - .attr('dy', d => nodeRadius(d) + 20 + 'px') // radius is in px - }) - .on("mouseleave", function(_, d) { - d3.selectAll(".node").transition().duration(200).attr("fill", color) - - const currentId = d.id - const linkNodes = d3 - .selectAll(".link") - .filter((d) => d.source.id === currentId || d.target.id === currentId) - - linkNodes.transition().duration(200).attr("stroke", "var(--g-link)") - - d3.select(this.parentNode) - .select("text") - .transition() - .duration(200) - .style('opacity', d3.select(this.parentNode).select('text').attr("opacityOld")) - .style('font-size', fontSize + 'em') - .attr('dy', d => nodeRadius(d) + 8 + 'px') // radius is in px - }) - .call(drag(simulation)) - - // draw labels - const labels = graphNode - .append("text") - .attr("dx", 0) - .attr("dy", (d) => nodeRadius(d) + 8 + "px") - .attr("text-anchor", "middle") - .text((d) => content[d.id]?.title || (d.id.charAt(1).toUpperCase() + d.id.slice(2)).replace("-", " ")) - .style('opacity', (opacityScale - 1) / 3.75) - .style("pointer-events", "none") - .style('font-size', fontSize + 'em') - .raise() - .call(drag(simulation)) - - // set panning - - if (enableZoom) { - svg.call( - d3 - .zoom() - .extent([ - [0, 0], - [width, height], - ]) - .scaleExtent([0.25, 4]) - .on("zoom", ({ transform }) => { - link.attr("transform", transform) - node.attr("transform", transform) - const scale = transform.k * opacityScale; - const scaledOpacity = Math.max((scale - 1) / 3.75, 0) - labels.attr("transform", transform).style("opacity", scaledOpacity) - }), - ) - } - - // progress the simulation - simulation.on("tick", () => { - link - .attr("x1", (d) => d.source.x) - .attr("y1", (d) => d.source.y) - .attr("x2", (d) => d.target.x) - .attr("y2", (d) => d.target.y) - node.attr("cx", (d) => d.x).attr("cy", (d) => d.y) - labels.attr("x", (d) => d.x).attr("y", (d) => d.y) - }) -} diff --git a/assets/js/popover.js b/assets/js/popover.js deleted file mode 100644 index 101d1c0c..00000000 --- a/assets/js/popover.js +++ /dev/null @@ -1,79 +0,0 @@ -function htmlToElement(html) { - const template = document.createElement("template") - html = html.trim() - template.innerHTML = html - return template.content.firstChild -} - -function initPopover(baseURL, useContextualBacklinks) { - const basePath = baseURL.replace(window.location.origin, "") - fetchData.then(({ content }) => { - const links = [...document.getElementsByClassName("internal-link")] - links - .filter(li => li.dataset.src || (li.dataset.idx && useContextualBacklinks)) - .forEach(li => { - let el - if (li.dataset.ctx) { - const linkDest = content[li.dataset.src] - const popoverElement = `
-

${linkDest.title}

-

${highlight(removeMarkdown(linkDest.content), li.dataset.ctx)}...

-

${new Date(linkDest.lastmodified).toLocaleDateString()}

-
` - el = htmlToElement(popoverElement) - } else { - const linkDest = content[li.dataset.src.replace(/\/$/g, "").replace(basePath, "")] - if (linkDest) { - let splitLink = li.href.split("#") - let cleanedContent = removeMarkdown(linkDest.content) - if (splitLink.length > 1) { - let headingName = decodeURIComponent(splitLink[1]).replace(/\-/g, " ") - let headingIndex = cleanedContent.toLowerCase().indexOf("" + headingName + "") - cleanedContent = cleanedContent.substring(headingIndex, cleanedContent.length) - } - const popoverElement = `
-

${linkDest.title}

-

${cleanedContent.split(" ", 20).join(" ")}...

-

${new Date(linkDest.lastmodified).toLocaleDateString()}

-
` - el = htmlToElement(popoverElement) - } - } - - if (el) { - li.appendChild(el) - if (LATEX_ENABLED) { - renderMathInElement(el, { - delimiters: [ - { left: '$$', right: '$$', display: false }, - { left: '$', right: '$', display: false }, - ], - throwOnError: false - }) - } - - li.addEventListener("mouseover", () => { - // fix tooltip positioning - window.FloatingUIDOM.computePosition(li, el, { - middleware: [window.FloatingUIDOM.offset(10), window.FloatingUIDOM.inline(), window.FloatingUIDOM.shift()], - }).then(({ x, y }) => { - Object.assign(el.style, { - left: `${x}px`, - top: `${y}px`, - }) - }) - - el.classList.add("visible") - plausible("Popover Hover", { - props: { - href: li.dataset.src - } - }) - }) - li.addEventListener("mouseout", () => { - el.classList.remove("visible") - }) - } - }) - }) -} diff --git a/assets/js/router.js b/assets/js/router.js deleted file mode 100644 index c29ab773..00000000 --- a/assets/js/router.js +++ /dev/null @@ -1,25 +0,0 @@ -import { - apply, - navigate, - prefetch, - router, -} from "https://unpkg.com/million@1.11.5/dist/router.mjs" - -export const attachSPARouting = (init, rerender) => { - // Attach SPA functions to the global Million namespace - window.Million = { - apply, - navigate, - prefetch, - router, - } - - const render = () => requestAnimationFrame(rerender) - window.addEventListener("DOMContentLoaded", () => { - apply((doc) => init(doc)) - init() - router(".singlePage") - render() - }) - window.addEventListener("million:navigate", render) -} diff --git a/assets/js/semantic-search.js b/assets/js/semantic-search.js deleted file mode 100644 index fca2851e..00000000 --- a/assets/js/semantic-search.js +++ /dev/null @@ -1,54 +0,0 @@ -// Note: Currently, we use the REST API for Operand because of some unpkg/webpack issues. -// In the future, we'd like to use the SDK (https://github.com/operandinc/typescript-sdk). -// If someone knows how to do this w/o breaking the Operand typescript-sdk for npm users, -// please let Morgan (@morgallant) and/or (@_jzhao) know! <3 - -const apiKey = "{{$.Site.Data.config.search.operandApiKey}}" -const indexId = "{{$.Site.Data.config.search.operandIndexId}}" - -function parseSearchResults(searchResults) { - return searchResults.matches.map((m) => ({ - content: m.content, - title: searchResults.objects[m.objectId].properties.properties._title.text, - url: searchResults.objects[m.objectId].properties.properties._url.text, - })) -} - -async function searchContents(query) { - const result = await fetch("https://api.operand.ai/operand.v1.ObjectService/SearchWithin", { - method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: `${apiKey}`, - "Operand-Index-ID": `${indexId}`, - }, - body: JSON.stringify({ - query: query, - limit: 10, - }), - }) - if (result.ok) { - return parseSearchResults(await result.json()) - } else { - console.error(result) - } -} - -function debounce(func, timeout = 200) { - let timer - return (...args) => { - clearTimeout(timer) - timer = setTimeout(() => { - func.apply(this, args) - }, timeout) - } -} - -registerHandlers( - debounce((e) => { - let term = e.target.value - if (term !== "") { - searchContents(term).then((results) => displayResults(term, results)) - } - }), -) diff --git a/assets/js/util.js b/assets/js/util.js deleted file mode 100644 index bd434c73..00000000 --- a/assets/js/util.js +++ /dev/null @@ -1,226 +0,0 @@ -// code from https://github.com/danestves/markdown-to-text -const removeMarkdown = ( - markdown, - options = { - listUnicodeChar: false, - stripListLeaders: true, - gfm: true, - useImgAltText: false, - preserveLinks: false, - }, -) => { - let output = markdown || "" - output = output.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*$/gm, "") - - try { - if (options.stripListLeaders) { - if (options.listUnicodeChar) - output = output.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, options.listUnicodeChar + " $1") - else output = output.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, "$1") - } - if (options.gfm) { - output = output - .replace(/\n={2,}/g, "\n") - .replace(/~{3}.*\n/g, "") - .replace(/~~/g, "") - .replace(/`{3}.*\n/g, "") - } - if (options.preserveLinks) { - output = output.replace(/\[(.*?)\][\[\(](.*?)[\]\)]/g, "$1 ($2)") - } - output = output - .replace(/<[^>]*>/g, "") - .replace(/^[=\-]{2,}\s*$/g, "") - .replace(/\[\^.+?\](\: .*?$)?/g, "") - .replace(/(#{1,6})\s+(.+)\1?/g, "$2") - .replace(/\s{0,2}\[.*?\]: .*?$/g, "") - .replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g, options.useImgAltText ? "$1" : "") - .replace(/\[(.*?)\][\[\(].*?[\]\)]/g, "$1") - .replace(/!?\[\[\S[^\[\]\|]*(?:\|([^\[\]]*))?\S\]\]/g, "$1") - .replace(/^\s{0,3}>\s?/g, "") - .replace(/(^|\n)\s{0,3}>\s?/g, "\n\n") - .replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, "") - .replace(/([\*_]{1,3})(\S.*?\S?)\1/g, "$2") - .replace(/([\*_]{1,3})(\S.*?\S?)\1/g, "$2") - .replace(/(`{3,})(.*?)\1/gm, "$2") - .replace(/`(.+?)`/g, "$1") - .replace(/\n{2,}/g, "\n\n") - .replace(/\[![a-zA-Z]+\][-\+]? /g, "") - } catch (e) { - console.error(e) - return markdown - } - return output -} - -const highlight = (content, term) => { - const highlightWindow = 20 - // try to find direct match first - const directMatchIdx = content.indexOf(term) - if (directMatchIdx !== -1) { - const h = highlightWindow - const before = content.substring(0, directMatchIdx).split(" ").slice(-h) - const after = content - .substring(directMatchIdx + term.length, content.length - 2) - .split(" ") - .slice(0, h) - return ( - (before.length === h ? `...${before.join(" ")}` : before.join(" ")) + - `${term}` + - after.join(" ") - ) - } - - const tokenizedTerm = term.split(/\s+/).filter((t) => t !== "") - const splitText = content.split(/\s+/).filter((t) => t !== "") - const includesCheck = (token) => - tokenizedTerm.some((term) => token.toLowerCase().startsWith(term.toLowerCase())) - - const occurrencesIndices = splitText.map(includesCheck) - - // calculate best index - let bestSum = 0 - let bestIndex = 0 - for (let i = 0; i < Math.max(occurrencesIndices.length - highlightWindow, 0); i++) { - const window = occurrencesIndices.slice(i, i + highlightWindow) - const windowSum = window.reduce((total, cur) => total + cur, 0) - if (windowSum >= bestSum) { - bestSum = windowSum - bestIndex = i - } - } - - const startIndex = Math.max(bestIndex - highlightWindow, 0) - const endIndex = Math.min(startIndex + 2 * highlightWindow, splitText.length) - const mappedText = splitText - .slice(startIndex, endIndex) - .map((token) => { - if (includesCheck(token)) { - return `${token}` - } - return token - }) - .join(" ") - .replaceAll(' ', " ") - return `${startIndex === 0 ? "" : "..."}${mappedText}${endIndex === splitText.length ? "" : "..." - }` -} - -// Common utilities for search -const resultToHTML = ({ url, title, content }) => { - return `` -} - -const redir = (id, term) => { - const shouldTrim = PRODUCTION && SEARCH_ENABLED - const baseURLPrefix = shouldTrim ? "" : BASE_URL.replace(/\/$/g, "") - const urlString = `${baseURLPrefix}${id}#:~:text=${encodeURIComponent(term)}` - window.Million.navigate( - new URL(urlString), - ".singlePage", - ) - closeSearch() - plausible("Search", { - props: { - term - } - }) -} - -function openSearch() { - const source = document.getElementById("search-bar") - const results = document.getElementById("results-container") - const searchContainer = document.getElementById("search-container") - if (searchContainer.style.display === "none" || searchContainer.style.display === "") { - source.value = "" - results.innerHTML = "" - searchContainer.style.display = "block" - source.focus() - } else { - searchContainer.style.display = "none" - } -} - -function closeSearch() { - const searchContainer = document.getElementById("search-container") - searchContainer.style.display = "none" -} - -const registerHandlers = (onInputFn) => { - const source = document.getElementById("search-bar") - const searchContainer = document.getElementById("search-container") - let term - source.addEventListener("keyup", (e) => { - if (e.key === "Enter") { - const anchor = document.getElementsByClassName("result-card")[0] - redir(anchor.id, term) - } - }) - source.addEventListener("input", onInputFn) - document.addEventListener("keydown", (event) => { - if (event.key === "k" && (event.ctrlKey || event.metaKey)) { - event.preventDefault() - openSearch() - } - if (event.key === "Escape") { - event.preventDefault() - closeSearch() - } - }) - - const searchButton = document.getElementById("search-icon") - searchButton.addEventListener("click", (_) => { - openSearch() - }) - searchButton.addEventListener("keydown", (_) => { - openSearch() - }) - searchContainer.addEventListener("click", (_) => { - closeSearch() - }) - document.getElementById("search-space").addEventListener("click", (evt) => { - evt.stopPropagation() - }) -} - -const displayResults = (term, finalResults, extractHighlight = false) => { - const results = document.getElementById("results-container") - if (finalResults.length === 0) { - results.innerHTML = `` - } else { - results.innerHTML = finalResults - .map((result) => { - if (extractHighlight) { - return resultToHTML({ - url: result.url, - title: highlight(result.title, term), - content: highlight(removeMarkdown(result.content), term) - }) - } else { - return resultToHTML(result) - } - } - ) - .join("\n") - if (LATEX_ENABLED) { - renderMathInElement(results, { - delimiters: [ - { left: '$$', right: '$$', display: false }, - { left: '$', right: '$', display: false }, - ], - throwOnError: false - }) - } - - const anchors = [...document.getElementsByClassName("result-card")] - anchors.forEach((anchor) => { - anchor.onclick = () => redir(anchor.id, term) - }) - } -} diff --git a/assets/styles/_callouts.scss b/assets/styles/_callouts.scss deleted file mode 100644 index e1650fc8..00000000 --- a/assets/styles/_callouts.scss +++ /dev/null @@ -1,174 +0,0 @@ -:root { - --callout-summary: #00b0ff; - --callout-summary-accent: #7fd7ff; - --callout-bug: #f50057; - --callout-bug-accent: #ff7aa9; - --callout-danger: #ff1744; - --callout-danger-accent: #ff8aa1; - --callout-example: #7c4dff; - --callout-example-accent: #bda5ff; - --callout-fail: #ff5252; - --callout-fail-accent: #ffa8a8; - --callout-info: #00b8d4; - --callout-info-accent: #69ebff; - --callout-note: #448aff; - --callout-note-accent: #a1c4ff; - --callout-question: #64dd17; - --callout-question-accent: #b0f286; - --callout-quote: #9e9e9e; - --callout-quote-accent: #cecece; - --callout-done: #00c853; - --callout-done-accent: #63ffa4; - --callout-important: #00bfa5; - --callout-important-accent: #5fffe9; - --callout-warning: #ff9100; - --callout-warning-accent: #ffc87f; -} - -[saved-theme=dark] { - --callout-summary: #00b0ff !important; - --callout-summary-accent: #00587f !important; - --callout-bug: #f50057 !important; - --callout-bug-accent: #7a002b !important; - --callout-danger: #ff1744 !important; - --callout-danger-accent: #8b001a !important; - --callout-example: #7c4dff !important; - --callout-example-accent: #2b00a6 !important; - --callout-fail: #ff5252 !important; - --callout-fail-accent: #a80000 !important; - --callout-info: #00b8d4 !important; - --callout-info-accent: #005c6a !important; - --callout-note: #448aff !important; - --callout-note-accent: #003ca1 !important; - --callout-question: #64dd17 !important; - --callout-question-accent: #006429 !important; - --callout-quote: #9e9e9e !important; - --callout-quote-accent: #4f4f4f !important; - --callout-done: #00c853 !important; - --callout-done-accent: #006429 !important; - --callout-important: #00bfa5 !important; - --callout-important-accent: #005f52 !important; - --callout-warning: #ff9100 !important; - --callout-warning-accent: #7f4800 !important; -} - -blockquote.callout-collapsible { - cursor: pointer; - - &.callout-collapsible::after { - content: '-'; - right: 6px; - font-weight: bolder; - font-family: Courier New, Courier, monospace; - } -} - -blockquote.callout-collapsed { - & > p { border-bottom-right-radius: 5px !important; } - padding-bottom: 0 !important; - &::after { - content: '+' !important; - } - & > *:not(:first-child) { - display: none !important; - } -} - -blockquote[class*="-callout"] { - margin-right: 0; - border-radius: 5px; - position: relative; - padding-left: 0 !important; - padding-bottom: 0.25em; - color: var(--dark); - background-color: var(--lightgray); - border-left: 6px solid var(--primary) !important; - & > p { - border-top-right-radius: 5px; - padding: 0.5em 1em; - margin: 0; - color: var(--gray); - &:first-child { - font-weight: 600; - color: var(--dark); - padding: 0.4em 30px; - } - } -} - -blockquote[class*="-callout"] > p:first-child::after, blockquote.callout-collapsible::after { - display: inline-block; - height: 18px; - width: 18px; - position: absolute; - top: 0.4em; - margin: 0.2em 0.4em; -} - -blockquote[class*="-callout"] > p:first-child { - font-weight: bold; - padding: 0.4em 35px; - - &::after { - left: 0; - } -} - -blockquote[class*="-callout"] > p:empty { - padding: 1.2em 35px; -} - -$summary: summary, abstract, tldr; -$bug: bug; -$danger: danger, error; -$example: example; -$fail: fail, failure, missing; -$info: info, todo; -$note: note; -$question: question, help, faq; -$quote: quote, cite; -$done: done, success, check; -$important: important, tip, hint; -$warning: warning, caution, attention; -$types: $summary, $bug, $danger, $example, $fail, $info, $note, $question, $quote, $done, $important, $warning; -$svgs: (); -$svgs: map-merge($svgs, ($summary: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='book' class='svg-inline--callout-fa fa-book fa-w-14' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='currentColor' d='M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($bug: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='bug' class='svg-inline--callout-fa fa-bug fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($danger: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='bolt' class='svg-inline--callout-fa fa-bolt fa-w-10' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='currentColor' d='M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($example: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='list-ol' class='svg-inline--callout-fa fa-list-ol fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($fail: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='times-circle' class='svg-inline--callout-fa fa-times-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($info: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='info-circle' class='svg-inline--callout-fa fa-info-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($note: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='pencil-alt' class='svg-inline--callout-fa fa-pencil-alt fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($question: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='question-circle' class='svg-inline--callout-fa fa-question-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($quote: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='quote-right' class='svg-inline--callout-fa fa-quote-right fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($done: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='check-circle' class='svg-inline--callout-fa fa-check-circle fa-w-16' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($important: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='fire' class='svg-inline--callout-fa fa-fire fa-w-12' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z'%3E%3C/path%3E%3C/svg%3E"))); -$svgs: map-merge($svgs, ($warning: url("data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-icon='exclamation-triangle' class='svg-inline--callout-fa fa-exclamation-triangle fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'%3E%3C/path%3E%3C/svg%3E"))); - -@function getstr($l) { - $v: nth($l, 1); - @return $v; -} - -@each $type in $types { - @each $s in $type { - blockquote.#{$s}-callout { - border-left: 6px solid var(--callout-#{getstr($type)}) !important; - & > p:first-child { - background-color: var(--callout-#{getstr($type)}-accent) !important; - &::after { - content: ''; - -webkit-mask: map-get($svgs, $type); - mask: map-get($svgs, $type); - background-color: var(--callout-#{getstr($type)}) !important; - -webkit-mask-size: contain; - mask-size: contain; - -webkit-mask-repeat: no-repeat; - mask-repeat: no-repeat; - -webkit-mask-position: center; - mask-position: center; - } - } - } - } -} diff --git a/assets/styles/_dark_syntax.scss b/assets/styles/_dark_syntax.scss deleted file mode 100644 index 9d2019a8..00000000 --- a/assets/styles/_dark_syntax.scss +++ /dev/null @@ -1,85 +0,0 @@ -/* Background */ .bg { color: #f8f8f2; background-color: #282a36; } -/* PreWrapper */ .chroma { color: #f8f8f2; background-color: #282a36; } -/* Other */ .chroma .x { } -/* Error */ .chroma .err { } -/* CodeLine */ .chroma .cl { } -/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } -/* LineHighlight */ .chroma .hl { background-color: #ffffcc } -/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* Line */ .chroma .line { display: flex; } -/* Keyword */ .chroma .k { color: #ff79c6 } -/* KeywordConstant */ .chroma .kc { color: #ff79c6 } -/* KeywordDeclaration */ .chroma .kd { color: #8be9fd; font-style: italic } -/* KeywordNamespace */ .chroma .kn { color: #ff79c6 } -/* KeywordPseudo */ .chroma .kp { color: #ff79c6 } -/* KeywordReserved */ .chroma .kr { color: #ff79c6 } -/* KeywordType */ .chroma .kt { color: #8be9fd } -/* Name */ .chroma .n { } -/* NameAttribute */ .chroma .na { color: #50fa7b } -/* NameBuiltin */ .chroma .nb { color: #8be9fd; font-style: italic } -/* NameBuiltinPseudo */ .chroma .bp { } -/* NameClass */ .chroma .nc { color: #50fa7b } -/* NameConstant */ .chroma .no { } -/* NameDecorator */ .chroma .nd { } -/* NameEntity */ .chroma .ni { } -/* NameException */ .chroma .ne { } -/* NameFunction */ .chroma .nf { color: #50fa7b } -/* NameFunctionMagic */ .chroma .fm { } -/* NameLabel */ .chroma .nl { color: #8be9fd; font-style: italic } -/* NameNamespace */ .chroma .nn { } -/* NameOther */ .chroma .nx { } -/* NameProperty */ .chroma .py { } -/* NameTag */ .chroma .nt { color: #ff79c6 } -/* NameVariable */ .chroma .nv { color: #8be9fd; font-style: italic } -/* NameVariableClass */ .chroma .vc { color: #8be9fd; font-style: italic } -/* NameVariableGlobal */ .chroma .vg { color: #8be9fd; font-style: italic } -/* NameVariableInstance */ .chroma .vi { color: #8be9fd; font-style: italic } -/* NameVariableMagic */ .chroma .vm { } -/* Literal */ .chroma .l { } -/* LiteralDate */ .chroma .ld { } -/* LiteralString */ .chroma .s { color: #f1fa8c } -/* LiteralStringAffix */ .chroma .sa { color: #f1fa8c } -/* LiteralStringBacktick */ .chroma .sb { color: #f1fa8c } -/* LiteralStringChar */ .chroma .sc { color: #f1fa8c } -/* LiteralStringDelimiter */ .chroma .dl { color: #f1fa8c } -/* LiteralStringDoc */ .chroma .sd { color: #f1fa8c } -/* LiteralStringDouble */ .chroma .s2 { color: #f1fa8c } -/* LiteralStringEscape */ .chroma .se { color: #f1fa8c } -/* LiteralStringHeredoc */ .chroma .sh { color: #f1fa8c } -/* LiteralStringInterpol */ .chroma .si { color: #f1fa8c } -/* LiteralStringOther */ .chroma .sx { color: #f1fa8c } -/* LiteralStringRegex */ .chroma .sr { color: #f1fa8c } -/* LiteralStringSingle */ .chroma .s1 { color: #f1fa8c } -/* LiteralStringSymbol */ .chroma .ss { color: #f1fa8c } -/* LiteralNumber */ .chroma .m { color: #bd93f9 } -/* LiteralNumberBin */ .chroma .mb { color: #bd93f9 } -/* LiteralNumberFloat */ .chroma .mf { color: #bd93f9 } -/* LiteralNumberHex */ .chroma .mh { color: #bd93f9 } -/* LiteralNumberInteger */ .chroma .mi { color: #bd93f9 } -/* LiteralNumberIntegerLong */ .chroma .il { color: #bd93f9 } -/* LiteralNumberOct */ .chroma .mo { color: #bd93f9 } -/* Operator */ .chroma .o { color: #ff79c6 } -/* OperatorWord */ .chroma .ow { color: #ff79c6 } -/* Punctuation */ .chroma .p { } -/* Comment */ .chroma .c { color: #6272a4 } -/* CommentHashbang */ .chroma .ch { color: #6272a4 } -/* CommentMultiline */ .chroma .cm { color: #6272a4 } -/* CommentSingle */ .chroma .c1 { color: #6272a4 } -/* CommentSpecial */ .chroma .cs { color: #6272a4 } -/* CommentPreproc */ .chroma .cp { color: #ff79c6 } -/* CommentPreprocFile */ .chroma .cpf { color: #ff79c6 } -/* Generic */ .chroma .g { } -/* GenericDeleted */ .chroma .gd { color: #ff5555 } -/* GenericEmph */ .chroma .ge { text-decoration: underline } -/* GenericError */ .chroma .gr { } -/* GenericHeading */ .chroma .gh { font-weight: bold } -/* GenericInserted */ .chroma .gi { color: #50fa7b; font-weight: bold } -/* GenericOutput */ .chroma .go { color: #44475a } -/* GenericPrompt */ .chroma .gp { } -/* GenericStrong */ .chroma .gs { } -/* GenericSubheading */ .chroma .gu { font-weight: bold } -/* GenericTraceback */ .chroma .gt { } -/* GenericUnderline */ .chroma .gl { text-decoration: underline } -/* TextWhitespace */ .chroma .w { } diff --git a/assets/styles/_light_syntax.scss b/assets/styles/_light_syntax.scss deleted file mode 100644 index d0f452e0..00000000 --- a/assets/styles/_light_syntax.scss +++ /dev/null @@ -1,85 +0,0 @@ -/* Background */ .bg { color: #272822; background-color: #fafafa; } -/* PreWrapper */ .chroma { color: #272822; background-color: #fafafa; } -/* Other */ .chroma .x { } -/* Error */ .chroma .err { } -/* CodeLine */ .chroma .cl { } -/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } -/* LineHighlight */ .chroma .hl { background-color: #ffffcc } -/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } -/* Line */ .chroma .line { display: flex; } -/* Keyword */ .chroma .k { color: #00a8c8 } -/* KeywordConstant */ .chroma .kc { color: #00a8c8 } -/* KeywordDeclaration */ .chroma .kd { color: #00a8c8 } -/* KeywordNamespace */ .chroma .kn { color: #f92672 } -/* KeywordPseudo */ .chroma .kp { color: #00a8c8 } -/* KeywordReserved */ .chroma .kr { color: #00a8c8 } -/* KeywordType */ .chroma .kt { color: #00a8c8 } -/* Name */ .chroma .n { color: #111111 } -/* NameAttribute */ .chroma .na { color: #75af00 } -/* NameBuiltin */ .chroma .nb { color: #111111 } -/* NameBuiltinPseudo */ .chroma .bp { color: #111111 } -/* NameClass */ .chroma .nc { color: #75af00 } -/* NameConstant */ .chroma .no { color: #00a8c8 } -/* NameDecorator */ .chroma .nd { color: #75af00 } -/* NameEntity */ .chroma .ni { color: #111111 } -/* NameException */ .chroma .ne { color: #75af00 } -/* NameFunction */ .chroma .nf { color: #75af00 } -/* NameFunctionMagic */ .chroma .fm { color: #111111 } -/* NameLabel */ .chroma .nl { color: #111111 } -/* NameNamespace */ .chroma .nn { color: #111111 } -/* NameOther */ .chroma .nx { color: #75af00 } -/* NameProperty */ .chroma .py { color: #111111 } -/* NameTag */ .chroma .nt { color: #f92672 } -/* NameVariable */ .chroma .nv { color: #111111 } -/* NameVariableClass */ .chroma .vc { color: #111111 } -/* NameVariableGlobal */ .chroma .vg { color: #111111 } -/* NameVariableInstance */ .chroma .vi { color: #111111 } -/* NameVariableMagic */ .chroma .vm { color: #111111 } -/* Literal */ .chroma .l { color: #ae81ff } -/* LiteralDate */ .chroma .ld { color: #d88200 } -/* LiteralString */ .chroma .s { color: #d88200 } -/* LiteralStringAffix */ .chroma .sa { color: #d88200 } -/* LiteralStringBacktick */ .chroma .sb { color: #d88200 } -/* LiteralStringChar */ .chroma .sc { color: #d88200 } -/* LiteralStringDelimiter */ .chroma .dl { color: #d88200 } -/* LiteralStringDoc */ .chroma .sd { color: #d88200 } -/* LiteralStringDouble */ .chroma .s2 { color: #d88200 } -/* LiteralStringEscape */ .chroma .se { color: #8045ff } -/* LiteralStringHeredoc */ .chroma .sh { color: #d88200 } -/* LiteralStringInterpol */ .chroma .si { color: #d88200 } -/* LiteralStringOther */ .chroma .sx { color: #d88200 } -/* LiteralStringRegex */ .chroma .sr { color: #d88200 } -/* LiteralStringSingle */ .chroma .s1 { color: #d88200 } -/* LiteralStringSymbol */ .chroma .ss { color: #d88200 } -/* LiteralNumber */ .chroma .m { color: #ae81ff } -/* LiteralNumberBin */ .chroma .mb { color: #ae81ff } -/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } -/* LiteralNumberHex */ .chroma .mh { color: #ae81ff } -/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } -/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } -/* LiteralNumberOct */ .chroma .mo { color: #ae81ff } -/* Operator */ .chroma .o { color: #f92672 } -/* OperatorWord */ .chroma .ow { color: #f92672 } -/* Punctuation */ .chroma .p { color: #111111 } -/* Comment */ .chroma .c { color: #75715e } -/* CommentHashbang */ .chroma .ch { color: #75715e } -/* CommentMultiline */ .chroma .cm { color: #75715e } -/* CommentSingle */ .chroma .c1 { color: #75715e } -/* CommentSpecial */ .chroma .cs { color: #75715e } -/* CommentPreproc */ .chroma .cp { color: #75715e } -/* CommentPreprocFile */ .chroma .cpf { color: #75715e } -/* Generic */ .chroma .g { } -/* GenericDeleted */ .chroma .gd { } -/* GenericEmph */ .chroma .ge { font-style: italic } -/* GenericError */ .chroma .gr { } -/* GenericHeading */ .chroma .gh { } -/* GenericInserted */ .chroma .gi { } -/* GenericOutput */ .chroma .go { } -/* GenericPrompt */ .chroma .gp { } -/* GenericStrong */ .chroma .gs { font-weight: bold } -/* GenericSubheading */ .chroma .gu { } -/* GenericTraceback */ .chroma .gt { } -/* GenericUnderline */ .chroma .gl { } -/* TextWhitespace */ .chroma .w { } diff --git a/assets/styles/base.scss b/assets/styles/base.scss deleted file mode 100644 index 85eb8bcf..00000000 --- a/assets/styles/base.scss +++ /dev/null @@ -1,625 +0,0 @@ -// Replace this with your own font imports! -@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&family=Inter:wght@400;600;700&family=Source+Sans+Pro:wght@400;600&display=swap'); -:root { - --font-body: "Source Sans Pro"; - --font-header: "Inter"; - --font-mono: "Fira Code" -} - -// typography -html { - scroll-behavior: smooth; - &:lang(ar) { - & p, & h1, & h2, & h3, article, header { - direction: rtl; - text-align: right; - } - } - & footer > p { - text-align: center !important; - } -} - -.singlePage { - padding: 4em 30vw; - margin: 0 auto; - max-width: 1000px; - @media all and (max-width: 1200px) { - padding: 25px 5vw; - } -} - - -body { - margin: 0; - height: 100vh; - width: 100vw; - max-width: 100%; - box-sizing: border-box; - background-color: var(--light); -} - -h1, h2, h3, h4, h5, h6, thead { - font-family: var(--font-header); - color: var(--dark); - font-weight: revert; - margin: 2rem 0 0; - padding: 2rem auto 1rem; - - &:hover > .hanchor { - color: var(--secondary); - } -} - -.hanchor { - font-family: var(--font-header); - opacity: 0.8; - transition: color 0.3s ease; - color: var(--dark); -} - -p, ul, text, a, tr, td, li, ol, ul { - font-family: var(--font-body); - color: var(--gray); - fill: var(--gray); - font-weight: revert; - margin: revert; - padding: revert; -} - -tbody, li, p { - line-height: 1.5em; -} - -.mainTOC { - border-radius: 5px; - padding: 0.75em 0; - - & details { - & summary { - cursor: zoom-in; - font-family: var(--font-header); - color: var(--dark); - font-weight: 700; - } - - &[open] summary { - cursor: zoom-out; - } - } -} - -#TableOfContents > ol { - counter-reset: section; - margin-left: 0; - padding-left: 1.5em; - & > li { - counter-increment: section; - & > ol { - counter-reset: subsection; - & > li { - counter-increment: subsection; - &::marker { - content: counter(section) "." counter(subsection) " "; - } - } - } - } - - & > li::marker { - content: counter(section) " "; - } - - & > li::marker, & > li > ol > li::marker { - font-family: var(--font-body); - font-weight: 700; - } -} - -table { - border: 1px solid var(--outlinegray); - width: 100%; - padding: 1.5em; - border-collapse: collapse; -} - -td, th { - padding: 0.2em 1em; - border: 1px solid var(--outlinegray); -} - -img { - max-width: 100%; - border-radius: 3px; - margin: 1em 0; -} - -p > img + em { - display: block; - transform: translateY(-1em); -} - -sup { - line-height: 0 -} - -blockquote { - margin-left: 0; - border-left: 3px solid var(--secondary); - padding-left: 1em; - transition: border-color 0.2s ease; -} - -.footnotes p { - margin: 0.5em 0; -} - -.pagination { - list-style: none; - padding-left: 0; - display: flex; - margin-top: 2em; - gap: 1.5em; - justify-content: center; - - .disabled { - opacity: 0.2; - } - - & > li { - text-align: center; - display: inline-block; - - & a { - background-color: transparent !important; - } - - & a[href$="#"], &.active a { - opacity: 0.2; - } - } -} - -article { - & > h1 { - margin-top: 2em; - font-size: 2em; - } - - & > .meta { - margin: 0 0 1em 0; - opacity: 0.7; - } - - & a { - font-weight: 600; - - &.internal-link { - text-decoration: none; - background-color: transparentize(#8f9fa9, 0.85); - padding: 0 0.1em; - margin: auto -0.1em; - border-radius: 3px; - - &.broken { - opacity: 0.5; - background-color: transparent; - } - } - } - - & p { - overflow-wrap: anywhere; - } -} - -.tags { - list-style: none; - padding-left: 0; - - & .meta { - margin: 1.5em 0; - & > h1 { - margin: 0; - } - & > p { - margin: 0; - } - } - - & > li { - display: inline-block; - margin: 0.4em 0.2em; - } - - & > li > a { - border-radius: 8px; - border: var(--outlinegray) 1px solid; - padding: 0.2em 0.5em; - &::before { - content: "#"; - margin-right: 0.3em; - color: var(--outlinegray); - } - } -} - -.backlinks a { - font-weight: 600; - font-size: 0.9rem; -} - -sup > a { - text-decoration: none; - padding: 0 0.1em 0 0.2em; -} - -#page-title { - margin: 0; - & > a { - font-family: var(--font-header); - } -} - -a { - font-size: 1em; - font-weight: 700; - text-decoration: none; - transition: all 0.2s ease; - color: var(--secondary); - &:hover { - color: var(--tertiary) !important; - } -} - -pre { - font-family: var(--font-mono); - padding: 0.75em; - border-radius: 3px; - overflow-x: scroll; -} - -code { - font-family: var(--font-mono); - font-size: 0.85em; - padding: 0.15em 0.3em; - border-radius: 5px; - background: var(--lightgray); -} - -@keyframes fadeIn { - 0% {opacity:0;} - 100% {opacity:1;} -} - -footer { - margin-top: 4em; - text-align: center; - & ul { - padding-left: 0; - } -} - -hr { - width: 100%; - margin: 2em auto; - height: 1px; - border: none; - background-color: var(--outlinegray); -} - -.page-end { - display: flex; - flex-direction: row; - gap: 2em; - - @media all and (max-width: 780px) { - flex-direction: column; - } - - & > * { - flex: 1 0 0; - } - - & > .backlinks-container { - & > ul { - list-style: none; - padding: 0; - margin: 0; - - & > li { - margin: 0.5em 0; - padding: 0.25em 1em; - border: var(--outlinegray) 1px solid; - border-radius: 5px - } - } - } - - & #graph-container { - border: var(--outlinegray) 1px solid; - border-radius: 5px; - box-sizing: border-box; - min-height: 250px; - margin: 0.5em 0; - - & > svg { - margin-bottom: -5px; - - } - } -} - -.centered { - margin-top: 30vh; -} - -.spacer { - flex: 1 1 auto; -} - -header { - display: flex; - flex-direction: row; - align-items: center; - margin: 1em 0 2em; - - & > h1 { - font-size: 2em; - } - - & > nav { - @media all and (max-width: 600px) { - display: none; - } - } - - #search-icon { - background-color: var(--lightgray); - border-radius: 4px; - height: 2em; - display: flex; - align-items: center; - cursor: pointer; - & > p { - display: inline; - padding: 0 1.5em 0 2em; - } - } - - & svg { - cursor: pointer; - width: 18px; - min-width: 18px; - margin: 0 0.5em; - - &:hover .search-path { - stroke: var(--tertiary); - } - - .search-path { - stroke: var(--gray); - stroke-width: 2px; - transition: stroke 0.5s ease; - } - } -} - -#search-container { - position: fixed; - z-index: 9999; - left: 0; - top: 0; - width: 100vw; - height: 100%; - overflow: scroll; - display: none; - backdrop-filter: blur(4px); - -webkit-backdrop-filter: blur(4px); - - & > div { - width: 50%; - margin-top: 15vh; - margin-left: auto; - margin-right: auto; - - @media all and (max-width: 1200px) { - width: 90%; - } - - & > * { - width: 100%; - border-radius: 4px; - background: var(--light); - box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16); - margin-bottom: 2em; - } - - & > input { - box-sizing: border-box; - padding: 0.5em 1em; - font-family: var(--font-body); - color: var(--dark); - font-size: 1.1em; - border: 1px solid var(--outlinegray); - - &:focus { - outline: none; - } - } - - & > #results-container { - & .result-card { - padding: 1em; - cursor: pointer; - transition: background 0.2s ease; - border: 1px solid var(--outlinegray); - border-bottom: none; - width: 100%; - - // normalize button props - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; - overflow: visible; - text-transform: none; - text-align: left; - background: var(--light); - outline: none; - - &:hover, &:focus { - background: rgba(180, 180, 180, 0.15); - } - - &:first-of-type { - border-top-left-radius: 5px; - border-top-right-radius: 5px; - } - - &:last-of-type { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - border-bottom: 1px solid var(--outlinegray); - } - - & > h3, & > p { - margin: 0; - } - } - } - } -} - -.search-highlight { - background-color: #afbfc966; - padding: 0.05em 0.2em; - border-radius: 3px; -} - -.section-ul { - list-style: none; - margin-top: 2em; - padding-left: 0; - -} - -.section-li { - margin-bottom: 1em; - - & > .section { - display: flex; - align-items: center; - - @media all and (max-width: 600px) { - & .tags { - display: none; - } - } - - & h3 > a { - font-weight: 700; - margin: 0; - } - - & p { - margin: 0; - padding-right: 1em; - flex-basis: 6em; - } - } - - & h3 { - opacity: 1; - font-weight: 700; - margin: 0; - } - - & .meta { - opacity: 0.6; - } -} - -@keyframes dropin { - 0% { - display: none; - opacity: 0; - visibility: hidden; - } - 1% { - display: inline-block; - opacity: 0; - } - 100% { - opacity: 1; - visibility: visible; - } -} - -.popover { - z-index: 999; - position: absolute; - width: 20rem; - display: none; - background-color: var(--light); - padding: 1rem; - margin: 1rem; - border: 1px solid var(--outlinegray); - border-radius: 5px; - pointer-events: none; - transition: opacity 0.2s ease, transform 0.2s ease; - user-select: none; - overflow-wrap: anywhere; - box-shadow: 6px 6px 36px 0 rgba(0,0,0,0.25); - - @media all and (max-width: 600px) { - display: none !important; - } - - &.visible { - opacity: 1; - visibility: visible; - display: inline-block; - animation: dropin 0.2s ease; - } - - & > h3 { - font-size: 1rem; - margin: 0.25rem 0; - } - - & .meta { - margin-top: 0.25rem; - opacity: 0.5; - font-family: var(--font-mono); - font-size: 0.8rem; - } - - & > p { - margin: 0; - padding: 0.5rem 0; - } - - & > p, & > a { - font-size: 1rem; - font-weight: 400; - user-select: none; - } -} - -#contact_buttons ul { - list-style-type: none; - - li { - display: inline-block; - } - - li a { - padding: 0 1em; - } -} - -mark { - background-color: var(--highlighted); - color: var(--gray); -} diff --git a/assets/styles/clipboard.scss b/assets/styles/clipboard.scss deleted file mode 100644 index 7989e248..00000000 --- a/assets/styles/clipboard.scss +++ /dev/null @@ -1,47 +0,0 @@ -.clipboard-button { - position: absolute; - display: flex; - float: right; - right: 0; - padding: 0.69em; - margin: 0.5em; - color: var(--outlinegray); - border-color: var(--dark); - background-color: var(--lightgray); - filter: contrast(1.1); - border: 2px solid; - border-radius: 6px; - font-size: 0.8em; - z-index: 1; - opacity: 0; - transition: 0.12s; - - & > svg { - fill: var(--light); - filter: contrast(0.3); - } - - &:hover { - cursor: pointer; - border-color: var(--primary); - - & > svg { - fill: var(--primary); - } - } - - &:focus { - outline: 0; - } -} - -.highlight { - position: relative; - - &:hover > .clipboard-button { - opacity: 1; - transition: 0.2s; - } -} - - diff --git a/assets/styles/code-title.scss b/assets/styles/code-title.scss deleted file mode 100644 index b384743b..00000000 --- a/assets/styles/code-title.scss +++ /dev/null @@ -1,20 +0,0 @@ -.code-title { - color: var(--primary) ; - font-family: var(--font-mono); - width: max-content; - overflow-x: auto; - display: inline-block; - vertical-align: middle; - font-weight: normal; - line-height: 1em; - position: relative; - padding: 0.5em 0.6em 0.6em; // + 1.2 em - max-width: calc(100% - 1.2em); // (-1.2 em) fits article width exactly - margin-bottom: -0.2em; - z-index: -1; - border-top-left-radius: 0.3em; - border-top-right-radius: 0.3em; - font-size: 0.9em; - background-color: var(--lightgray); - filter: hue-rotate(-30deg) contrast(1.0) opacity(0.8); -} \ No newline at end of file diff --git a/assets/styles/custom.scss b/assets/styles/custom.scss deleted file mode 100644 index fc0108a5..00000000 --- a/assets/styles/custom.scss +++ /dev/null @@ -1,31 +0,0 @@ -// Add your own CSS here! - -:root { - --light: #faf8f8; - --dark: #141021; - --secondary: #284b63; - --tertiary: #84a59d; - --visited: #afbfc9; - --primary: #f28482; - --gray: #4e4e4e; - --lightgray: #f0f0f0; - --outlinegray: #dadada; - --million-progress-bar-color: var(--secondary); - --highlighted: #f5dfaf88; -} - -[saved-theme="dark"] { - --light: #1e1e21 !important; - --dark: #fbfffe !important; - --secondary: #6b879a !important; - --visited: #4a575e !important; - --tertiary: #84a59d !important; - --primary: #f58382 !important; - --gray: #d4d4d4 !important; - --lightgray: #292633 !important; - --outlinegray: #343434 !important; - --highlighted: #574010; -} - - - diff --git a/assets/styles/darkmode.scss b/assets/styles/darkmode.scss deleted file mode 100644 index 61967d79..00000000 --- a/assets/styles/darkmode.scss +++ /dev/null @@ -1,44 +0,0 @@ -.darkmode { - float: right; - padding: 1em; - min-width: 30px; - position: relative; - - @media all and (max-width: 450px) { - padding: 1em; - } - - & > .toggle { - display: none; - box-sizing: border-box; - } - - & svg { - opacity: 0; - position: absolute; - width: 20px; - height: 20px; - top: calc(50% - 10px); - margin: 0 7px; - fill: var(--gray); - transition: opacity 0.1s ease; - } -} - -.toggle:checked ~ label { - & > #dayIcon { - opacity: 0; - } - & > #nightIcon { - opacity: 1; - } -} - -.toggle:not(:checked) ~ label { - & > #dayIcon { - opacity: 1; - } - & > #nightIcon { - opacity: 0; - } -} \ No newline at end of file diff --git a/assets/styles/syntax.scss b/assets/styles/syntax.scss deleted file mode 100644 index 6267f5cf..00000000 --- a/assets/styles/syntax.scss +++ /dev/null @@ -1,66 +0,0 @@ -// Overrides -/* Background */ -.chroma { - overflow: hidden !important; - background-color: var(--lightgray) !important; -} - -/* LineTable */ -.chroma .lntable { - width: auto !important; - overflow: auto !important; - display: block !important; -} - -/* LineHighlight */ -.chroma .hl { - display: block !important; - width: 100% !important; -} - -/* LineNumbersTable */ -.chroma .lnt { - margin-right: 0.0em !important; - padding: 0 0.0em 0 0.0em !important; -} - -/* LineNumbers */ -.chroma .ln { - margin-right: 0.0em !important; - padding: 0 0.0em 0 0.0em !important; -} - -/* GenericDeleted */ -.chroma .gd { - color: #8b080b !important; -} - -/* GenericInserted */ -.chroma .gi { - font-weight: bold !important; -} - -.lntd:first-of-type > .chroma { - padding-right: 0 !important; -} - -.chroma code { - font-family: var(--font-mono) !important; - font-size: 0.85em !important; - line-height: 2em !important; - background: none !important; - padding: 0 !important; -} - -.chroma { - border-radius: 3px !important; - margin: 0 !important; -} - -pre.chroma { - -moz-tab-size:4;-o-tab-size:4;tab-size:4; -} - -.katex { - font-size: 1.1em !important; -} diff --git a/config.toml b/config.toml deleted file mode 100644 index dbe98932..00000000 --- a/config.toml +++ /dev/null @@ -1,33 +0,0 @@ -baseURL = "https://quartz.jzhao.xyz/" -languageCode = "en-us" -relativeURLs = false -disablePathToLower = true -ignoreFiles = [ - "/content/templates/*", - "/content/private/*", -] -summaryLength = 20 -paginate = 10 -enableGitInfo = true - -[markup] - [markup.tableOfContents] - endLevel = 3 - ordered = true - startLevel = 2 - [markup.highlight] - noClasses = false - anchorLineNos = false - codeFences = true - guessSyntax = true - hl_Lines = "" - lineAnchors = "" - lineNoStart = 1 - lineNos = true - lineNumbersInTable = true - style = "dracula" - [frontmatter] - lastmod = ["lastmod", ":git", "date", "publishDate"] - publishDate = ["publishDate", "date"] - [markup.goldmark.renderer] - unsafe = true diff --git a/data/config.yaml b/data/config.yaml deleted file mode 100644 index 5ef8b634..00000000 --- a/data/config.yaml +++ /dev/null @@ -1,29 +0,0 @@ -name: Jacky Zhao -enableToc: true -openToc: false -enableLinkPreview: true -enableLatex: true -enableCodeBlockTitle: true -enableCodeBlockCopy: true -enableCallouts: true -enableSPA: true -enableFooter: true -enableContextualBacklinks: true -enableRecentNotes: false -enableGitHubEdit: true -enableMermaid: true -GitHubLink: https://github.com/jackyzha0/quartz/tree/hugo/content -search: - enableSemanticSearch: false - operandApiKey: "REPLACE-WITH-YOUR-OPERAND-API-KEY" - operandIndexId: "REPLACE-WITH-YOUR-OPERAND-INDEX-ID" -description: - Host your second brain and digital garden for free. Quartz features extremely fast full-text search, - Wikilink support, backlinks, local graph, tags, and link previews. -page_title: - "๐Ÿชด Quartz 3.3" -links: - - link_name: Twitter - link: https://twitter.com/_jzhao - - link_name: GitHub - link: https://github.com/jackyzha0 diff --git a/data/graphConfig.yaml b/data/graphConfig.yaml deleted file mode 100644 index a6f916ac..00000000 --- a/data/graphConfig.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# if true, a Global Graph will be shown on home page with full width, no backlink. -# A different set of Local Graphs will be shown on sub pages. -# if false, Local Graph will be default on every page as usual -enableGlobalGraph: false - -### Local Graph ### - -localGraph: - enableLegend: false - enableDrag: true - enableZoom: true - depth: 1 # set to -1 to show full graph - scale: 1.2 - repelForce: 2 - centerForce: 1 - linkDistance: 1 - fontSize: 0.6 - opacityScale: 3 - -### Global Graph ### - -globalGraph: - enableLegend: false - enableDrag: true - enableZoom: true - depth: -1 # set to -1 to show full graph - scale: 1.4 - repelForce: 1 - centerForce: 1 - linkDistance: 1 - fontSize: 0.5 - opacityScale: 3 - -### For all graphs ### - -paths: - - /moc: "#4388cc" diff --git a/i18n/ar.toml b/i18n/ar.toml deleted file mode 100644 index 631c0715..00000000 --- a/i18n/ar.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "ูŠุจุฏูˆ ุฃู†ูƒ ุถู„ู„ุช ุงู„ุทุฑูŠู‚. ู‡ุฐู‡ ุงู„ุตูุญุฉ ุบูŠุฑ ู…ูˆุฌูˆุฏุฉ (ุฃูˆ ู‚ุฏ ุชูƒูˆู† ุฎุงุตุฉ)." - -[404_back] -other = "โ†ณ ุงู„ุนูˆุฏุฉ ู„ู„ุฑุฆูŠุณูŠุฉ." - -[all_posts] -other = "ูƒู„ ู…ู†ุดูˆุฑุงุช {{.Title}}" - -[last_updated] -other = "ุขุฎุฑ ุชุนุฏูŠู„" - -[notes_count] -other = "ู…ู„ุงุญุธุงุช ุจู‡ุฐู‡ ุงู„ุชุณู…ูŠุฉ" - -[first_10] -other = "(ุชุนุฑุถ ุฃูˆู„ 10 ู†ุชุงุฆุฌ ูู‚ุท)" - -[tag] -other = "ุงู„ุชุณู…ูŠุฉ" - -[backlinks] -other = "ุงู„ุฑูˆุงุจุท ุงู„ุฎู„ููŠุฉ" - -[no_backlinks] -other = "ู„ุง ุชูˆุฌุฏ ุฑูˆุงุจุท ุฎู„ููŠุฉ" - -[home] -other = "ุงู„ุฑุฆูŠุณูŠุฉ" - -[light_mode] -other = "ุงู„ุณู…ุฉ ุงู„ูุงุชุญุฉ" - -[dark_mode] -other = "ุงู„ุณู…ุฉ ุงู„ุฏุงูƒู†ุฉ" - -[edit_source] -other = "ุชุนุฏูŠู„ ุงู„ู…ุตุฏุฑ" - -[interactive_graph] -other = "ุงู„ู…ุฎุทุท ุงู„ุชูุงุนู„ูŠ" - -[search] -other = "ุงู„ุจุญุซ" - -[search_icon] -other = "ุฃูŠู‚ูˆู†ุฉ ุงู„ุจุญุซ" - -[icon_search] -other = "ุฃูŠู‚ูˆู†ุฉ ูุชุญ ู†ุงูุฐุฉ ุงู„ุจุญุซ" - -[recent_notes] -other = "ุงู„ู…ู„ุงุญุธุงุช ุง๏ปทุฎูŠุฑุฉ" - -[first_3_notes] -other = "ุฃูˆู„ 3 {{ .notes }}" - -[search_for_something] -other = "ุงุจุญุซ ุนู† ุดูŠุก ู…ุง..." - -[toc] -other = "ุงู„ูู‡ุฑุณ" - -[copyright] -other = "ุตูู…ู… ุจูˆุงุณุทุฉ {{ .name }} ุจุงุณุชุฎุฏุงู… ูƒูˆุงุฑุชุฒุŒ {{ .year }} ยฉ" diff --git a/i18n/bn.toml b/i18n/bn.toml deleted file mode 100644 index 2d3acfb2..00000000 --- a/i18n/bn.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "เฆเฆ‡ เฆชเฆพเฆคเฆพเฆŸเฆฟ เฆจเง‡เฆ‡ (เฆ…เฆฅเฆฌเฆพ เฆฌเงเฆฏเฆ•เงเฆคเฆฟเฆ—เฆค)" - -[404_back] -other = "โ†ณ เฆนเง‹เฆฎ เฆชเง‡เฆœเง‡ เฆซเฆฟเฆฐเง‡ เฆฏเฆพเฆ‡" - -[all_posts] -other = "เฆธเฆ•เฆฒ {{.Title}}" - -[last_updated] -other = "เฆธเฆฐเงเฆฌเฆถเง‡เฆท เฆชเฆฐเฆฟเฆฌเฆฐเงเฆคเฆฟเฆค" - -[notes_count] -other = "เฆธเฆ‚เฆ–เงเฆฏเฆ• เฆเฆ‡ เฆŸเงเฆฏเฆพเฆ—เง‡เฆฐ" - -[first_10] -other = "เฆชเงเฆฐเฆฅเฆฎ เงงเงฆ เฆŸเฆฟ เฆซเฆฒเฆพเฆซเฆฒ" - -[tag] -other = "เฆŸเงเฆฏเฆพเฆ—" - -[backlinks] -other = "เฆชเฆฟเฆ›เฆจ เฆชเฆพเฆคเฆพ" - -[no_backlinks] -other = "เฆชเฆฟเฆ›เฆจเง‡ เฆ•เง‹เฆจ เฆชเฆพเฆคเฆพ เฆจเง‡เฆ‡" - -[home] -other = "เฆนเง‹เฆฎ" - -[light_mode] -other = "เฆ†เฆฒเง‹เฆ•เฆฟเฆค" - -[dark_mode] -other = "เฆ…เฆจเงเฆงเฆ•เฆพเฆฐ" - -[edit_source] -other = "เฆธเฆฎเงเฆชเฆพเฆฆเฆจ เฆ•เฆฐเงเฆจ" - -[interactive_graph] -other = "เฆœเงเฆžเฆพเฆจเฆ•เง‹เฆทเง‡เฆฐ เฆ—เงเฆฐเฆพเฆซ" - -[search] -other = "เฆ–เงเฆเฆœเงเฆจ" - -[search_icon] -other = "เฆ–เง‹เฆเฆœเฆพเฆฐ เฆ†เฆ‡เฆ•เฆจ" - -[icon_search] -other = "เฆœเงเฆžเฆพเฆจเฆ•เง‹เฆท" - -[recent_notes] -other = "เฆธเฆพเฆฎเงเฆชเงเฆฐเฆคเฆฟเฆ•" - -[first_3_notes] -other = "เฆชเงเฆฐเฆฅเฆฎ เงฉ {{ .notes }}" - -[search_for_something] -other = "เฆ–เงเฆเฆœเงเฆจ..." - -[toc] -other = "เฆธเง‚เฆšเฆฟเฆชเฆคเงเฆฐ" - -[copyright] -other = "{{ .name }} เฆ•เฆฐเงเฆคเงƒเฆ• Quartz เฆฌเงเฆฏเฆฌเฆนเฆพเฆฐ เฆ•เฆฐเง‡ เฆคเงˆเฆฐเฆฟเฆ•เงƒเฆค ยฉ {{ .year }}" \ No newline at end of file diff --git a/i18n/de.toml b/i18n/de.toml deleted file mode 100644 index 266bfd71..00000000 --- a/i18n/de.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "Hey! Hast du dich verirrt? Diese Seite existiert leider nicht (oder ist privat)." - -[404_back] -other = "โ†ณ Zurรผck zur Startseite." - -[all_posts] -other = "Alle {{.Title}}" - -[last_updated] -other = "Zuletzt aktualisiert" - -[notes_count] -other = "Beitrรคge mit diesem Tag" - -[first_10] -other = "Zeige die ersten 10 Ergebnisse" - -[tag] -other = "Tag" - -[backlinks] -other = "Backlinks" - -[no_backlinks] -other = "Keine Backlinks gefunden" - -[home] -other = "Home" - -[light_mode] -other = "Light Mode" - -[dark_mode] -other = "Dark Mode" - -[edit_source] -other = "Quelldatei bearbeiten" - -[interactive_graph] -other = "Interaktiver Graph" - -[search] -other = "Suche" - -[search_icon] -other = "Suchsymbol" - -[icon_search] -other = "Symbol, um die Suche zu รถffnen" - -[recent_notes] -other = "Neuste Beitrรคge" - -[first_3_notes] -other = "Die ersten 3 {{ .notes }}" - -[search_for_something] -other = "Suche nach etwas ..." - -[toc] -other = "Inhaltsverzeichnis" - -[copyright] -other = "Made by {{ .name }} using Quartz, ยฉ {{ .year }}" diff --git a/i18n/en.toml b/i18n/en.toml deleted file mode 100644 index b9ce33e6..00000000 --- a/i18n/en.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "Hey! You look a little lost. This page doesn't exist (or may be private)." - -[404_back] -other = "โ†ณ Let's get you home." - -[all_posts] -other = "All {{.Title}}" - -[last_updated] -other = "Last updated" - -[notes_count] -other = "notes with this tag" - -[first_10] -other = "showing first 10 results" - -[tag] -other = "Tag" - -[backlinks] -other = "Backlinks" - -[no_backlinks] -other = "No backlinks found" - -[home] -other = "Home" - -[light_mode] -other = "Light Mode" - -[dark_mode] -other = "Dark Mode" - -[edit_source] -other = "Edit Source" - -[interactive_graph] -other = "Interactive Graph" - -[search] -other = "Search" - -[search_icon] -other = "Search Icon" - -[icon_search] -other = "Icon to open search" - -[recent_notes] -other = "Recent Notes" - -[first_3_notes] -other = "first 3 {{ .notes }}" - -[search_for_something] -other = "Search for something..." - -[toc] -other = "Table of Contents" - -[copyright] -other = "Made by {{ .name }} using Quartz, ยฉ {{ .year }}" diff --git a/i18n/es.toml b/i18n/es.toml deleted file mode 100644 index 2effa237..00000000 --- a/i18n/es.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "Hey! Te ves un poco perdido. Esta pรกgina no existe (o puede que sea privada)." - -[404_back] -other = "โ†ณ Vamos a llevarte de regreso a casa." - -[all_posts] -other = "Todos {{.Title}}" - -[last_updated] -other = "Actualizado por รบltima vez" - -[notes_count] -other = "notas con esta etiqueta" - -[first_10] -other = "mostrando los primeros 10 resultados" - -[tag] -other = "Etiqueta" - -[backlinks] -other = "Backlinks" - -[no_backlinks] -other = "No se encontraron backlinks" - -[home] -other = "Casa" - -[light_mode] -other = "Modo Claro" - -[dark_mode] -other = "Modo Oscuro" - -[edit_source] -other = "Editar Fuente" - -[interactive_graph] -other = "Grรกfico Interactivo" - -[search] -other = "Bรบsqueda" - -[search_icon] -other = "รcono de Bรบsqueda" - -[icon_search] -other = "รcono para abrir la bรบsqueda" - -[recent_notes] -other = "Notas Recientes" - -[first_3_notes] -other = "primeras 3 {{ .notes }}" - -[search_for_something] -other = "Buscar algo..." - -[toc] -other = "Tabla de Contenido" - -[copyright] -other = "Hecho por {{ .name }} usando Quartz, ยฉ {{ .year }}" diff --git a/i18n/fr.toml b/i18n/fr.toml deleted file mode 100644 index f406881d..00000000 --- a/i18n/fr.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "Hey ! Vous semblez perduโ€งe. Cette page n'existe pas (ou est privรฉe)." - -[404_back] -other = "โ†ณ Clique ici pour retourner sur la page d'accueil" - -[all_posts] -other = "Tout {{.Title}}" - -[last_updated] -other = "Derniรจre modification" - -[notes_count] -other = "notes avec ce tag" - -[first_10] -other = "les 10 premiers rรฉsultats" - -[tag] -other = "Tag" - -[backlinks] -other = "Backlinks" - -[no_backlinks] -other = "Pas de backlinks trouvรฉs" - -[home] -other = "Accueil" - -[light_mode] -other = "Mode Clair" - -[dark_mode] -other = "Mode Sombre" - -[edit_source] -other = "Modifier la source" - -[interactive_graph] -other = "Graphique interactif" - -[search] -other = "Rechercher" - -[search_icon] -other = "l'icรดne de recherche" - -[icon_search] -other = "L'icรดne pour ouvrir la recherche" - -[recent_notes] -other = "Notes rรฉcentes" - -[first_3_notes] -other = "les 3 premiรจres {{ .notes }}" - -[search_for_something] -other = "Rechercher quelque-chose..." - -[toc] -other = "Table des matiรจres" - -[copyright] -other = "Fait par {{ .name }} en utilisant Quartz, ยฉ {{ .year }}" diff --git a/i18n/it.toml b/i18n/it.toml deleted file mode 100644 index f5817b45..00000000 --- a/i18n/it.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "Hey, ti sei perso? Questa pagina non esiste (o รจ privata)" - -[404_back] -other = "โ†ณ Torna alla home." - -[all_posts] -other = "Tutti {{.Title}}" - -[last_updated] -other = "Ultima modifica" - -[notes_count] -other = "note con questo tag" - -[first_10] -other = "mostrando i primi 10 risultati" - -[tag] -other = "Tag" - -[backlinks] -other = "Backlinks" - -[no_backlinks] -other = "Nessun Backlink trovato" - -[home] -other = "Home" - -[light_mode] -other = "Modalitร  Chiara" - -[dark_mode] -other = "Modalitร  Scura" - -[edit_source] -other = "Modifica Sorgente" - -[interactive_graph] -other = "Grafico Interattivo" - -[search] -other = "Cerca" - -[search_icon] -other = "Icona di ricerca" - -[icon_search] -other = "Icona per aprire la ricerca" - -[recent_notes] -other = "Note Recenti" - -[first_3_notes] -other = "prime 3 {{ .notes }}" - -[search_for_something] -other = "Cerca qualcosa..." - -[toc] -other = "Indice" - -[copyright] -other = "Realizzato da {{ .name }} con Quartz, ยฉ {{ .year }}" diff --git a/i18n/no.toml b/i18n/no.toml deleted file mode 100644 index 79e700ff..00000000 --- a/i18n/no.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "Hei! Ser ut til at du har gรฅtt deg vill. Denne siden finnes ikke (eller den kan vรฆre privat)." - -[404_back] -other = "โ†ณ La oss fรฅ deg hjem." - -[all_posts] -other = "Alle {{.Title}}" - -[last_updated] -other = "Sist oppdatert" - -[notes_count] -other = "notater med denne taggen" - -[first_10] -other = "viser fรธrste 10 resultatene" - -[tag] -other = "Tag" - -[backlinks] -other = "Tilbakekoblinger" - -[no_backlinks] -other = "Ingen tilbakekoblinger funnet" - -[home] -other = "Hjem" - -[light_mode] -other = "Lys Modus" - -[dark_mode] -other = "Mรธrk Modus" - -[edit_source] -other = "Rediger Kilde" - -[interactive_graph] -other = "Interaktiv Graf" - -[search] -other = "Sรธk" - -[search_icon] -other = "Sรธkeikon" - -[icon_search] -other = "Ikon for รฅ รฅpne sรธk" - -[recent_notes] -other = "Nylige notater" - -[first_3_notes] -other = "fรธrste 3 {{ .notes }}" - -[search_for_something] -other = "Sรธk etter noe..." - -[toc] -other = "Innholdsfortegnelse" - -[copyright] -other = "Opprettet av {{ .name }} ved hjelp av Quartz, ยฉ {{ .year }}" diff --git a/i18n/tr.toml b/i18n/tr.toml deleted file mode 100644 index 0515128b..00000000 --- a/i18n/tr.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "Hey! Biraz kaybolmuลŸ gรถrรผnรผyorsun. Bu sayfa mevcut deฤŸil (veya รถzel olabilir)." - -[404_back] -other = "โ†ณ Seni eve gรถtรผrelim." - -[all_posts] -other = "Hepsi {{.Title}}" - -[last_updated] -other = "Son gรผncelleme" - -[notes_count] -other = "Bu etikete sahip notlar" - -[first_10] -other = "ฤฐlk 10 sonuรง gรถsteriliyor" - -[tag] -other = "Etiket" - -[backlinks] -other = "Geri baฤŸlantฤฑlar" - -[no_backlinks] -other = "Geri baฤŸlantฤฑ bulunamadฤฑ" - -[home] -other = "Ev" - -[light_mode] -other = "Aydฤฑnlฤฑk Modu" - -[dark_mode] -other = "Karanlฤฑk Modu" - -[edit_source] -other = "KaynaฤŸฤฑ Dรผzenle" - -[interactive_graph] -other = "EtkileลŸimli Grafik" - -[search] -other = "Ara" - -[search_icon] -other = "Arama Simgesi" - -[icon_search] -other = "Aramayฤฑ aรงmak iรงin simge tฤฑklayฤฑn" - -[recent_notes] -other = "Son Notlar" - -[first_3_notes] -other = "ฤฐlk รœรง {{ .notes }}" - -[search_for_something] -other = "Bir ลŸey ara..." - -[toc] -other = "ฤฐรงindekiler" - -[copyright] -other = "{{ .name }} tarafฤฑndan Quartz kullanฤฑlarak yapฤฑlmฤฑลŸtฤฑr, ยฉ {{ .year }}" diff --git a/i18n/uk.toml b/i18n/uk.toml deleted file mode 100644 index f84f5ce0..00000000 --- a/i18n/uk.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "ะฅะตะน! ะ’ะธะณะปัะดะฐั”ั‚ะต ะทะดะธะฒะพะฒะฐะฝะพ. ะฆั–ั”ั— ัั‚ะพั€ั–ะฝะบะธ ะฝะต ั–ัะฝัƒั” (ะฐะฑะพ ะฒะพะฝะฐ ะฟั€ะธะฒะฐั‚ะฝะฐ)." - -[404_back] -other = "โ†ณ ะŸะพะฒะตั€ะฝะตะผะพัั ะดะพะดะพะผัƒ." - -[all_posts] -other = "ะ’ัั– {{.Title}}" - -[last_updated] -other = "ะžะฝะพะฒะปะตะฝะพ" - -[notes_count] -other = "ะฝะพะฝะฐั‚ะพะบ ะท ั†ะธะผ ั‚ะตะณะพะผ" - -[first_10] -other = "ะฟะพะบะฐะทะฐะฝะพ 10 ะฟะตั€ัˆะธั… ั€ะตะทัƒะปัŒั‚ะฐั‚ั–ะฒ" - -[tag] -other = "ะขะตะณ" - -[backlinks] -other = "ะ—ะฒะพั€ะพั‚ะฝั” ะฟะพัะธะปะฐะฝะฝั" - -[no_backlinks] -other = "ะ—ะฒะพั€ะพั‚ะฝะธั… ะฟะพัะธะปะฐะฝัŒ ะฝะต ะทะฝะฐะนะดะตะฝะพ" - -[home] -other = "ะ”ั–ะผ" - -[light_mode] -other = "ะกะฒั–ั‚ะปะธะน ะ ะตะถะธะผ" - -[dark_mode] -other = "ะขะตะผะฝะธะน ะ ะตะถะธะผ" - -[edit_source] -other = "ะ ะตะดะฐะณัƒะฒะฐั‚ะธ ะ”ะถะตั€ะตะปะพ" - -[interactive_graph] -other = "ะ†ะฝั‚ะตั€ะฐะบั‚ะธะฒะฝะธะน ะณั€ะฐั„" - -[search] -other = "ะŸะพัˆัƒะบ" - -[search_icon] -other = "ะ†ะบะพะฝะบะฐ ะŸะพัˆัƒะบัƒ" - -[icon_search] -other = "ะ†ะบะพะฝะบะฐ ะดะปั ะฒั–ะดะบั€ะธั‚ั‚ั ะฟะพัˆัƒะบัƒ" - -[recent_notes] -other = "ะะตั‰ะพะดะฐะฒะฝั– ะะพั‚ะฐั‚ะบะธ" - -[first_3_notes] -other = "ะฟะตั€ัˆั– 3 {{ .notes }}" - -[search_for_something] -other = "ะ—ะฝะฐะนั‚ะธ ั‰ะพััŒ..." - -[toc] -other = "ะ—ะผั–ัั‚" - -[copyright] -other = "ะกั‚ะฒะพั€ะตะฝะพ {{ .name }} ะท ะฒะธะบะพั€ะธัั‚ะฐะฝะฝัะผ Quartz, ยฉ {{ .year }}" diff --git a/i18n/zh-cn.toml b/i18n/zh-cn.toml deleted file mode 100644 index ca8c1b1e..00000000 --- a/i18n/zh-cn.toml +++ /dev/null @@ -1,65 +0,0 @@ -[404_message] -other = "ๅ–”ๅ“ฆ...... ไฝ ๆ˜ฏไธๆ˜ฏ่ฟท่ทฏไบ†ๅ‘€..... (โŒฏ' 'โŒฏ ) ่ฟ™ไธช้กต้ขๅนถไธๅญ˜ๅœจ๏ผˆไนŸ่ฎธๅฎƒ่ฟ˜ๆœช่ขซๅ‘ๅธƒ๏ผ‰ใ€‚" - -[404_back] -other = "โ†ณ ๅ›žๅˆฐไธป้กต" - -[all_posts] -other = "ๆ‰€ๆœ‰ {{.Title}}" - -[last_updated] -other = "ๆœ€ๅŽๆ›ดๆ–ฐไบŽ" - -[notes_count] -other = "ๅธฆๆœ‰ๆญคๆ ‡็ญพ็š„็ฌ”่ฎฐ" - -[first_10] -other = "ๆญฃๅœจๅฑ•็คบๅ‰10ไธช็ป“ๆžœ" - -[tag] -other = "ๆ ‡็ญพ" - -[backlinks] -other = "ๅๅ‘้“พๆŽฅ" - -[no_backlinks] -other = "ๆฒกๆœ‰ๆ‰พๅˆฐๅๅ‘้“พๆŽฅ" - -[home] -other = "ไธป้กต" - -[light_mode] -other = "ๆ˜Žไบฎๆจกๅผ" - -[dark_mode] -other = "้ป‘ๆš—ๆจกๅผ" - -[edit_source] -other = "็ผ–่พ‘ๆบ็ " - -[interactive_graph] -other = "ไบ’ๅŠจๅ›พ" - -[search] -other = "ๆœ็ดข" - -[search_icon] -other = "ๆœ็ดขๅ›พๆ ‡" - -[icon_search] -other = "ๆ‰“ๅผ€ๆœ็ดขๅ›พๆ ‡" - -[recent_notes] -other = "่ฟ‘ๆœŸ็ฌ”่ฎฐ" - -[first_3_notes] -other = "ๅ‰3ไธช {{ .notes }}" - -[search_for_something] -other = "่ฟ›่กŒๆœ็ดข......" - -[toc] -other = "็›ฎๅฝ•" - -[copyright] -other = "็”ฑ {{ .name }} ็”จ Quartz ๅˆ›้€ , ยฉ {{ .year }}" diff --git a/layouts/404.html b/layouts/404.html deleted file mode 100644 index 5607e634..00000000 --- a/layouts/404.html +++ /dev/null @@ -1,15 +0,0 @@ - - -{{ partial "head.html" . }} - - -
- {{partial "darkmode.html" .}} -
-

404.

-

{{ i18n "404_message" }}

- {{ i18n "404_back" }} -
-
- - diff --git a/layouts/_default/_markup/render-codeblock-mermaid.html b/layouts/_default/_markup/render-codeblock-mermaid.html deleted file mode 100644 index 59641551..00000000 --- a/layouts/_default/_markup/render-codeblock-mermaid.html +++ /dev/null @@ -1,4 +0,0 @@ -
- {{- .Inner | safeHTML }} -
-{{ .Page.Store.Set "hasMermaid" true }} diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html deleted file mode 100644 index dbcf732f..00000000 --- a/layouts/_default/_markup/render-image.html +++ /dev/null @@ -1,9 +0,0 @@ -{{$src := .Destination | safeURL }} -{{$width := index (split .Text "|") 1 | default "auto" }} -{{$external := strings.HasPrefix $src "http" }} -{{- if $external -}} -{{ .Text }} -{{- else -}} -{{$fixedUrl := (cond (hasPrefix $src "/") $src (print "/" $src)) | urlize}} -{{ .Text }} -{{- end -}} diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html deleted file mode 100644 index be36d2e9..00000000 --- a/layouts/_default/_markup/render-link.html +++ /dev/null @@ -1,16 +0,0 @@ -{{$dashedurl := replace .Destination "%20" "-" }} -{{$external := strings.HasPrefix $dashedurl "http" }} -{{- if $external -}} -{{ .Text | safeHTML }} -{{- else -}} -{{$trimmed := strings.TrimSuffix ".md" (.Destination | safeURL)}} -{{$spacedurl := replace $trimmed "%20" " " }} -{{$fixedUrl := (cond (hasPrefix $spacedurl "/") $spacedurl (print "/" $spacedurl)) | urlize}} -{{$nonexistent := eq (.Page.GetPage $spacedurl).RelPermalink ""}} -{{$rooted := default $spacedurl ((.Page.GetPage $spacedurl).RelPermalink) }} -{{- .Text | safeHTML -}} - -{{- end -}} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html deleted file mode 100644 index 8754b1f2..00000000 --- a/layouts/_default/baseof.html +++ /dev/null @@ -1,10 +0,0 @@ - - -{{ block "head" . }} -{{ end }} - - -{{ block "main" . }} -{{ end }} - - \ No newline at end of file diff --git a/layouts/_default/section.html b/layouts/_default/section.html deleted file mode 100644 index f88b85fc..00000000 --- a/layouts/_default/section.html +++ /dev/null @@ -1,21 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} -
-

{{ i18n "all_posts" . }}

- {{with .Params.description}} -

{{.}}

- {{end}} - {{partial "page-list.html" .Paginator.Pages.ByLastmod.Reverse }} - {{ template "_internal/pagination.html" .}} -
- {{partial "contact.html" .}} -
- - diff --git a/layouts/_default/single.html b/layouts/_default/single.html deleted file mode 100644 index 36beb83a..00000000 --- a/layouts/_default/single.html +++ /dev/null @@ -1,34 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} - - {{partial "footer.html" .}} -
- - diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html deleted file mode 100644 index 01ec325a..00000000 --- a/layouts/_default/taxonomy.html +++ /dev/null @@ -1,30 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} -
-

{{ i18n "all_posts" . }}

- {{with .Params.description}} -

{{.}}

- {{end}} -
- {{ range .Site.Taxonomies.tags.ByCount }} -
-

{{ .Page.Title | humanize }}

-

{{ .Count }} {{ i18n "notes_count" }} {{if gt .Count 10}}({{ i18n "first_10"}}){{end}}

-
- {{ with ($.Site.GetPage (printf "/tags/%s" .Page.Title)) }} - {{partial "page-list.html" (first 10 .Pages.ByLastmod.Reverse)}} - {{ end }} - {{ end }} -
-
- {{partial "contact.html" .}} -
- - diff --git a/layouts/_default/term.html b/layouts/_default/term.html deleted file mode 100644 index 6bda201b..00000000 --- a/layouts/_default/term.html +++ /dev/null @@ -1,21 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} -
-

{{ i18n "tag" }}: {{ .Title }}

- {{with .Params.description}} -

{{.}}

- {{end}} - {{partial "page-list.html" .Paginator.Pages}} - {{ template "_internal/pagination.html" . }} -
- {{partial "contact.html" .}} -
- - diff --git a/layouts/index.html b/layouts/index.html deleted file mode 100644 index c7871e9f..00000000 --- a/layouts/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - -{{ partial "head.html" . }} - - -{{partial "search.html" .}} -
- - {{partial "header.html" .}} -
- {{partial "toc.html" .}} - {{partial "textprocessing.html" . }} - {{if $.Site.Data.config.enableRecentNotes}} - {{partial "recent.html" . }} - {{end}} -
- {{partial "footerIndex.html" .}} -
- - diff --git a/layouts/partials/backlinks.html b/layouts/partials/backlinks.html deleted file mode 100644 index ae6ea1a8..00000000 --- a/layouts/partials/backlinks.html +++ /dev/null @@ -1,30 +0,0 @@ -

{{ i18n "backlinks" }}

- diff --git a/layouts/partials/contact.html b/layouts/partials/contact.html deleted file mode 100644 index 3de7d2c6..00000000 --- a/layouts/partials/contact.html +++ /dev/null @@ -1,19 +0,0 @@ - -{{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }} -{{ $data := index $.Site.Data $config }} - -
-
- {{ $name := $data.name | default $.Site.Data.config.name }} - {{ $year := dateFormat "2006" now }} -

{{ i18n "copyright" (dict "name" $name "year" $year) | safeHTML}}

- -
-
diff --git a/layouts/partials/darkmode.html b/layouts/partials/darkmode.html deleted file mode 100644 index a708f13a..00000000 --- a/layouts/partials/darkmode.html +++ /dev/null @@ -1,15 +0,0 @@ -
- - - -
\ No newline at end of file diff --git a/layouts/partials/date-fmt.html b/layouts/partials/date-fmt.html deleted file mode 100644 index 6104226e..00000000 --- a/layouts/partials/date-fmt.html +++ /dev/null @@ -1,7 +0,0 @@ -{{if .Date}} -{{.Date.Format "Jan 2, 2006"}} -{{else if .Lastmod}} -{{.Lastmod.Format "Jan 2, 2006"}} -{{else}} -Unknown -{{end}} diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html deleted file mode 100644 index cab44cb9..00000000 --- a/layouts/partials/footer.html +++ /dev/null @@ -1,16 +0,0 @@ - - -
- -{{if $.Site.Data.config.enableFooter}} - -{{end}} - -{{partial "contact.html" .}} diff --git a/layouts/partials/footerIndex.html b/layouts/partials/footerIndex.html deleted file mode 100644 index 5b73fa45..00000000 --- a/layouts/partials/footerIndex.html +++ /dev/null @@ -1,24 +0,0 @@ -{{if $.Site.Data.config.enableFooter}} - {{if $.Site.Data.graphConfig.enableGlobalGraph}} - - {{else}} -
- - {{end}} -{{end}} - -{{partial "contact.html" .}} diff --git a/layouts/partials/github.html b/layouts/partials/github.html deleted file mode 100644 index 836dc79c..00000000 --- a/layouts/partials/github.html +++ /dev/null @@ -1,3 +0,0 @@ -{{if $.Site.Data.config.enableGitHubEdit}} -{{ i18n "edit_source" }} -{{end}} diff --git a/layouts/partials/graph.html b/layouts/partials/graph.html deleted file mode 100644 index 3e25c657..00000000 --- a/layouts/partials/graph.html +++ /dev/null @@ -1,18 +0,0 @@ - -

{{ i18n "interactive_graph" }}

-
- -{{ $js := resources.Get "js/graph.js" | resources.Fingerprint "md5" }} - diff --git a/layouts/partials/head.html b/layouts/partials/head.html deleted file mode 100644 index 14d7ab4c..00000000 --- a/layouts/partials/head.html +++ /dev/null @@ -1,252 +0,0 @@ - -{{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }} -{{ $data := index $.Site.Data $config }} - - - - - - - - - - - - - - - - {{ range $data.links }} - {{ if strings.Contains .link "twitter.com" }} - {{ $twitter_handle := index (split .link "/") (sub (len (split .link "/")) 1) }} - - {{ end }} - {{ end }} - - - {{ if .Title }}{{ .Title }}{{ else }}{{ $data.page_title | default $.Site.Data.config.page_title }}{{ - end }} - - - - - {{ $favicon := $data.favicon | default $.Site.Data.config.favicon | default (slice (dict "rel" "shortcut icon" "type" "image/png" "href" "icon.png")) }} - {{ $type := (printf "%T" $favicon) }} - {{ if eq $type "string" }} - {{ $favicon | safeHTML }} - {{ else }} - {{ range $favicon }} - - {{- end }} - {{ end }} - - - {{$sass := resources.Match "styles/[!_]*.scss" }} - {{$css := slice }} - {{range $sass}} - {{$scss := . | resources.ToCSS (dict "outputStyle" "compressed") }} - {{$css = $css | append $scss}} - {{end}} - {{if $data.enableCallouts | default $.Site.Data.config.enableCallouts}} - {{$scss := resources.Get "styles/_callouts.scss" | resources.ToCSS (dict "outputStyle" "compressed") }} - {{$css = $css | append $scss}} - {{end}} - {{$finalCss := $css | resources.Concat "styles.css" | resources.Fingerprint "md5" | resources.Minify }} - - - {{$lightSyntax := resources.Get "styles/_light_syntax.scss" | resources.ToCSS (dict "outputStyle" "compressed") | resources.Fingerprint "md5" | resources.Minify }} - - - - {{$scripts := (slice "js/darkmode.js" "js/util.js")}} - {{range $scripts}} - {{$scriptname := .}} - {{ $s := resources.Get $scriptname | resources.ExecuteAsTemplate $scriptname . | resources.Fingerprint "md5" | resources.Minify }} - - {{end}} - {{partial "katex.html" .}} - - {{partial "mermaid.html" .}} - - - - {{ $popover := resources.Get "js/popover.js" | resources.Fingerprint "md5" | - resources.Minify }} - - - - {{ if $data.enableCodeBlockTitle | default $.Site.Data.config.enableCallouts }} - {{ $codeTitle := resources.Get "js/code-title.js" | resources.Fingerprint "md5" | resources.Minify }} - - {{end}} - - {{ if $data.enableCodeBlockCopy | default $.Site.Data.config.enableCodeBlockCopy }} - {{ $clipboard := resources.Get "js/clipboard.js" | resources.Fingerprint "md5" | resources.Minify }} - - {{ end }} - - {{ if $data.enableCallouts | default $.Site.Data.config.enableCallouts }} - {{ $callouts := resources.Get "js/callouts.js" | resources.Fingerprint "md5" | resources.Minify }} - - {{ end }} - - - {{$linkIndex := resources.Get "indices/linkIndex.json" | resources.Fingerprint - "md5" | resources.Minify | }} {{$contentIndex := resources.Get - "indices/contentIndex.json" | resources.Fingerprint "md5" | resources.Minify - }} - - {{if $data.enableSPA | default $.Site.Data.config.enableSPA}} - {{ $router := resources.Get "js/router.js" | resources.Fingerprint "md5" | - resources.Minify }} - - {{else}} - - {{end}} - {{ $trimmedURL := trim (index (split .Site.BaseURL "://") 1) "/" }} - - - diff --git a/layouts/partials/header.html b/layouts/partials/header.html deleted file mode 100644 index 1925a0cc..00000000 --- a/layouts/partials/header.html +++ /dev/null @@ -1,11 +0,0 @@ -
- {{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }} -

{{ ( index $.Site.Data $config ).page_title | default $.Site.Data.config.page_title }}

-
-
-

{{ i18n "search" }}

- {{ i18n "search_icon" }}{{ i18n "icon_search" }} -
- {{partial "darkmode.html" .}} -
- diff --git a/layouts/partials/katex.html b/layouts/partials/katex.html deleted file mode 100644 index 8a2f40b4..00000000 --- a/layouts/partials/katex.html +++ /dev/null @@ -1,14 +0,0 @@ -{{if $.Site.Data.config.enableLatex}} - - - - -{{end}} \ No newline at end of file diff --git a/layouts/partials/mermaid.html b/layouts/partials/mermaid.html deleted file mode 100644 index 09d348b5..00000000 --- a/layouts/partials/mermaid.html +++ /dev/null @@ -1,8 +0,0 @@ -{{if $.Site.Data.config.enableMermaid}} - {{ if .Page.Store.Get "hasMermaid" }} - - {{ end }} -{{ end }} diff --git a/layouts/partials/page-list.html b/layouts/partials/page-list.html deleted file mode 100644 index 1d2a4771..00000000 --- a/layouts/partials/page-list.html +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/layouts/partials/recent.html b/layouts/partials/recent.html deleted file mode 100644 index aadf97db..00000000 --- a/layouts/partials/recent.html +++ /dev/null @@ -1,12 +0,0 @@ -
-

{{ i18n "recent_notes" }}

- - {{$notes := .Site.RegularPages.ByLastmod.Reverse}} - {{partial "page-list.html" (first 3 $notes)}} -
- diff --git a/layouts/partials/search.html b/layouts/partials/search.html deleted file mode 100644 index b5692e18..00000000 --- a/layouts/partials/search.html +++ /dev/null @@ -1,18 +0,0 @@ -
-
- -
-
-
-
-{{if $.Site.Data.config.search.enableSemanticSearch}} -{{ $js := resources.Get "js/semantic-search.js" | resources.ExecuteAsTemplate "js/semantic-search.js" . | resources.Fingerprint "md5" | resources.Minify }} - -{{else}} - -{{ $js := resources.Get "js/full-text-search.js" | resources.Fingerprint "md5" | resources.Minify }} - -{{end}} - diff --git a/layouts/partials/textprocessing.html b/layouts/partials/textprocessing.html deleted file mode 100644 index c918247b..00000000 --- a/layouts/partials/textprocessing.html +++ /dev/null @@ -1,162 +0,0 @@ -{{ $content := .Content }} -{{ $raw := .RawContent }} -{{ $page := .Page }} - -{{/* Escape slashes for Latex to fix line breaks */}} -{{$latex := findRE "(?:\\${2}([^\\$]+)\\${2})|(?:\\$([^\\$]*)\\$)" $content}} -{{range $latex}} - {{$fixed := replaceRE "\\\\(?: +|\\n)" "\\\\ " .}} - {{$content = replace $content . $fixed}} -{{end}} - -{{/* Wikilinks */}} -{{$wikilinks := $content | findRE "!?\\[\\[\\S[^\\[\\]\\|]*(?:\\|[^\\[\\]]*)?\\S\\]\\]" }} -{{$codefences := $raw | findRE "\\x60[^\\x60\\n]+\\x60"}} -{{$codeblocks := $raw | findRE "\\x60{3}[^\\x60]+\\x60{3}"}} -{{$code := union $codefences $codeblocks}} - -{{range $wikilinks}} - {{$cur := .}} - {{$incode := false}} - {{range $code}} - {{if (in . $cur)}} - {{$incode = true}} - {{end}} - {{end}} - - {{if not $incode}} - - - {{$inner := . | strings.TrimPrefix "!" | strings.TrimPrefix "[[" | strings.TrimSuffix "]]" }} - - {{$split := split $inner "|"}} - - {{$path := index $split 0}} - - {{$reference := split $path "#"}} - - {{$title := index $reference 0}} - - - {{$display := default $title (index $split 1)}} - - {{$display := index (last 1 (split $display "/")) 0}} - - - {{$searchtitle := $title }} - {{$curpage := $page.GetPage $searchtitle }} - - {{ if (eq $curpage.String "nopPage") }} - {{$searchtitle = (add $title ".md") }} - {{$curpage = $page.GetPage $searchtitle }} - {{ end }} - - {{ if (eq $curpage.String "nopPage") }} - {{$searchtitle = (replace $searchtitle "&" "&") }} - {{$searchtitle = (replace $searchtitle """ "\"") }} - {{$searchtitle = (replace $searchtitle "”" "\"") }} - {{$searchtitle = (replace $searchtitle "“" "\"") }} - {{$searchtitle = (replace $searchtitle "’" "'") }} - {{$searchtitle = (replace $searchtitle "‘" "'") }} - {{$curpage = $page.GetPage $searchtitle }} - {{ end }} - {{$relpath := relURL $path}} - - - {{if not (eq $curpage.String "nopPage") }} - {{$block := default "" (index $reference 1)}} - {{$block = strings.TrimRight "/" (cond (eq $block "") $block (printf "#%s" $block)) | urlize | lower}} - {{$href := strings.TrimRight "/" $curpage.RelPermalink}} - {{$link := printf "%s" $href $block $href $display}} - {{$content = replace $content . $link}} - - {{else if fileExists $relpath}} - {{$splitpath := split $relpath "/"}} - {{$dirname := first (sub (len $splitpath) 1) $splitpath | path.Join | urlize}} - {{$basename := index (last 1 $splitpath) 0}} - {{$href := printf "/%s/%s" $dirname $basename}} - - {{if (hasPrefix . "!")}} - {{ $embed_ext := lower (path.Ext $href) }} - - {{if in ".png .jpg .jpeg .gif .bmp .svg" $embed_ext }} - {{$width := default "auto" (index $split 1) }} - {{$link := printf "" $href $width}} - {{$content = replace $content . $link}} - - {{else if in ".mp4 .webm .ogv .mov .mkv" $embed_ext}} - {{$link := printf "" $href}} - {{$content = replace $content . $link}} - - {{else if in ".mp3 .webm .wav .m4a .ogg .3gp .flac" $embed_ext}} - {{$link := printf "" $href}} - {{$content = replace $content . $link}} - - {{else if in ".pdf" $embed_ext }} - {{$src_link := printf "[source]" $href}} - {{$iframe_link := printf "" $href}} - {{$link := printf "%s
%s" $src_link $iframe_link}} - {{$content = replace $content . $link}} - - {{else}} - {{$link := printf "%s" $href $href}} - {{$content = replace $content . $link}} - {{end}} - {{else}} - {{$link := printf "%s" $href $display}} - {{$content = replace $content . $link}} - {{end}} - - {{else}} - {{$link := printf "%s" $display}} - {{$content = replace $content . $link}} - {{end}} - - {{end}} -{{end}} - -{{/* Add jumpable anchors */}} -{{ $content = $content | replaceRE "()(.+)()" `${1}# ${3}${4}` }} - -{{/* Callouts */}} -{{if $.Site.Data.config.enableCallouts}} - {{ $content = $content | replaceRE "
" "
" }} - {{ $blockquoteclasses := findRE `\[!.+\]` $content }} - {{ $blockquoteclasses1 := findRE "(.|\n)*?
" $content }} - {{ $blockquotetags := findRE `blockquote class=callout` $content }} - {{ $counter := 0 }} - {{ $counter1 := 0 }} - {{ $finder := index $blockquoteclasses1 $counter }} - {{range $blockquotetags}} - {{ $finder = index $blockquoteclasses1 $counter }} - {{ if (in $finder "[!") }} - {{ $inner := index $blockquoteclasses $counter1 }} - {{ if (in $finder "]-") }} - {{ $inner = $inner | replaceRE `\[!([a-zA-Z]+)\]` `callout-collapsible callout-collapsed ${1}`}} - {{ else if (in $finder "]+") }} - {{ $inner = $inner | replaceRE `\[!([a-zA-Z]+)\]` `callout-collapsible ${1}`}} - {{ else}} - {{ $inner = $inner | replaceRE `\[!([a-zA-Z]+)\]` `${1}` }} - {{ end }} - {{ $inner = printf "blockquote class=\"%s-callout\"" $inner | lower}} - {{ $content = replace $content . $inner 1}} - {{ $counter1 = add $counter1 1 }} - {{ else }} - {{ $inner := print "blockquote" }} - {{ $content = replace $content . $inner 1}} - {{ end }} - {{ $counter = add $counter 1 }} - {{end}} - {{ $content = $content | replaceRE `\[![a-zA-Z]+\][-\+]?` "" }} - {{ $content = $content | replaceRE "blockquote class=callout" "blockquote" }} - {{ $content = $content | replaceRE `(?s)(
.*?)
(.*?<\/blockquote)` `${1}

${2}` }} -{{end}} - -{{/* Make ==text== into text */}} -{{$mark := findRE "==([^=\n]+)==" $content}} -{{range $mark}} - {{$fixed := printf "%s" (replace . "==" "")}} - {{$content = replace $content . $fixed}} -{{end}} - -{{ $content | safeHTML }} diff --git a/layouts/partials/toc.html b/layouts/partials/toc.html deleted file mode 100644 index bd0cb541..00000000 --- a/layouts/partials/toc.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ $hasHeaders := gt (len (findRE "(.|\n)*?" .Content)) 0 }} -{{ if (or (and (not $.Site.Data.config.enableToc) .Params.enableToc) (and $.Site.Data.config.enableToc (ne .Params.enableToc false) $hasHeaders)) }} -

-{{end}} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..5f7fa855 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2903 @@ +{ + "name": "@jackyzha0/quartz", + "version": "4.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@jackyzha0/quartz", + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "@inquirer/prompts": "^1.0.3", + "chalk": "^4.1.2", + "cli-spinner": "^0.2.10", + "esbuild": "0.17.18", + "globby": "^13.1.4", + "preact": "^10.14.1", + "preact-render-to-string": "^6.0.3", + "pretty-time": "^1.1.0", + "rehype-react": "^7.2.0", + "remark": "^14.0.2", + "remark-parse": "^10.0.1", + "remark-rehype": "^10.1.0", + "require-from-string": "^2.0.2", + "rimraf": "^5.0.0", + "serve-handler": "^6.1.5", + "to-vfile": "^7.2.4", + "unified": "^10.1.2", + "vfile": "^5.3.7", + "yargs": "^17.7.2" + }, + "bin": { + "quartz": "quartz/bootstrap.mjs" + }, + "devDependencies": { + "@types/cli-spinner": "^0.2.1", + "@types/hast": "^2.3.4", + "@types/node": "^20.1.2", + "@types/pretty-time": "^1.1.2", + "@types/require-from-string": "^1.2.1", + "@types/serve-handler": "^6.1.1", + "@types/yargs": "^17.0.24", + "esbuild": "0.17.18", + "typescript": "^5.0.4" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.2.8.tgz", + "integrity": "sha512-yTnAsimBDy2Ft5Ky/0nNqJLkLYTX9/teuvkAHKm+aeOMVSaUfp8bPchkj6VThR5AHwzUhSnUswuYVUzTzWMzsw==", + "dependencies": { + "@inquirer/core": "^1.3.0", + "@inquirer/type": "^1.0.5", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/confirm": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-1.0.11.tgz", + "integrity": "sha512-UWYJ+0dN9rWw0czTPqqKRGLqHsLML9rrQlScn5oOVUtiL2WDTxs95JehP2axKsNkSBMxmFAdA7TdctJkZFJcxA==", + "dependencies": { + "@inquirer/core": "^1.3.0", + "@inquirer/type": "^1.0.5", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/core": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-1.3.0.tgz", + "integrity": "sha512-W7EA48gIMahFLiGW/zF+rgoineqTDK5IQizsOmwvbFfYgiQ8Asetut94THBmB3KnW0nrZL5UPHUK6QzcjEzaCw==", + "dependencies": { + "@inquirer/type": "^1.0.5", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.8.0", + "cli-width": "^4.0.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/editor": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.0.11.tgz", + "integrity": "sha512-fAvkEKVRelMe5NzB1GM2zmAqbV0OWwAhXd6r34VgCKBAEfwI622A3M06g0ObL9qkcs0U+YW0G943X0ZqcUmKnQ==", + "dependencies": { + "@inquirer/core": "^1.3.0", + "@inquirer/type": "^1.0.5", + "chalk": "^4.1.2", + "external-editor": "^3.0.3" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/expand": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.0.11.tgz", + "integrity": "sha512-7JBEHJGyNx2KdRbrVrkD7aNz9P8FI54ug3WORwaJ3q/z19jy8+ItkswEkSn0cy1QHhB30fx3QlJdjFX14i59wA==", + "dependencies": { + "@inquirer/core": "^1.3.0", + "@inquirer/type": "^1.0.5", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/input": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.1.2.tgz", + "integrity": "sha512-7/fS1EE9gvQJ7/NVKpsoyJeZAqbEoOiQBg6D8+YaCwnbEldXhKSyS53VlWoYrDWryw8XNutMpJI3o9vLxDw8KQ==", + "dependencies": { + "@inquirer/core": "^1.3.0", + "@inquirer/type": "^1.0.5", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/password": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.0.11.tgz", + "integrity": "sha512-2GtNIBN906V5PzLFe0GIrXKInZM47T7QZdET0ML0sdGn4HFI7WEN+Gw0W2yC+0xhiTtm1kdrhFxRNIq8AZFnLA==", + "dependencies": { + "@inquirer/input": "^1.1.2", + "@inquirer/type": "^1.0.5", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/prompts": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-1.2.3.tgz", + "integrity": "sha512-vcPUWXA/boMJc5IDVx/9+ihf1FupsBK1RThnEXnLTpF6hR1iJCoaBoSpREZRdDp/XcPHe/b+QovehBYJoWsUhg==", + "dependencies": { + "@inquirer/checkbox": "^1.2.8", + "@inquirer/confirm": "^1.0.11", + "@inquirer/core": "^1.3.0", + "@inquirer/editor": "^1.0.11", + "@inquirer/expand": "^1.0.11", + "@inquirer/input": "^1.1.2", + "@inquirer/password": "^1.0.11", + "@inquirer/rawlist": "^1.1.3", + "@inquirer/select": "^1.1.7" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.1.3.tgz", + "integrity": "sha512-aBlXdQeADYbk9pFG4Z8HvRnjM7i/RYKJmf311infV2ivkD+d1QIdWdo0RnCuqk0m/6tdYsRgkhWGVhEkeh0nQg==", + "dependencies": { + "@inquirer/core": "^1.3.0", + "@inquirer/type": "^1.0.5", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/select": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.1.7.tgz", + "integrity": "sha512-3Ym0WOoVduu/AG5GwIxa+fNz8Eop7S1zADbUmMsllrubdYu7qMe9HaTHCb5JOjaVNSoFJuYPH6TizFzGVFVrCQ==", + "dependencies": { + "@inquirer/core": "^1.3.0", + "@inquirer/type": "^1.0.5", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.0.5.tgz", + "integrity": "sha512-MCEsk3Ep4D8UwwyCGdMmtoTwfC78oxHusUKex1qR+WTJP4MKK/mykCTCXApbYYRBYuTpT71kdoOr9vxySh+l5Q==", + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@mapbox/hast-util-table-cell-style": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.2.0.tgz", + "integrity": "sha512-gqaTIGC8My3LVSnU38IwjHVKJC94HSonjvFHDk8/aSrApL8v4uWgm8zJkK7MJIIbHuNOr/+Mv2KkQKcxs6LEZA==", + "dependencies": { + "unist-util-visit": "^1.4.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@types/cli-spinner": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@types/cli-spinner/-/cli-spinner-0.2.1.tgz", + "integrity": "sha512-bsdlZy3LThi9QbsK0GXm5s/e3F6HAJi1tMsIanm9trtoStSlV3gzir9JpfOK40gERMNIVevDTpG5NzSGnYs3QA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", + "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdast": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", + "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "node_modules/@types/node": { + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", + "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "dev": true + }, + "node_modules/@types/pretty-time": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/pretty-time/-/pretty-time-1.1.2.tgz", + "integrity": "sha512-4i+Y+O5H80Rh01lY/3Z0hB/UWc4R64ReE83joEpVsIG3iQWpYx66k6pQh1amJNZquKtJQyu/RcfkTtvL0KwssA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "peer": true + }, + "node_modules/@types/react": { + "version": "18.2.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.7.tgz", + "integrity": "sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==", + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha512-mIDK7lTHc0uW67SxPIqkwCrxmdKBV5aAET560hyZnT8c6Ekp9Aah3GPqe8Pl1Yzn/i2NMYmYv+HiMLwjGDCIAQ==", + "dev": true + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", + "peer": true + }, + "node_modules/@types/serve-handler": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@types/serve-handler/-/serve-handler-6.1.1.tgz", + "integrity": "sha512-bIwSmD+OV8w0t2e7EWsuQYlGoS1o5aEdVktgkXaa43Zm0qVWi21xaSRb3DQA1UXD+DJ5bRq1Rgu14ZczB+CjIQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/cli-spinner": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz", + "integrity": "sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", + "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "peer": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/esbuild": { + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", + "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hast-to-hyperscript": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-10.0.3.tgz", + "integrity": "sha512-NuBoUStp4fRwmvlfbidlEiRSTk0gSHm+97q4Xn9CJ10HO+Py7nlTuDi6RhM1qLOureukGrCXLG7AAxaGqqyslQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.1", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", + "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", + "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", + "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", + "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "dependencies": { + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/preact": { + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", + "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.0.3.tgz", + "integrity": "sha512-UUP+EtmLw5ns0fT9C7+CTdLawm1wLmlrZ6WKzJ4Jwhb4EBu4vy5ufIZKlrfvWNnPl1JFoJzZwzfKs97H4N0Vug==", + "dependencies": { + "pretty-format": "^3.8.0" + }, + "peerDependencies": { + "preact": ">=10" + } + }, + "node_modules/pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/property-information": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz", + "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rehype-react": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rehype-react/-/rehype-react-7.2.0.tgz", + "integrity": "sha512-MHYyCHka+3TtzBMKtcuvVOBAbI1HrfoYA+XH9m7/rlrQQATCPwtJnPdkxKKcIGF8vc9mxqQja9r9f+FHItQeWg==", + "dependencies": { + "@mapbox/hast-util-table-cell-style": "^0.2.0", + "@types/hast": "^2.0.0", + "hast-to-hyperscript": "^10.0.0", + "hast-util-whitespace": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=17" + } + }, + "node_modules/remark": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.3.tgz", + "integrity": "sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==", + "dependencies": { + "@types/mdast": "^3.0.0", + "remark-parse": "^10.0.0", + "remark-stringify": "^10.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.3.tgz", + "integrity": "sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", + "dependencies": { + "glob": "^10.2.5" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/style-to-object": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz", + "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-vfile": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.4.tgz", + "integrity": "sha512-2eQ+rJ2qGbyw3senPI0qjuM7aut8IYXK6AEoOWb+fJx/mQYzviTckm1wDjq91QYHAPBTYzmdJXxMFA6Mk14mdw==", + "dependencies": { + "is-buffer": "^2.0.0", + "vfile": "^5.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dependencies": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "dependencies": { + "unist-util-is": "^3.0.0" + } + }, + "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..15b4a57b --- /dev/null +++ b/package.json @@ -0,0 +1,55 @@ +{ + "name": "@jackyzha0/quartz", + "description": "๐ŸŒฑ publish your digital garden and notes as a website", + "version": "4.1.0", + "author": "jackyzha0 ", + "license": "MIT", + "homepage": "https://quartz.jzhao.xyz", + "repository": { + "type": "git", + "url": "https://github.com/jackyzha0/quartz.git" + }, + "keywords": [ + "site generator", + "ssg", + "digital-garden", + "markdown", + "blog", + "quartz" + ], + "bin": { + "quartz": "./quartz/bootstrap.mjs" + }, + "dependencies": { + "@inquirer/prompts": "^1.0.3", + "chalk": "^4.1.2", + "cli-spinner": "^0.2.10", + "esbuild": "0.17.18", + "globby": "^13.1.4", + "preact": "^10.14.1", + "preact-render-to-string": "^6.0.3", + "pretty-time": "^1.1.0", + "rehype-react": "^7.2.0", + "remark": "^14.0.2", + "remark-parse": "^10.0.1", + "remark-rehype": "^10.1.0", + "require-from-string": "^2.0.2", + "rimraf": "^5.0.0", + "serve-handler": "^6.1.5", + "to-vfile": "^7.2.4", + "unified": "^10.1.2", + "vfile": "^5.3.7", + "yargs": "^17.7.2" + }, + "devDependencies": { + "@types/cli-spinner": "^0.2.1", + "@types/hast": "^2.3.4", + "@types/pretty-time": "^1.1.2", + "@types/require-from-string": "^1.2.1", + "@types/serve-handler": "^6.1.1", + "@types/yargs": "^17.0.24", + "@types/node": "^20.1.2", + "esbuild": "0.17.18", + "typescript": "^5.0.4" + } +} diff --git a/quartz/bootstrap.mjs b/quartz/bootstrap.mjs new file mode 100755 index 00000000..0f66ea27 --- /dev/null +++ b/quartz/bootstrap.mjs @@ -0,0 +1,2 @@ +#!/usr/bin/env node +console.log('hello world') diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 404774cc1431a6a8f224ef21f9e3e1b084ed3286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036554 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 z 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

-cl43dA-g_+FW3Viqhf2KNbpK~`6b1GAlDdw;KK9(5n~pb*dV>Gn7OODf3qQ%D8mV8 z?mOzat{0JFDYu1i0Agnmv5VNPhl~Xyi(EzPTJ$UKPrk}WjQ2ngN0gB3!3Fy3yPkU( zy3RRBPt%r^eL#To94~(ECC~gWw0*O>>A*msUC7>uQPfdGsZ)6`GV<&XqU{sItZeFArz8_U*M-~TVqJunZB2Au#*Sx>cmL$bbR(0aaVOA=3|qq=SH$eYzaeF$G- z;q?tEO^V@YfBEuy)uZl|DF22AsOw>Vjz9JQfe#|kKjjH?uySK83)=^xg8_;lJ=YP5`e1@SL3a-nzSo z6^D26I;mZ}ZvRJt?&c(|?4!x{T-PN5pj1bByIbhM)i#U9B-9V+2QSa~jTBnWsbp!o zL^NE$6;K2wCh15N2-X%@-6)Q_3=iM#H2B$z`f2;nne4gLf%-t}KHgaGLmZjBA13Vr8BouOi-I50dxbx&r;5FUDtLcc#S8GF$T;1) zlB^)E&(^-$?wV7uM@f`R7F!sA1EFLS*4YS#;+%I?epoFNcBu#_3Q zOuw}B9hv;{CCZxc{2KJnuDAmVDfrY>3IE~o4}LEZDcBH;f;7KF+{x1vvFO=-^3-?H z3GCFK$rQPPwOyz#!&0b!A_-0D{#&*_i71kqo+U~5Mu^(dGc=au^slfgrfV>EsXA8q zfg-8F)W&H1#v9yF^4!nw>X9EK-ha5I9QV55((pyeN4I>RDn-N^GXa-)09*Vi+4v%9 z+}v>FG=_XoEO1Wz_A}ambSlX78(&j)#m~4IoW*esMpVfia7D@0%ShRUA>7=2y{->- zfZ6lRn}CYTpkzuDuAFosOhO`(Gj7~0_M1Z-)cTgP%Q!M2>pNgu|3h0H@TO9(vY(cA zG#UR{kQT)eyXIei19YV9 zpT`Y!!Et{M+JIgGf7bAPyV<7D+4`C^P6d4AGo9@r_U*cxf#IP*G`JF;kG=CO*6a9N+kDEU zM1!diYfm&qU}Ah{&8d+)JbelGtl!Tg4nU5hGEgd|h0^{3Lhg%D14Hv>TU zQ>}qo>v$HIg&UqzwHX639AY8e5zPGHr+lWu33IK*j!ioPji~4ji~ckN@%~u0Pfp|? z`=ri;`-UC^_A^m1vH97ozn-!e>Ecm%eWw2$>wf@rsC)_8ajS;bMPL*a+2-7X#F;j3 zra=~8Qjm4{FM=+q{1-vTDp*{MX)%qR2D}<3e{j7W+zZ{&O1O5R=m?+OrKqy^FM|n8 zM5o)@21R>rY59)brT`<=m2jt?A~|KcW_*CipofskMR^U@5ecPSYmDX-IzO7;$F*t! zqO@o`4U}XAAlHc<-6-!`ZJ9_G`12ytD^^n#(b00jFF(HVT;F<-MvR8 z9Dcp3qF`#Wxu|D?LDW_?LXPbp^qkGvBYLvC7ZXLzw9-Atj{Lzr?#bEeLyw_?5)x8` z-Q`A$b@{-@(1_{XbtJ2T{^sV=XMzw)>++eIpdD1wj37suOHO7c0Hct^fks^4zrZ=| z{8JKL0<%r+hF(*u+VXuZKxf=!vfRa0)qEOI46JLA&%hZu4J9vh3;AOM=O!Ru(_*`O zL-3eTQ<_pez#DO=osCm?&?pE-v`?jDOV12nu{9DCb}-%&*v%bVw5=ChvE$Oy-R>5j z+?Dj5y@(~-ROw0^e|f>9$^NYno&5ZBs#`abGTL} z8`anlD)McvRg)$-8>Tx*o3k%1gt=wwn?Pvivjc046RM9~D0j>U1ZbG=_wNJQ%BDX} z$tZLjPiK;ZN)**Q17XAYu8HRvnZikg6;(L9FN)IHe;#dCFcI*vA>TN}c})4}R3zMs zYu6nM|HaE;{(qS5|6Q2vA?V4Mjb>|7Sp*^S65aDZaFDCn`?$Ccq@^{a^>nwv_x#^V z(I(&6ViBq|Y!p7|2L(%Lxsxw<%_6|;pu>*MiMUT==?&7;lR9$L z9?&Vmr@>ddg29y=+Kjo8!p6Bkc*Xs?b9EmGJ{bp`JdLp_!PW&JY!{(6wIqh)L+O>6 zUyi|4z>px`56klX_6#qwc&USP+EC|{;bO>}*Sbecf#HL&7pJFMWAP$=c6+8$NA$WtWdnx}K?N#stjsM>$claSw3_fWhi>iX_VZLgn7nb7(t zh-o6bhigy35w6Gs4J>8L`d(%5dZNOw5wCqfP+b^Rq+Q|LS%vBPgHxoEV$ zdLvx|1*JGcWa@i$Uze^nMMuqvHR( zSwG1;*tt)7`4zv>+gz!C{_k(Uc(VB%fIM%Q-^PfyW6J7oz)xtYWe^)*XW)2wiovMJ?AnMKR2n8PotPcByvqYR7o$1apQ=8D0uRg65{o_|1U6c z3ZjP!i?orsj~-QoxW)WieOtkO-+`jSl&FV{H3#>^FK_=lS698jfA#T!YHPx6j0P)+ zd4VgMtG#EoAy!_fk1SM>hCBREpHV9KF!;Hk{JP>;z(uev_RMOR{AuE#SsiD%s6@$% z>K$Eg#q^3@#}`Pp*D_MH0_Djz_Zd;BT7O%&0uUN0{ZFCM+{+U^{}LJv=Tu)jz>TT+ zTWG|#D>O3H1*50F&98}`&r$?Pb{%1a2oai(i--+(S($MHxnZAF)!=;d)x=dv==Gp)D zX#eMor>nPZog%-zVsZELUa6zth)YMJM%*&0`q zR&g;A1?>-4R`^(O*T>m9R10rmd0y1>0Z<0$@QIWv{)fRv>6gLA>g@Rg;9iCFn3$+^ zrWWl@84)BC4^M6h<-gMC@3i-gc+4-#*Iys_*YneS=e>6glu+!=a{pf&=s$PTfB(Wn z^29qTF1rB#mYqqp?nZKgSCZA?JEH6`B=n-#crA)e!!v|#)u4OD2W4n(sddF|dNwAx zm75VGK)%(iitn7jvBB3p-%r$_EA+FP4J8r1Z8MV)PT9qKo-6ty^=7r&Vq(Jk{?k_? z9}O1xQd;w{lzp(sI=AT3aN%K-e#F2Lx96eVg=uUP0a~7&^DnB?WW|J4YzI#^W*}sF z_WPqKX8mfqyiY-#lD(nU_t0*=4{}Rm*`t%_>0345;$hZ#I-$M*MpskO);O|$;B1tJ zEu!xrwc!h}NAjIU2l6yp|F;P5N#!v|W|RM1h7Xaz6HaTE~9gXvvuGq`wsxYLs#1&wnW{s3S$33qT+YwBWzE=T{3sK`#oIuhd|AAI)rmuRTyRwEDV#CX3yI1MbtbkCO6=U4Mm1 zS1k{&EI(joA$8btu+Q%7o0DMLh)&wS1+Un22%v{-E?_!NasOoYqWZj(dc7kr2k}cv ziW@PfS1==+y1!DNZD7`akPXSxu%*-g%SZZTTlMVqJ&tAz_QfSVb_fS{(B+JPpoWyW z3+U}V@oCrlC?ES!?Vht;PNw=IbHEIa?r-JB0^rp;M=?vk76`X3_0_ZOoN}bEHpv2X z(3ci)VM_D}VMhQS^$ECQ03FLuakQ>NmO-F~Re8b%)zfYKajNKE^izy>ieXF)mU&?C zqYJ73;pwjCyzo$>pt&Klj{J`tY)k~p*RZQum39=?rzWNoEx*JIwp25LBy6V!C&4*! zrk7iF>+Yi|oug(wJ?UOHJSqMnu*Kw3%4^#nlR%)Zo32T%W^`R&YX5D(*}4Bo)u^wx zEHND}oMW3;fRLSQ5-3|)NSed$KyQW0PQKd4>nykIOJk?ZKPpZIrcn!P1y$8feIlmC zr7bU%Ipoc)WAlAB)J3c4&d2@64?$9Pr!My6X(wh6R9ALt5X*%eH2WFUjh>!?S8hW# zYlRFB?oHwM$(Gzt7=9jxr8}#TRxBq@1}a<`$la-NmH>%1-fVHEO z4t}Fs+YZcF3p6 z87V`l(4qPHDcUpH%zmZ;v@Zw!-L)j%&2_+Co-$UpcsFG{;*)3|*i8{``s!!&2gO zT(GwK=r}7{O*!D`;yT}STK|WBDWbyvy3lT%mG238m;z)Z~-c)p!S0E2my|79uIe46MlyYX6T?mZ+)Wa^L}9%4sjWK?dPLsO^PeR?1q ziunv{huNT794pZ#a+JFG=#lXG&h(p{I@`G49pTj|<;S}9_JG-zyzsdrjnmkJzo;(A zS8iVk0wt7Rczf0H-ugo?QniUh8a#K6QMTtJyyDu325c{MYW49$7KKdYLHI%%GI6!2o*v z3Gnu3Kqx>yW9UcqNrp(hmSPH{FS!#Ml6-gkIAk95WRPdgai_kc-G^NXrUgs6ZNz@F z?iBU<(S!yZI4RM4n+ladCZYlV_)Eemcv-Wcb%FGgk>9?-Kpk}DtKe?(OdNn;3hS=| z$+NdTqp32v>a#uKHzE>gl|$wt-kPj1flAb*!b*Rv4mCy~x(cDjM-hI5bw5*t9 zeLiv^w)xGn=%#s?*6JrQn><;(s4U<|qSZAed$nY{R*3y*rL|qiYX5hf^ocz%(0@9s zGm;f;cHI7Puykmh>CA1BCx`V4Jb`knG(zInME@Hh<4{N>n~2fyo1 z<0!O+y%%o1@j!Kg+X!Cnc;YClsPu9AR zYzzqjXE)3IzTv*UJ{Lb|&$(9NGCRWu;Wu95cg%m^?E*&Zg`SmwLQ@*j(t^Z>VL+pq ziz&i@V5K?%_R+E_HIFn&-VEXs9uMq7(d5DsGqIs?-;lcOF9>XNI%i+F2o$LQnpyv~FBWEvjh{vlYx(gS7qX9t-IeBVWme5OlHf8 zBwa)!JY}|{A+@KQ4x z@%_5Cd9Js>U0ydRMRWGX^lpplUjb4^)$;)>4!ngPKylE_XqaG;FaCUXa62Mdf*Cdhc2n_1@J`J^(_3R4_jt6%R+* z?=-@1g5~#YFNk+&vR?V9kQo;TasT0@Dmzxk9(>;sm;pq;>9zb@w&?Q<1-emi6?f4Q zt{y(BzgCBO#|bv?5ES%+br_!_kns<7waHUf^@{{(I2K728o(m@t@7hkFxcY@J?2Rv zhUSgY@|UMeXLD;*CEl9r=8)%FYx1@_eVU~-Z}8YIp&9pcn$<<-B9x=OYVSZaUxXh2 z3exeJrr5N{(@*qvmp*LcwFU6Kfx%-^P4ODsooc4`2Ta3^kL?c=tJ3Kk`nd5(EK3oq-%W8Hd2~@)q3HC6w^zU9X@RuQJX#g)cAqwZHA$1aoO<3fI!81-~AV@*6E3{Q3lx6 zr61P^-FU^$X~j!-0ZXjOz;rJrYIl!X>GvxUPH`)I&C`VOxd<$`}70mpWcdYy9ZbQf$FyvB8(~bs(FVJ{)FrH zD7=xpi_N5a)&1hPS5-mg6m3AHn?rg34>$R!Jkejth zTM+n%aGrrc(~%RL-ljXBGNVZ5t(%TZ0D|&0ep~9Stn=?_J4Re}(l$BW#S0r-I{8s2 zxf_rbW?SGI%lA0u7WLg!4dXLv=*}Ro2;fd8sa3UIN#s~*;C48fex$JIOWLWs2K>S$ zKc8BRBx+_bu<?=H~Pl-rO_1W-0@~el4gG6R!~Ka&)sde-hQCt!FvW) zy@jdK5KVor9Kf;sf;y8_CA4{a6!Sd7%X12*dB);-Z>r+OW;rvGk?L z!iCqt4MhgA4kP?VK*C8Ixwtx_5E~bJTLaUWr0%H=+vvd%f!vC^(3J`gL)X+PGaLI&VLN{sbJ2b+ZKXxG6*b@e${s<=4N24`ZMX#a@`cpaXmq@4P zCo3)bL6A0Dx@KtD@$L8L;ZveG-eZ2#3GRtsC9F%w9~0Ktjny|{a+MUXdrpHF2+kV9 zcd@y>=QBP(=C|YXAq_$^b78_?R`yy?O+_94mVlo33^c_Bsb!qib~C`X19qn|*1WSzl|txTP`VIay#` zW9!f)Y~(VYQCRnZ_09a;a{>?0p-Cj)E_X0Aj3s^|On@N3%EFG8byx%3j;S z8T&BWT}G3&)B2yj7?Hw)=5J2l$)#_d_HM39pYitIN>E<~nb6q{0#+(sFTZ_#Nf)>{ zuZlx%GmH=KCN0WUmy6^;c*EE@+sd7FvhCyL!6A@mX{o4Px$0=5bdWXwdgW+q6b>^d z(PDcoDPgqZ;ih--5L3w@Z9b)Tb2!z6-o`4L9x$OhHIe zyG&Owdo|^)3sTJ%>jU3f_)P58M{8*`F7MM2DX6=`IMN*fd%g356MeE|fUkXJ*I;N^L2qj-u)8WI!k*(x$27OptZX`5GxKhl{fV!s}=7}?6%%jtT zMe!<^x}6$%BIGv;aBt=}ov&T5R9$sXf=m?FQpY#3zB9d>c)*7%YvfE!t=|~!IH2H* z^W@*=ST(~|y<}N}6;qn#7{kX@C%Va}8N#S{a8}+R0fm}6F_|>8# zz9aqF8%36OVvCU{fhOt7M+LN=(kI?8%+9)wgMBHgetiSi`Iu%u)_?lg3IZQ;n#CXM zeW0Z^NMW%bZxX85P&qpFl?BM5{M*oT4eHx@@IZ4b<2^y`=<|weGq}ay_v)O4OiO%t zAkkv?Bq6wtnwHY|M(b?1UVohv;UMNwY>~;;x%$>MtKE_3`9lWt(`Sx{X5qqUv#b5w zK-X}AlMXA`Oaf=kPq77kDi92#f3oi3eu53OQR`6SBiA`z!Z|po+dpjWqYi}KboKAdA#@pIHm`udme-4@YkW4Q+x zcm+1e^}@xPJ7ol8)3U#er&qse`iAcq*$Ugqg9vSb&2zbRs$B- zLXn`=3GdEBmgzex=1A=ay{DqI(s_&g#%_LY-Pq#O@n^HPR_{;rvBN*SJ>^)vlAkia z?c!ZZ8H%%sC9D`(zr8>x5O5deq8aGF@b|~$m+%|;)+S}AiS$P&U_A^UeEk-R=zR>F zYOFigmwlueCT*fE!bZL=vryN$Lg;0eiR5tInyrJrCt^P%t5#xN`jv6&dSTv6g<7Sn zqV7F)?!8QEnAQQbQIfBBE4;-+%R?)`&!UywE9!eU%QF0@4&Dej=b+sYD$~#|8i4#CiBsQX+95lk2f2BC*jM;mBqr|=>)Fm zOShL{T|<&G3DAvb;)rTv|H89n_2fK=Etmsf{Ezv9s3H;^oG|m z_vX9j$0c4a!(JOzmERb04G=E6(m0nH2ju7rJw%(wehB$Si{O{0&G0?vSkqY>cy2>u zzRh_HcPM{i1T4P#vPDm~q}u+hKa`)E6jFiut^vk1w238eT<)hn_n)r_lS{pmTiHz_ z&ZsWv=gn(PPuix?KCf*JdasYZ;GVV3f{=ih)X{Im_5u4d~q)+-*c zo}8c2m-_KqgxcPo;9FVkncZRkY9n}4tw_C+wzDFzaVAQh5hT%#>!>W8_AVI7o}6pl zoO=rti>53Ux$f+cXW;3h!ye{cl*W!1cq};?tQEk6b&PeWJi}J6kMgvj^`6o{X`d7b z%AhI^l%0rmtz?Ho)*J}IBBfTci!<IQt(zS0cfLP&$zt7s*)&QnM%bh-tmVnQYt~W*(f6t@9M1fP9ZcL5?{NR1`u(ApL zD#IaCa|VSs0U`ffFhlR|y;SH7+vA=xN)2mp65g~uAV!T`Hq`VJdXbBg4b-+!`7*Y* zp|zm{KAY$4nqKi+{}?FfJ(($01^M=EREkEEUE{wnG4B3thdu+B*lb`dNn$-p8A&^u z?hUp$ataXdSJ5vd@KxRCFK@&JjW%c3EL&hpf)leTgO}2K7zwlSKN$gW_LplwxQG>U znc4Pr(h4Q+>s>VM_Sl;5&XRtGb_uUv&7oA<^9h`&e0lnvp0_KeGUYSmvI&m+cHtZJ zzT%r5mD>p^nkOShu(;dUZN}sNhrN3GT9C$hO2_r3R~kbPBDA{K2=ILYqf=|kPpHci zaSmVZ4cT_U*q4KMOEV4bQr1B`AS1^S&tZJe0NGo{57NAo_m~}Avfi7Iy}+mv^(_z- zMDuubDiVp7iI-RFJj3^%(n6p!mIW zf)nI!^{ol~#wk(O2N}U#!v(WNj329S(Uv*cp_UX$Z_4-74914E;1XEuPQMXIdtrqh zV!1gTxKST34GfRgLHlNP7LVEO2%;*lcA4#|PlE{XTktVxXOA?N=n@L(?n;)`$ z`(@H^i?{ERPW+5m^c>K1o;)>qUa@EM8$8v2Rj!=o4 zZn%H~vSWgaQK+1WtDziaGungc6}#3cX0diE^hB_ToL}iwSeeBVl<(ub{>z5qTBLk& zgw|oMJ-)7U;S!KfPO%)IdH3l1t0C~~cB6$2s&||8Du8kVqrI3AwgontHuLK}P#w?Q z{;ai*7$n7Dj9O^AezJnj8%aOBlb&`HnJBy6rqK;w^8Covy;urid+gJ!rEG|%>c=S} z`HHk<*K4u~6J0-}TQ?C4F<*x4YL#63nQ^Ji+Ot+%9X_RTz@;l?Fc?uwPpS5jIXYsV zUN|K<-y4&)mBzo3C9R%6^fQ))x3ICln^Wo@T>k=B?*@+#NwaFi!!LoaJw3kip7uk1 z=Ch&JMiPvyrIHCy)}Si7@@PjDZIf7IyZx@mDC~1LlSe-TmnPurW?Y=V{{^Xmug{Os z45PB zV>;}9DkiU_a=J1rc+Q*6TSD7`n@Q#nDSK2VD{V3r4l7?GhD4*hF|tyz&G`* zebFVX{G-0?vuzCfe4u({`wAtA@-d8ngjb}U(b`PF(T{jGSf{_ydK`a@!k|lbS6_h)0hr{Q=0*~ z_rQ&Hcm3D{>w6$rg`?m|UG1Z%Wj;xVAHBc68C|~T*mZE**GyxhL*O2zu(?A#f9SKO5(ELj(68d z$aMkm>pB*c>!#0MIP%S8Mg69b&%u+lrIe9=bNy{-Gl}tvU8IbCJ4%`0y3V*6Qu%NO z2db5Y%HJWfBqMrL#&yn3nj&bb*GcAjEkiDBz^wI?V|* z4pK}b{4_Oq8Cn#v*DP?enCt^iEzNwnXLGx|+|i-Zicv`Ux=Z;$H>v^a0pGosVaXdga@3}VMeEICAqmA6pX!yI<^cwKa1UNbqzuDopgt2~W5p@X(3{iYWH!X?Kmc1kl zxMEY`5%e*{8IP*&1r}ZDX&~kW!Ok~tIRe^JZFWITHNUV3o(tLem0q+l9aZalVL&7n z6?8d5AMGQtxRtORx!JPq3HP}&f)i~}4~-A0IV5;Op0UH4v{N2MeClCEF7mJv_2cz? z7ZboA-tp+mJx?x`GfwHN z7ForU-rJp-bnBL>_X-JyHL&H6j1B8hla5PaQ2!CX9mb36n@&qIGcL5sTlsrdmRP{r zqg$(QFN+hL+P-?H;qohQhN4F(cg<%f%q9c#({iQ0X9%`FX-v}FJXyk(PGseBN6KJF zxd=J&OeM9PlE|&4Pd>-dkN9HlF`H<0*>l7zkq6oO@>Zp<#lE%Q>IfmgGV6o%n~J1% za$6DUiBP5u3HRNz;z3EVmzIkqkEa5V4{S~8AMp@kgHxWD%1d-!4z^+bc|F3AFp{jT z-cdon843v%?#WM7(R;*~yHqBq&dC}(|BbP#IJE7+v8wE$c9Di!X3$fP>qc4VU$pO*o71C+BS%XIEPG^7O^!KVjcq{uCQwJ}+_q z(|ezBaur>rEstyeT6;%x|15*z8#QXHzcxr6$!(0Eu9|Dk?BS7p;Fykhi1cS9i9Ry4 zFB;jYoo7^8E+-TVBcCkJ|B63s%shg@ z_e_*mH&fsapOaYv(u{`}oC3fR^OM%Hj4+LfQ{c1+R;~M^^o?THQ(F4weyhRV@jGGh zJ0cstj3s^hoNHstmuxhrlDgo z=T*S`U@|HjD59*-Hp^j!0Bv>iay-2my1^r&{6lnrgOUQnL( zZt>}L49KUi#+}elvo>k&x8F{a?Y62 zT`!kpT51!^etEsKJ?D|WEy@$|q_O0R6X;Mtk%~c2w`6-H2G(kOA#zibMb=aGk%;kA z$rbNvqqc;ie>35Oq^k0}lOsl9=Yr!JcqitYT=s;^x!7E*(z)D85G?!|%VPxC*TWEo zWRAR}?Ua#tqVd_=c(n||nJ+;Na6Trz2tH5aK*3DrarQ1xXA^#U@MKvsK)xBL)2Pwo%;o-@H8mr z5eF!Di5v8Odb5uC|IqaoTv4`N*zkxbB`qN-EiDQRjerEv5{@*Cr3mUue4{@??2#sqy7a+>a73$>d#xd|6kW zgxQuk-T7kUSk3&07<}sSg?S=F6w9GDt=E{~tB7#r$IP%GH;2{g_K5XW`TmG;+l#P$ zdca0%t=|%!fL&(qPLWGeyM4PpVn;3*=U_N(@;&*8QoO##jmpz?{Q7wAn5XfB&`yf% zgFvS9ZefN(#E@691J$RkY+-+4+ecmL2U}_pZtar_$a1|bA=hvhI_}#C?$#~)ensdC z#96KxmITXChR(n61sxZhpFo zvo+m}l>Biq%!JZ2@_zYnGgZ0;2oyn`mkh(Ik5Env$gS^9DmQ^NqBqoQWaBtKOGpPWhrW!des>mIA(0EU5-cqA3KgdyOW@mxm0mBnVn$N&I z4+Yc>J~y+WgNcpXdhQH0wKYi)dDq#;hhFH^J39gREZ?Ql6coQ}O#<`10>~=j)7N1-TW78Od2FIPWI$Z&S zz6wOBhU?J6-^^TJc23Zw4Mi?`ZNgRKUZnFKM{P|c{rLNNuPie)jcl@iy-cdDWs`bN zH}_NAn1Z%V;#Nd{6dJV;ONRG24-fKdIv}kT=%4L5p3B!IxT$Ga90SY&F2%~;^ey{V zvYGcfBtCt`RV%%n31I`>UkImT^5p~Pb zBo8;Zh*}?b+Q`jnp90f}IcGRGs_3y?Z{a6Vfz!3r+wJNyvjrh z$J7d@+NL!L6IXrLgL^iG=J|!N{rQEYOmJM}^kvoM+Pz8?7F_w_;ilI7r;{41Li@dOdc4OC z18gSCgwrD+YJ=0xXnTAvBxB?1Z`~u<>aL#$E2#hqjgAb4nw${Im-C+{bC0fk3~0G| zwB2MFRZFwh*hqOPD#$_oXtVNI=XI~Q6bEpvJGQ>tOx&LO3rc7HgExT?alSBISePfw6p5P%_`PjlA%4E3N|787vnsT%L#1eZf)EAg74v;?@pH; zkcSN(%cpj_C~mgE7Gst6P2|nTW1IUrBNHLiwVBN%y;LOjQuS-lA5j(;cEXTPg}Hn= zoO`Z z@^~X?BVqY{DaY=&2q_tfE0L`quGY58+>GXVDwb})iE!y;0!Fn(To@#KkTBP1C6?|> zHmHxvmuYc-CGE?Ie_z@|H%5x`zAGs7#LKz_m5*lrA`%Uio^s8Tix`1BLfAnOWI6pV z2-|pT-G|bF{EPzcoPPH078Y@L93|J0WFKyjj6k<(q{uJ+yBJ3{O7|0~vG-~ZDx(zq z_?A1eOuz&{y3}Io=_t*%t!Y>zcOvwH#z$+D6P&bwk*o7{=S>W6VMJ~SPf%%W{;7XF zlsJd075zdB%L`|C^(lX(+VK-2O6ThE<6cQSGa~hCQo7KH@=xAm1r7rYqB9d*R0E^Q z{F_XPGcsX%4Lm)8^?#Ht&nUuqBso^wDJsXXp>M5qOk2NkKY9Dh@L%_azon$Jog4<6 z5}j)p<&m>MbiLgt2^ED!>6V2w>96r1ALu6w31+=xug?pG7;Cq^+&4K+o{qQ&oov>%rXP3pinZt8PpHK zhAJOqL+nHEw+r;qne@43I>Sj_tV$FTWMV+|Clg@-#+PsgIBeYVF7UTX>P&6(qnZji;X0*N?F6F zrm#}RD|CZ%Yof?JJZ!_yKKC~*4j$>>Rg(A9>WTCtl(?d=M&yGPyIBH8TkpQ}osCJ?%Z(|F+iOrRz&L1O#PDkK_(r)Ws@0Bs$SuHzkXE?+SuE9@qz%(kO%N}sA(}u6= zdYWP@#h{FBw@wH3_dB1)v=lWCU3u``o^$_}E(_ic; zDWQA17#pIhzDN>k*Q)s<<%jQ5++V}bp(|i~y z&9eDf|KNS-^;t`2{XBn{r!2Z}w~nW2&$$D8tXfWPDhqwLy}b&3d+Ys(;M^2JO#QHU zl9DvM%9Fa&)cMA?bZW*6*qQjR>+Pm~fF7|R@Jc$xjsqgxZm} zg`1m1wcVtO2jM;@=Sx(?;0O*IvRc374VBdAoh@*l1=h|^ac2As%j01dT`cA1z1W}; zLF*9uLFE%sqi}}qj@T%_8;X(jm=S6n%7Z8iSstm2lrj~`NJz`nD1XLG=J+B|GWMQ> zaSWvzofiaRQ)`?Z_UF3jT9q=k@H**^BqfM2$KNN4QiCXa&pYZ}e9hQamvapL=W{dnkQ!)zD8f>-5yim&-xu~8+(^7G zMX6W|Wev=UVr%)^#>}c{^NGc!Gt1~B>QB7DF9GG-)DKyOZ~4?_Jb<*@pX0wVX0yfeF zw0_&I7OSR`MLP=H&h*(+-ULvRlee91|8hZe$sJNJpvL`iKoul?P)^3fvgqvLrTU6RQ|!AugBRs|C`hA_Rz_yo zI0C$6E8aR)&BEkCHFM-WfE_zxcz+YXW!&=(?Bw9!!jgdQTNrT@wk zAklvm^gQY}T@6h;#O7=h768u~-^y2EdN%wT%if)*>P=S_o8N7i6EGZwC#glhiAA%Z z0VQ^>mX1>g-ap44R)50G$e4c$3|0 zIz3`95in96uFLwcDfO;X0YOdt2Jh`G3Tl<{2$kBOv_0DEYDibf8$k;0`VAgA3~!%^ zgq-IL2|2ZTHs`iqkV@~~9_#tI$nhO@ot}&(K^HmM_~46k_4S7}>Uz8sJ|D^#)hJoM zi#*)1k_F~mMxstl7vKS5mD4}5EPm0SZY}G+Y8b6Pvxnw8TQG>?*Ac%Xawb0${=t~^ za#Tk%UwO~%3;iy45J+PY3$;a7QKb3n$+t>(GXG8GTO|Lq^=F@}@`~+B(}bOJKBo`K zKAHUQblJB*@e}M}AKwdTmnbC5#8}qbjIwv)q?IJ3RsRQy*(4W@e@0|Lx?v4E>G{oQ z)~(3OSeZ(%y16&|WX1h5k@xErM`yC-5K`-hwvVdCb^{fqdO5W>LXbfRk{5*|3m)y} zKi)%Z_*@LK$ad5#?RO%B(vwG3-T6SdCD<IG9!(Y9?!_kSYe?Jpd*=ljOS0m} zgt$a+HSlMUfb_(S- z^|h;Hk`wc&AIdb#+b*;MphfcKT!~RchrhMnm|H69l%GTs>feKN{}nGEyy z0u?#j>2hf`6rWB*rnbBq#Ux+O8+h)0ox08kOM+3cu^NRhqyj$pvmnx0`z{u&NSt@) z-tV2#F<9&J*ng8I8ty5JNxMBt+G-}g{((igyxpdF(b@Tncz3zQK-DeTyTD%MF7sQS z`H`@6-hPee=R71Ox*c60E)Yd7(Une>1#L8@g~r4&$`6R0>XN|=r)iO`mwKepo^Y41 zcY4;5{JW35Y&WMF6z~wK2?t``n@sl03fk)i9+dyPYV`jp#XrcSe;WDv8MHrUC{~Rm z#C6pc_%w6NwfjkDeK6+Lnja2Fyd_U$k=#ZY_KytDapvdl5tACBl40z}D{>!I{ND%U zR#twc*a}YA4bBlZ!=e1eRqD?l5h4z~+kaA)WYlXN7+|TPJ+BDM6{)O2y9*iC*!vh{ zCMR@W6|#o=q6p)!bVmnY=~`?yE!7XNFk>Z+J5mP z#-mig`s!pR?;zJVZ8IGd0-m{XJ}M@yp^CCPr3oUf^H`?@_V{QScjNs~5%+6j*&5N1 znIFS_{e(<2h6X5ED|V27yR8gvKD}tcO*(k)$ZQLs1Z9x>y%SYz`S;9s41uMabrO`P+d3w5={+Bz_S-Do55Y4pRvOBu7alaye5J#sj>Fc&=gFopWTS_jTWbFxfY ztXVX$NvJ52qRMA*&`gDhC_#Adh`Vk)SM|TopQa?I14Uk6RUIA0jhd(yPgr#+p9Ues zT|Y@Urq9CyR)fVu!xlOT)KNn(LzYnDi z(b-tc0gVXTEBgczVv03Ex}PD0K3BTW9^iIg{#8|8Mtk?oX2GiZyM~~e*WOsB58)Jt zJdNnISU&BkLQsazNhXV$^yF@;2UYd+Cr4M=>i$fR$3=+*7mJ2fV-8_Xr*?TGcBZ(v ziY-@KB3@%<3;v~G4La(Aj5RkW_s5owP+6EdLD6~o8-m49D0HJ~qfxLk;!-5FVA-ol zzGFnY6dJYgPF))qcq<6A;5SV>p?c$;D9%XkwiPpnTzCv8r>R{m`D}IVHj}u`5lwumYuoWx(_{_2OiqYHDin|&aX>c6De*ob7j>U~MvsT0 zQCm1W=c;jC!!!9KSxFvrdYA#EcB}nXm)a|sRfXTx zJw}h)g9+C`d)-}h&fHLVRS|M#V}l-Wcdsk`dX1(V(<)(q64Gk{YrQH^-E}%Bs<)B{ z$+2dTT+YvCPV61nqqcA9F#QmhVJ!M2Q0yF8bLP}4q$byV*?RjYDc9rj(2qwYb_)*_ zk`Sw*jIxkY>Ao;IDn$4lICHkr&1zFTdRq9xr34zD!@*0lJoYzK%r3gpFQjGlvAUUI z`Sh(8xE?Gw#H`%;(@(WeJqR|fMod+Vk(AwP3pyyT;kZY_PsBFA7Ci#SR3&Q-!igW( z_Lq_wgS7Pc>`Q72)j>BU=Gyarhe}`kH?+}2lwkvrPEPAaRoX&XG#~$@WoM5jKRuyf zUu3@->WniAr!u0@VLVTP>FjTv7K(b|_-h2;g#^4+Ea7IV9V!r+kZ@9%pd${tTm8<} zqqY~e7)QjjQlC{7VD4CJ2VIhkh+ls5yT&AgM#)%6osaQ!9`i#B1X?{r&mgWwBCYDZ z7P!-yje6nGGAQ|>NF+FCw|{rm`Cy($$MxYlLTyKSofsBRkfS7c4vZoRjna8nx(4za`Cc{yFN%RxGiu=pvBK-HjaxkHCLV9jr>iY5tp_SKg}R>%{CZ zkdPzm&%W)I36tVMS>fuXBw6-69Udx^0$KLEB|j@UqH8fM*SP<)6HD+aB_|dQJTEf= zJ1$@Z{mG~Fe)M2x&)s&Dc{hS>v7Zjim>K6-$3{vLXQH?eJa&%C8tI9PUcGPx3 zYVUV1T22y$boh;yXQf(aS!nbPbRt2nlHok>)L!1*EFe!@69f{9S_~iilpoOxbaZ4e zTg=9249DMXRM5I*HK4Wwff&ZK@C_E}20jU~A?ctq>|&m1%23rir5`_y)F9e)&ay}4 z3G|&*pOjcy##we+sF;3UY`RrbcH10N z=f6Ph_D=CDJ;;9jzJeUdT)2`<-izZu(s^S|J)>cVP|>Y{zdTW9|Hcw~e(0lhwR3ud zhVhm|@}FlkMuytn5+x|ueEauh$6))tM?j65X5yw=!rJz9)>DrlcxknqCRALpH7obm zj<4_o9|)Qj{67e(^GE>V45^EGPJX*1YWC%D7R7{DG zFDM(Mepur^7r=*V^?ynjsZ4AgDfrw0uNoB@RO$#Mwp=HvCaWao9I7P->h1FEhutgloaL~oi0 z`_Uj1tH#Av7bWA(*?c6%$L#h+)%{>06&_c;@xG|?Qo+s!P!2?{3eA!tsY7rH8nd#s z=xRT$fY_PQbA|SneA*jp>%1bJrA`D>;EOu ze!=#8^*x=7RbZx4nMum0W$g(QMkc``d%axn4KM)PAW}q#6~hjXPw_4XXg09_VEv0o zlJz`nS8ntlg6_Ss8i?I(pzzBzT$2?=J**~LU+jfH>A*);^0hH0#YWzJ{Ik#)W-{+L zRILC9pZPUgJs));#danTEUteWzGSJx!Q{}eq9Pyf`(eH!c0GyFfGS4ef=$cKtj2sR zMR|XA*uGEC{TlSbYuH$kjW^U)4UegRgI#N$6)((iJJC$r{!`POOnFvo3*oY z^WSRb*s``*{ZWn07i(&z6H`2S;2(L@G+L)Uwefs2z#Dw~2y`5DK#dqAtv|62j0hgY ztJ=nkcGiKSu4}Xd{-$R9~a(A{f6Ec`2PMi`DpPZLDE& zve6tR(t(uDk-i_d6Y*4nrd`7f2yYn_1BR1Mi$V5R#9>`6QKGl+ z7B8>hr{`+4AhE86``_mxv5O1H48_TR^*mW%%2ILX5kE@bbb34l(+hD%hm=~nN>9lTTf-3;$2MF>> z)*rY22lgTtY+w}%C4E6tjfXwxz61ADr{#fP>x4-|%L}$H4;oBn4dZIKOXhh4?o_Z+ zLcdASD#U=5`-)e`xSP$hbo-Nb>~AeP*r*@q zDhjrYaj#hZNFGAsussaJYC_hVle%{guZ~DU2Na|2w_Iwq(O1BK6Fu*FeQ#)8GtbjM$>+QBW0Yf3#1DF@Nw0-`6;ZKF{_yT6YP z>fl?084e@-?+?&O|5M24)3;5lYqL{O z!Pum?e+!K`sqjl*y4jbYe3lTGX73W3dk`jAQh@xnRWCuAna#8qo{Zo7G^5Iz@_XX^ zv#kDhJV@h!$DkCb3nQt71_|ef!6drsAz%@$*dNwCc#94MfBqG9dO7Q?88?P^L$2XgF!MM=eot64l(ZEXU0#!xqMn=W5@~i#z zXH~`t;~a|65I;}zXWU+!U#J&UdXxEm$HD?}$V+LgD!U_vSr|`uH0ZhnTS#{{!t}hZ z$7u^Wc?FV_N*%jmTDGQ*I-B(zZ%ztCjVAmtoP`?GUJl0qm0Hnf&>{rt)d7Uv67p=q->B)V!{DBT7jl_1KISEhZ?#KSz7*%~CE+IQ zJ0H$f`P0w6{4))Z!&0>XTEgRRP_oR8 z0Pkix{b%iE)Ks-srJJ8S9izeJmdrc}Ki@8pK@ZzR_x0R%U!3a%AnYG1 z>Gl+N;DJjiHp}n}mRnX0x^J!!;zw~uj*my>qLTd*;{Fnom1BvH8a8iky+705#{4Zh zDASW8-Mv5laz7S}9Zx^!>7aF$*0c7sLoYTR&n3zR`18tN>d*t;f!+jxs$l`y-+Qw( zX=P4JH3Xo9(@iiOOJzc~IL7=iGE5OCLvY$$qtXh3VgN};D+Nph;k&7@^3D4F%KLo7 z0(RIS@EN_hEx&T-5f6e^M70a`cgV>#HwH0+N{BF1Xm0*vEvB!aRjc)^aqn>ckE-C| zX;VtVtzCglWcLhh+6+MfP?GU>Abmw7(=*i@{EtLVhUhvY(V)rdiKUSE&38Za{{6I#_i37~XZT+y zI-fc^m5yJuYAirC79s3OcV3(a)f43X3=(39C5HlIA^ucoTUSb`aq03ap{&ekTM@Z; zLr(1{w1B!C*~l7B%KuLGYf0@g0Avgxi~AZKCL?VC$_SoRJi~4*vI4^ZaPy;NJdkQRajA3ALa( zrKA)^E(3X7HaYg`+t6#$0@!ARs=)nf5OoJ~{n8+|YRwe+1B)%oa2Pqa_?Pm3xhg8+ zS*wpXlzY29l2uD~+JC`xZ;$CIXfFu>i>kVGTCOV7%*syaEVgIWjH`QJGgG^7y_$?AN#j9s~W{o@s))(!sE%y zLLs{@SF46Ks_Lo(v59Fg_sfH{I4;#^AiCgGmGL+op!awVlUSYslzHDP8mK=i+SXC~ zd-M6|-%7Fo>%*nD1k#u0uSN3}Z($L@MCH6%^B4Q%O%3>I0DjeO2z|p&*Z|s6aA3MV zUcAHC5(!N*vGYYTpDb?SVj$1kgSyVIy;E>feMJ7Wqkh7T1j?kY$hau4_wvBn7`n!l;@i`V2V-23|P!VgJJyaYP4FY2lQr_1U)=b9E zmiqaW(!aVm9nj9{q$$w(@~0;4(dLW7g&b4px7@F$RFqqp#P8O@rv?V@l36Oxwd>Vs7x?J5;(uw|L=kUl zNq}5{RSl+ZsU4Nj<$$(fdrFdprr}>}hk(JLv(erfM-B=n?fT8XZCm-#Ng?B9l#kAZ zY~8y7gFTm10K$kSbZX~_zPQCE)B4qRaz-a!*UhLed#RqVSixMAh%O*rpX*kjmZ&<1WFQB%YMv zCqO!xwuqW)yww!3P*&>g*2T(2yiRI>Zdi%zz5S|fV<#mP1%8y*F!82~!wmf2S84WB z3F?7C>*7)zVK9k44nZVE?b3JhfWi4QB!VGH=UqCV*_VD#+2@EFV;+>(dt1nhO5@(| zhg||AT+6et`-%lsd+!?M=uArWaADU;Rg0v5e09?4jA% z*{r-apHWu1j+^6N0KxsYdnHvCKpMeH;!8rz$k!gzp3q-QO)ju_?f(Ub+^_sznWl4j zfQ*6~1^V0oT8b9xlRDnf`^$<1_ezzSA4Aw!t6q+9?Qev_ESJLe`rGZ4{vcvOyOF+- z@{|5ZH&^8$nl(eN(QK~Mjo!@q9sX*On~kglPUkc81gP6u-*canNtp@0P+9Leb1IL` z0^CTgsykrCpW#RSz3`YAu9QPd28Z-e-s8cpI0Kl%jms~sx!YqQVi`f9m;z_ zQKb01^9Da-$-MxIT1fVPeB&PSm}neI0sleH7H$s$@4T9q=jKk&GA+Cj-6Sx%cqte( z=3#`N32+Wh0BRE0a=8TdF?xJB?io5?!%nT~dv$D%80`url4=-u8EOZ-F9BcG^)s*= zD)$D0?R4pfr6xk3Y!*!%zs^@)A66gjW$~3dMqGtfDeByk=zGRs-*%H9scBpB$k)`% zvpVE@$m^@ezG%BUc{|8fC6^Gj8>I3vKAqduHVZQ+w=#{q5`v9l(73#n9;9VcdA|{- z*a7G{>BUi@9=hh;M5mPk&AqRG7KwG?EZ9)HGj6Eu1EuGNXOF&8$d>`nQt+i}QD2NI zYbdyMH-8(BtT$dUD|(6HOMSn0I(FMPdHNP_$hu{xt6dbG9x1Ulr`MZNYB=+tg4+I` zvq|JXthRw z-wZ7%|6AfumnB}ynvVxy3H8Mfou6cl>YhJHoX9ZHQV!mq?D+)2soj1HLMN(wAcq-0(gLFXc$|E9iPCi($4RRC1N-%TJZd{&5}*C> zekEz>gdUIP7lCCJBlc;UEYJ20`A{*Sek66)I zBKg(yt!6Xv1rudsTHtE%Bqzpb+l8~p!xE-!5FyU4?&-NSdt2w}O6BCl=q?bb@jRba z?`;40^N$HI-?e#l(KSL<0VnEHwa>#TbWQ~TT|$!2Co7#%La_^r_{FvO)T=bSI*)lu zcMG>0go-c1I9pvUCicDE4>Te`QVDgkYdod7u9Wey9xSSZ{{UJi#&IM1A3_w27w?jD z)r^)UseLGLL^kjm0@gas0gNqmJ3*B$m~f(HWN-N=wsSWz$Qktacrp3~|7Lt4i^{uR zr{U~lKM}mSXyBrJq+tCErDpA*Td-=fs$U-wtlDc~=Y

K#9|#k}kbmR)1WHeu~TY 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 z

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

4zRR74%k_UDy`b@^bg4x_rCW^xzh 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⪚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 diff --git a/static/icon.png b/static/icon.png deleted file mode 100644 index b6656a7a819cf41ba6502b9eddf4e580617bbaba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17368 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 P00000NkvXXu0mjf;?EWX diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..6f5f221b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "lib": [ + "esnext" + ], + "module": "esnext", + "target": "esnext", + "moduleResolution": "node", + "strict": true, + "incremental": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true, + "jsx": "react-jsx", + "jsxImportSource": "preact" + }, + "include": [ + "**/*.ts", + "**/*.tsx", + "./package.json" + ], + "exclude": [ + "build/**/*.d.ts" + ] +} From ac79443d8b039340e1cecdfe625ecdf1127edb32 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Tue, 30 May 2023 08:02:20 -0700 Subject: [PATCH 002/197] plugin integration round 2 --- package-lock.json | 3180 +++++++++++++++++++- package.json | 23 +- quartz.config.ts | 57 + quartz/bootstrap.mjs | 80 +- quartz/cfg.ts | 40 + quartz/components/Head.tsx | 28 + quartz/index.ts | 66 + quartz/path.ts | 19 + quartz/perf.ts | 19 + quartz/plugins/emitters/contentPage.ts | 26 + quartz/plugins/emitters/index.ts | 1 + quartz/plugins/filters/draft.ts | 10 + quartz/plugins/filters/explicit.ts | 10 + quartz/plugins/filters/index.ts | 2 + quartz/plugins/index.ts | 33 + quartz/plugins/transformers/description.ts | 54 + quartz/plugins/transformers/frontmatter.ts | 55 + quartz/plugins/transformers/gfm.ts | 30 + quartz/plugins/transformers/index.ts | 5 + quartz/plugins/transformers/lastmod.ts | 80 + quartz/plugins/transformers/latex.ts | 34 + quartz/plugins/types.ts | 38 + quartz/plugins/vfile.ts | 5 + quartz/processors/emit.ts | 0 quartz/processors/filter.ts | 0 quartz/processors/parse.ts | 58 + quartz/resources.ts | 9 + quartz/static/icon.png | Bin 0 -> 17368 bytes tsconfig.tsbuildinfo | 1 + 29 files changed, 3863 insertions(+), 100 deletions(-) create mode 100644 quartz.config.ts create mode 100644 quartz/cfg.ts create mode 100644 quartz/components/Head.tsx create mode 100644 quartz/index.ts create mode 100644 quartz/path.ts create mode 100644 quartz/perf.ts create mode 100644 quartz/plugins/emitters/contentPage.ts create mode 100644 quartz/plugins/emitters/index.ts create mode 100644 quartz/plugins/filters/draft.ts create mode 100644 quartz/plugins/filters/explicit.ts create mode 100644 quartz/plugins/filters/index.ts create mode 100644 quartz/plugins/index.ts create mode 100644 quartz/plugins/transformers/description.ts create mode 100644 quartz/plugins/transformers/frontmatter.ts create mode 100644 quartz/plugins/transformers/gfm.ts create mode 100644 quartz/plugins/transformers/index.ts create mode 100644 quartz/plugins/transformers/lastmod.ts create mode 100644 quartz/plugins/transformers/latex.ts create mode 100644 quartz/plugins/types.ts create mode 100644 quartz/plugins/vfile.ts create mode 100644 quartz/processors/emit.ts create mode 100644 quartz/processors/filter.ts create mode 100644 quartz/processors/parse.ts create mode 100644 quartz/resources.ts create mode 100644 quartz/static/icon.png create mode 100644 tsconfig.tsbuildinfo diff --git a/package-lock.json b/package-lock.json index 5f7fa855..2557d290 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,28 +1,34 @@ { "name": "@jackyzha0/quartz", - "version": "4.1.0", + "version": "4.0.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jackyzha0/quartz", - "version": "4.1.0", + "version": "4.0.3", "license": "MIT", "dependencies": { "@inquirer/prompts": "^1.0.3", + "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", "cli-spinner": "^0.2.10", - "esbuild": "0.17.18", "globby": "^13.1.4", + "gray-matter": "^4.0.3", + "hast-util-to-string": "^2.0.0", "preact": "^10.14.1", "preact-render-to-string": "^6.0.3", "pretty-time": "^1.1.0", - "rehype-react": "^7.2.0", + "rehype-katex": "^6.0.3", "remark": "^14.0.2", + "remark-frontmatter": "^4.0.1", + "remark-gfm": "^3.0.1", + "remark-math": "^5.1.1", "remark-parse": "^10.0.1", "remark-rehype": "^10.1.0", + "remark-smartypants": "^2.0.0", "require-from-string": "^2.0.2", - "rimraf": "^5.0.0", + "rimraf": "^5.0.1", "serve-handler": "^6.1.5", "to-vfile": "^7.2.4", "unified": "^10.1.2", @@ -30,6 +36,7 @@ "yargs": "^17.7.2" }, "bin": { + "cycle-detect": "madge --circular --extensions ts .", "quartz": "quartz/bootstrap.mjs" }, "devDependencies": { @@ -40,10 +47,36 @@ "@types/require-from-string": "^1.2.1", "@types/serve-handler": "^6.1.1", "@types/yargs": "^17.0.24", - "esbuild": "0.17.18", + "esbuild": "^0.17.18", + "madge": "^6.0.0", "typescript": "^5.0.4" } }, + "node_modules/@babel/parser": { + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", + "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@dependents/detective-less": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-3.0.2.tgz", + "integrity": "sha512-1YUvQ+e0eeTWAHoN8Uz2x2U37jZs6IGutiIE5LXId7cxfUGhtZjzxE06FdUiuiRrW+UE0vNCdSNPH2lY4dQCOQ==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.17.18", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", @@ -643,15 +676,194 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@mapbox/hast-util-table-cell-style": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.2.0.tgz", - "integrity": "sha512-gqaTIGC8My3LVSnU38IwjHVKJC94HSonjvFHDk8/aSrApL8v4uWgm8zJkK7MJIIbHuNOr/+Mv2KkQKcxs6LEZA==", - "dependencies": { - "unist-util-visit": "^1.4.1" - }, + "node_modules/@napi-rs/simple-git": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.8.tgz", + "integrity": "sha512-BvOMdkkofTz6lEE35itJ/laUokPhr/5ToMGlOH25YnhLD2yN1KpRAT4blW9tT8281/1aZjW3xyi73bs//IrDKA==", "engines": { - "node": ">=12" + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/simple-git-android-arm-eabi": "0.1.8", + "@napi-rs/simple-git-android-arm64": "0.1.8", + "@napi-rs/simple-git-darwin-arm64": "0.1.8", + "@napi-rs/simple-git-darwin-x64": "0.1.8", + "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.8", + "@napi-rs/simple-git-linux-arm64-gnu": "0.1.8", + "@napi-rs/simple-git-linux-arm64-musl": "0.1.8", + "@napi-rs/simple-git-linux-x64-gnu": "0.1.8", + "@napi-rs/simple-git-linux-x64-musl": "0.1.8", + "@napi-rs/simple-git-win32-arm64-msvc": "0.1.8", + "@napi-rs/simple-git-win32-x64-msvc": "0.1.8" + } + }, + "node_modules/@napi-rs/simple-git-android-arm-eabi": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.8.tgz", + "integrity": "sha512-JJCejHBB1G6O8nxjQLT4quWCcvLpC3oRdJJ9G3MFYSCoYS8i1bWCWeU+K7Br+xT+D6s1t9q8kNJAwJv9Ygpi0g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-android-arm64": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.8.tgz", + "integrity": "sha512-mraHzwWBw3tdRetNOS5KnFSjvdAbNBnjFLA8I4PwTCPJj3Q4txrigcPp2d59cJ0TC51xpnPXnZjYdNwwSI9g6g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-darwin-arm64": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.8.tgz", + "integrity": "sha512-ufy/36eI/j4UskEuvqSH7uXtp3oXeLDmjQCfKJz3u5Vx98KmOMKrqAm2H81AB2WOtCo5mqS6PbBeUXR8BJX8lQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-darwin-x64": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.8.tgz", + "integrity": "sha512-Vb21U+v3tPJNl+8JtIHHT8HGe6WZ8o1Tq3f6p+Jx9Cz71zEbcIiB9FCEMY1knS/jwQEOuhhlI9Qk7d4HY+rprA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.8.tgz", + "integrity": "sha512-6BPTJ7CzpSm2t54mRLVaUr3S7ORJfVJoCk2rQ8v8oDg0XAMKvmQQxOsAgqKBo9gYNHJnqrOx3AEuEgvB586BuQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-arm64-gnu": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.8.tgz", + "integrity": "sha512-qfESqUCAA/XoQpRXHptSQ8gIFnETCQt1zY9VOkplx6tgYk9PCeaX4B1Xuzrh3eZamSCMJFn+1YB9Ut8NwyGgAA==", + "cpu": [ + "arm64" + ], + "hasInstallScript": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-arm64-musl": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.8.tgz", + "integrity": "sha512-G80BQPpaRmQpn8dJGHp4I2/YVhWDUNJwcCrJAtAdbKFDCMyCHJBln2ERL/+IEUlIAT05zK/c1Z5WEprvXEdXow==", + "cpu": [ + "arm64" + ], + "hasInstallScript": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-x64-gnu": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.8.tgz", + "integrity": "sha512-NI6o1sZYEf6vPtNWJAm9w8BxJt+LlSFW0liSjYe3lc3e4dhMfV240f0ALeqlwdIldRPaDFwZSJX5/QbS7nMzhw==", + "cpu": [ + "x64" + ], + "hasInstallScript": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-x64-musl": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.8.tgz", + "integrity": "sha512-wljGAEOW41er45VTiU8kXJmO480pQKzsgRCvPlJJSCaEVBbmo6XXbFIXnZy1a2J3Zyy2IOsRB4PVkUZaNuPkZQ==", + "cpu": [ + "x64" + ], + "hasInstallScript": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-win32-arm64-msvc": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.8.tgz", + "integrity": "sha512-QuV4QILyKPfbWHoQKrhXqjiCClx0SxbCTVogkR89BwivekqJMd9UlMxZdoCmwLWutRx4z9KmzQqokvYI5QeepA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-win32-x64-msvc": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.8.tgz", + "integrity": "sha512-UzNS4JtjhZhZ5hRLq7BIUq+4JOwt1ThIKv11CsF1ag2l99f0123XvfEpjczKTaa94nHtjXYc2Mv9TjccBqYOew==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, "node_modules/@nodelib/fs.scandir": { @@ -720,6 +932,17 @@ "@types/unist": "*" } }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/katex": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.14.0.tgz", + "integrity": "sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA==" + }, "node_modules/@types/mdast": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", @@ -733,6 +956,14 @@ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, + "node_modules/@types/nlcst": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-1.0.0.tgz", + "integrity": "sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/node": { "version": "20.2.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", @@ -745,35 +976,12 @@ "integrity": "sha512-4i+Y+O5H80Rh01lY/3Z0hB/UWc4R64ReE83joEpVsIG3iQWpYx66k6pQh1amJNZquKtJQyu/RcfkTtvL0KwssA==", "dev": true }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "peer": true - }, - "node_modules/@types/react": { - "version": "18.2.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.7.tgz", - "integrity": "sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==", - "peer": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, "node_modules/@types/require-from-string": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@types/require-from-string/-/require-from-string-1.2.1.tgz", "integrity": "sha512-mIDK7lTHc0uW67SxPIqkwCrxmdKBV5aAET560hyZnT8c6Ekp9Aah3GPqe8Pl1Yzn/i2NMYmYv+HiMLwjGDCIAQ==", "dev": true }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "peer": true - }, "node_modules/@types/serve-handler": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@types/serve-handler/-/serve-handler-6.1.1.tgz", @@ -803,6 +1011,92 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz", + "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz", + "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.8", + "@typescript-eslint/visitor-keys": "5.59.8", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.8", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz", + "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.8", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -839,6 +1133,53 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ast-module-types": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", + "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", + "dev": true, + "engines": { + "node": ">=12.0" + } + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -853,6 +1194,37 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -872,6 +1244,30 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -880,6 +1276,15 @@ "node": ">= 0.8" } }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -909,6 +1314,18 @@ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cli-spinner": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz", @@ -965,6 +1382,15 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -990,6 +1416,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1016,12 +1456,6 @@ "node": ">= 8" } }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "peer": true - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1050,6 +1484,131 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dependency-tree": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-9.0.0.tgz", + "integrity": "sha512-osYHZJ1fBSon3lNLw70amAXsQ+RGzXsPvk9HbBgTLbp/bQBmpH5mOmsUvqXU+YEWVU0ZLewsmzOET/8jWswjDQ==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^9.0.0", + "typescript": "^4.0.0" + }, + "bin": { + "dependency-tree": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/dependency-tree/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/dependency-tree/node_modules/detective-stylus": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-3.0.0.tgz", + "integrity": "sha512-1xYTzbrduExqMYmte7Qk99IRA3Aa6oV7PYzd+3yDcQXkmENvyGF/arripri6lxRDdNYEb4fZFuHtNRAXbz3iAA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/dependency-tree/node_modules/module-definition": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-4.1.0.tgz", + "integrity": "sha512-rHXi/DpMcD2qcKbPCTklDbX9lBKJrUSl971TW5l6nMpqKCIlzJqmQ8cfEF5M923h2OOLHPDVlh5pJxNyV+AJlw==", + "dev": true, + "dependencies": { + "ast-module-types": "^4.0.0", + "node-source-walk": "^5.0.1" + }, + "bin": { + "module-definition": "bin/cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dependency-tree/node_modules/precinct": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-9.2.1.tgz", + "integrity": "sha512-uzKHaTyiVejWW7VJtHInb9KBUq9yl9ojxXGujhjhDmPon2wgZPBKQIKR+6csGqSlUeGXAA4MEFnU6DesxZib+A==", + "dev": true, + "dependencies": { + "@dependents/detective-less": "^3.0.1", + "commander": "^9.5.0", + "detective-amd": "^4.1.0", + "detective-cjs": "^4.1.0", + "detective-es6": "^3.0.1", + "detective-postcss": "^6.1.1", + "detective-sass": "^4.1.1", + "detective-scss": "^3.0.1", + "detective-stylus": "^3.0.0", + "detective-typescript": "^9.1.1", + "module-definition": "^4.1.0", + "node-source-walk": "^5.0.1" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + } + }, + "node_modules/dependency-tree/node_modules/precinct/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/dependency-tree/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1058,6 +1617,152 @@ "node": ">=6" } }, + "node_modules/detective-amd": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-4.2.0.tgz", + "integrity": "sha512-RbuEJHz78A8nW7CklkqTzd8lDCN42En53dgEIsya0DilpkwslamSZDasLg8dJyxbw46OxhSQeY+C2btdSkCvQQ==", + "dev": true, + "dependencies": { + "ast-module-types": "^4.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^4.1.0", + "node-source-walk": "^5.0.1" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-cjs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-4.1.0.tgz", + "integrity": "sha512-QxzMwt5MfPLwS7mG30zvnmOvHLx5vyVvjsAV6gQOyuMoBR5G1DhS1eJZ4P10AlH+HSnk93mTcrg3l39+24XCtg==", + "dev": true, + "dependencies": { + "ast-module-types": "^4.0.0", + "node-source-walk": "^5.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-es6": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-3.0.1.tgz", + "integrity": "sha512-evPeYIEdK1jK3Oji5p0hX4sPV/1vK+o4ihcWZkMQE6voypSW/cIBiynOLxQk5KOOQbdP8oOAsYqouMTYO5l1sw==", + "dev": true, + "dependencies": { + "node-source-walk": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-less": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", + "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-less/node_modules/node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/detective-postcss": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.3.tgz", + "integrity": "sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==", + "dev": true, + "dependencies": { + "is-url": "^1.2.4", + "postcss": "^8.4.23", + "postcss-values-parser": "^6.0.2" + }, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/detective-sass": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-4.1.3.tgz", + "integrity": "sha512-xGRbwGaGte57gvEqM8B9GDiURY3El/H49vA6g9wFkxq9zalmTlTAuqWu+BsH0iwonGPruLt55tZZDEZqPc6lag==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-scss": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-3.1.1.tgz", + "integrity": "sha512-FWkfru1jZBhUeuBsOeGKXKAVDrzYFSQFK2o2tuG/nCCFQ0U/EcXC157MNAcR5mmj+mCeneZzlkBOFJTesDjrww==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-stylus": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-2.0.1.tgz", + "integrity": "sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/detective-typescript": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-9.1.1.tgz", + "integrity": "sha512-Uc1yVutTF0RRm1YJ3g//i1Cn2vx1kwHj15cnzQP6ff5koNzQ0idc1zAC73ryaWEulA0ElRXFTq6wOqe8vUQ3MA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "^5.55.0", + "ast-module-types": "^4.0.0", + "node-source-walk": "^5.0.1", + "typescript": "^4.9.5" + }, + "engines": { + "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + } + }, + "node_modules/detective-typescript/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -1087,6 +1792,30 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/enhanced-resolve": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz", + "integrity": "sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/esbuild": { "version": "0.17.18", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", @@ -1140,11 +1869,86 @@ "node": ">=0.8.0" } }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -1173,6 +1977,12 @@ "node": ">=8.6.0" } }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fast-url-parser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", @@ -1189,6 +1999,18 @@ "reusify": "^1.0.4" } }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -1203,6 +2025,52 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/filing-cabinet": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.3.1.tgz", + "integrity": "sha512-renEK4Hh6DUl9Vl22Y3cxBq1yh8oNvbAdXnhih0wVpmea+uyKjC9K4QeRjUaybIiIewdzfum+Fg15ZqJ/GyCaA==", + "dev": true, + "dependencies": { + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.3", + "enhanced-resolve": "^5.8.3", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.1", + "resolve": "^1.21.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "tsconfig-paths": "^3.10.1", + "typescript": "^3.9.7" + }, + "bin": { + "filing-cabinet": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/filing-cabinet/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/filing-cabinet/node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1214,6 +2082,13 @@ "node": ">=8" } }, + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -1229,6 +2104,39 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-amd-module-type": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-4.1.0.tgz", + "integrity": "sha512-0e/eK6vTGCnSfQ6eYs3wtH05KotJYIP7ZIZEueP/KlA+0dIAEs8bYFvOd/U56w1vfjhJqBagUxVMyy9Tr/cViQ==", + "dev": true, + "dependencies": { + "ast-module-types": "^4.0.0", + "node-source-walk": "^5.0.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -1237,6 +2145,12 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, "node_modules/glob": { "version": "10.2.6", "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", @@ -1287,6 +2201,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1295,16 +2256,12 @@ "node": ">=8" } }, - "node_modules/hast-to-hyperscript": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-10.0.3.tgz", - "integrity": "sha512-NuBoUStp4fRwmvlfbidlEiRSTk0gSHm+97q4Xn9CJ10HO+Py7nlTuDi6RhM1qLOureukGrCXLG7AAxaGqqyslQ==", + "node_modules/hast-util-from-dom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-4.2.0.tgz", + "integrity": "sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ==", "dependencies": { - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.1", + "hastscript": "^7.0.0", "web-namespaces": "^2.0.0" }, "funding": { @@ -1312,10 +2269,118 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "node_modules/hast-util-from-html": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-1.0.2.tgz", + "integrity": "sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^7.0.0", + "parse5": "^7.0.0", + "vfile": "^5.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html-isomorphic": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-1.0.0.tgz", + "integrity": "sha512-Yu480AKeOEN/+l5LA674a+7BmIvtDj24GvOt7MtQWuhzUwlaaRWdEPXAh3Qm5vhuthpAipFb2vTetKXWOjmTvw==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-dom": "^4.0.0", + "hast-util-from-html": "^1.0.0", + "unist-util-remove-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", + "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "hastscript": "^7.0.0", + "property-information": "^6.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", + "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", + "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz", + "integrity": "sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", + "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "unist-util-find-after": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", + "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -1332,6 +2397,26 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -1340,10 +2425,33 @@ "node": ">= 4" } }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, "node_modules/is-buffer": { "version": "2.0.5", @@ -1367,6 +2475,26 @@ "node": ">=4" } }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1394,6 +2522,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -1402,6 +2539,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -1413,6 +2559,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", + "integrity": "sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1435,6 +2626,53 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-Xk9C6oGKRwJTfqfIbtr0Kes9OSv6IFsuhFGc7tW4urlpMJtuh+7YhzU6YEG9n8gmWKcMAFzkp7nr+r69kV0zrA==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -1443,6 +2681,35 @@ "node": ">=6" } }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -1460,6 +2727,78 @@ "node": "14 || >=16.14" } }, + "node_modules/madge": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/madge/-/madge-6.0.0.tgz", + "integrity": "sha512-dddxP62sj5pL+l9MJnq9C34VFqmRj+2+uSOdn/7lOTSliLRH0WyQ8uCEF3VxkPRNOBvMKK2xumnIE15HRSAL9A==", + "dev": true, + "dependencies": { + "chalk": "^4.1.1", + "commander": "^7.2.0", + "commondir": "^1.0.1", + "debug": "^4.3.1", + "dependency-tree": "^9.0.0", + "detective-amd": "^4.0.1", + "detective-cjs": "^4.0.0", + "detective-es6": "^3.0.0", + "detective-less": "^1.0.2", + "detective-postcss": "^6.1.0", + "detective-sass": "^4.0.1", + "detective-scss": "^3.0.0", + "detective-stylus": "^2.0.1", + "detective-typescript": "^9.0.0", + "ora": "^5.4.1", + "pluralize": "^8.0.0", + "precinct": "^8.1.0", + "pretty-ms": "^7.0.1", + "rc": "^1.2.7", + "stream-to-array": "^2.3.0", + "ts-graphviz": "^1.5.0", + "typescript": "^3.9.5", + "walkdir": "^0.4.1" + }, + "bin": { + "madge": "bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/pahen" + } + }, + "node_modules/madge/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/madge/node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/mdast-util-definitions": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", @@ -1501,6 +2840,45 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-find-and-replace": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", + "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-from-markdown": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", @@ -1524,6 +2902,122 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-frontmatter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz", + "integrity": "sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-extension-frontmatter": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", + "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "dependencies": { + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", + "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", + "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", + "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-math": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-2.0.2.tgz", + "integrity": "sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-phrasing": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", @@ -1716,6 +3210,158 @@ "uvu": "^0.5.0" } }, + "node_modules/micromark-extension-frontmatter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.0.tgz", + "integrity": "sha512-0nLelmvXR5aZ+F2IL6/Ed4cDnHLpL/VD/EELKuclsTWHrLI8UgxGHEmeoumeX2FXiM6z2WrBIOEcbKUZR8RYNg==", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", + "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.4.tgz", + "integrity": "sha512-WCssN+M9rUyfHN5zPBn3/f0mIA7tqArHL/EKbv3CZK+LT2rG77FEikIQEqBkv46fOqXQK4NEW/Pc7Z27gshpeg==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.0.tgz", + "integrity": "sha512-RWYce7j8+c0n7Djzv5NzGEGitNNYO3uj+h/XYMdS/JinH1Go+/Qkomg/rfxExFzYTiydaV6GLeffGO5qcJbMPA==", + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.5.tgz", + "integrity": "sha512-X0oI5eYYQVARhiNfbETy7BfLSmSilzN1eOuoRnrf9oUNsPRrWOAe9UqSizgw1vNxQBfOwL+n2610S3bYjVNi7w==", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.6.tgz", + "integrity": "sha512-92pq7Q+T+4kXH4M6kL+pc8WU23Z9iuhcqmtYFWdFWjm73ZscFpH2xE28+XFpGWlvgq3LUwcN0XC0PGCicYFpgA==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", + "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.4.tgz", + "integrity": "sha512-9XlIUUVnYXHsFF2HZ9jby4h3npfX10S1coXTnV035QGPgrtNYQq3J6IfIvcCIUAJrrqBVi5BqA/LmaOMJqPwMQ==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-2.1.1.tgz", + "integrity": "sha512-4rTUTTwHuXNL/sHy/LpmTEku+YOJIK4VYdILxv8bRI4unSpfdd/UzOv/DBV2KqgBeGQiyA3vmsARrKS7WQWwxw==", + "dependencies": { + "@types/katex": "^0.16.0", + "katex": "^0.16.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math/node_modules/@types/katex": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.0.tgz", + "integrity": "sha512-hz+S3nV6Mym5xPbT9fnO8dDhBFQguMYpY0Ipxv06JMi1ORgnEM4M1ymWDUhUNer3ElLmT583opRo4RzxKmh9jw==" + }, "node_modules/micromark-factory-destination": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", @@ -2102,6 +3748,15 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", @@ -2116,6 +3771,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", @@ -2124,6 +3788,110 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/module-definition": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.4.0.tgz", + "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" + }, + "bin": { + "module-definition": "bin/cli.js" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/module-definition/node_modules/ast-module-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", + "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/module-definition/node_modules/node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/module-lookup-amd": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", + "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", + "dev": true, + "dependencies": { + "commander": "^2.8.1", + "debug": "^4.1.0", + "glob": "^7.1.6", + "requirejs": "^2.3.5", + "requirejs-config-file": "^4.0.0" + }, + "bin": { + "lookup-amd": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/module-lookup-amd/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/module-lookup-amd/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/module-lookup-amd/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/module-lookup-amd/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -2145,6 +3913,112 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nlcst-to-string": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.1.tgz", + "integrity": "sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==", + "dependencies": { + "@types/nlcst": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-source-walk": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.2.tgz", + "integrity": "sha512-Y4jr/8SRS5hzEdZ7SGuvZGwfORvNsSsNRwDXx5WisiqzsVfeftDvRgfeqWNgZvWSJbgubTRVRYBzK6UO+ErqjA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.21.4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -2153,6 +4027,49 @@ "node": ">=0.10.0" } }, + "node_modules/parse-latin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-5.0.1.tgz", + "integrity": "sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==", + "dependencies": { + "nlcst-to-string": "^3.0.0", + "unist-util-modify-children": "^3.0.0", + "unist-util-visit-children": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -2166,6 +4083,12 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, "node_modules/path-scurry": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", @@ -2194,6 +4117,12 @@ "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -2205,6 +4134,60 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", + "dev": true, + "dependencies": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.2.9" + } + }, "node_modules/preact": { "version": "10.15.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", @@ -2225,11 +4208,335 @@ "preact": ">=10" } }, + "node_modules/precinct": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.3.1.tgz", + "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.3", + "detective-amd": "^3.1.0", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.1", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/precinct/node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/precinct/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/precinct/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/precinct/node_modules/ast-module-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", + "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/precinct/node_modules/detective-amd": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.2.tgz", + "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^3.0.0", + "node-source-walk": "^4.2.0" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-cjs": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.3.tgz", + "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-es6": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.2.tgz", + "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", + "dev": true, + "dependencies": { + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-postcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", + "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "is-url": "^1.2.4", + "postcss": "^8.1.7", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/precinct/node_modules/detective-sass": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.2.tgz", + "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-scss": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.2.tgz", + "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-stylus": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.3.tgz", + "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", + "dev": true + }, + "node_modules/precinct/node_modules/detective-typescript": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.2.tgz", + "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "^4.33.0", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.10" + }, + "engines": { + "node": "^10.13 || >=12.0.0" + } + }, + "node_modules/precinct/node_modules/detective-typescript/node_modules/ast-module-types": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + }, + "node_modules/precinct/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/precinct/node_modules/get-amd-module-type": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", + "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.2.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/precinct/node_modules/node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/precinct/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/precinct/node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/pretty-format": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pretty-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", @@ -2271,6 +4578,12 @@ } ] }, + "node_modules/quote-unquote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true + }, "node_modules/range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -2279,23 +4592,77 @@ "node": ">= 0.6" } }, - "node_modules/rehype-react": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/rehype-react/-/rehype-react-7.2.0.tgz", - "integrity": "sha512-MHYyCHka+3TtzBMKtcuvVOBAbI1HrfoYA+XH9m7/rlrQQATCPwtJnPdkxKKcIGF8vc9mxqQja9r9f+FHItQeWg==", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rehype-katex": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-6.0.3.tgz", + "integrity": "sha512-ByZlRwRUcWegNbF70CVRm2h/7xy7jQ3R9LaY4VVSvjnoVWwWVhNL60DiZsBpC5tSzYQOCvDbzncIpIjPZWodZA==", "dependencies": { - "@mapbox/hast-util-table-cell-style": "^0.2.0", "@types/hast": "^2.0.0", - "hast-to-hyperscript": "^10.0.0", - "hast-util-whitespace": "^2.0.0", - "unified": "^10.0.0" + "@types/katex": "^0.14.0", + "hast-util-from-html-isomorphic": "^1.0.0", + "hast-util-to-text": "^3.1.0", + "katex": "^0.16.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-katex/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" }, - "peerDependencies": { - "@types/react": ">=17" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-katex/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/remark": { @@ -2313,6 +4680,51 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-frontmatter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz", + "integrity": "sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-frontmatter": "^1.0.0", + "micromark-extension-frontmatter": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-math": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-5.1.1.tgz", + "integrity": "sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-math": "^2.0.0", + "micromark-extension-math": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-parse": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", @@ -2342,6 +4754,46 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-smartypants": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-2.0.0.tgz", + "integrity": "sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==", + "dependencies": { + "retext": "^8.1.0", + "retext-smartypants": "^5.1.0", + "unist-util-visit": "^4.1.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-smartypants/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-stringify": { "version": "10.0.3", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.3.tgz", @@ -2372,6 +4824,163 @@ "node": ">=0.10.0" } }, + "node_modules/requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "dev": true, + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dependency-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", + "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/retext": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-8.1.0.tgz", + "integrity": "sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==", + "dependencies": { + "@types/nlcst": "^1.0.0", + "retext-latin": "^3.0.0", + "retext-stringify": "^3.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-3.1.0.tgz", + "integrity": "sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==", + "dependencies": { + "@types/nlcst": "^1.0.0", + "parse-latin": "^5.0.0", + "unherit": "^3.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-5.2.0.tgz", + "integrity": "sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==", + "dependencies": { + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-3.1.0.tgz", + "integrity": "sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==", + "dependencies": { + "@types/nlcst": "^1.0.0", + "nlcst-to-string": "^3.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -2439,11 +5048,91 @@ "node": ">=6" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sass-lookup": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", + "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", + "dev": true, + "dependencies": { + "commander": "^2.16.0" + }, + "bin": { + "sass-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/sass-lookup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/serve-handler": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", @@ -2520,6 +5209,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", @@ -2529,6 +5237,29 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", + "dev": true, + "dependencies": { + "any-promise": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2556,6 +5287,20 @@ "node": ">=8" } }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2579,14 +5324,54 @@ "node": ">=8" } }, - "node_modules/style-to-object": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz", - "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==", - "dependencies": { - "inline-style-parser": "0.1.1" + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" } }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylus-lookup": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", + "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", + "dev": true, + "dependencies": { + "commander": "^2.8.1", + "debug": "^4.1.0" + }, + "bin": { + "stylus-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/stylus-lookup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2598,6 +5383,27 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -2651,6 +5457,64 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-graphviz": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-1.7.0.tgz", + "integrity": "sha512-QOQI0L4J+n5e3yxSyd/lF4teI78o+p72i+jM8whdLNW/UZYlhlBoac9indtHAFW6O/7xBpve1S/yK1qWeVttkw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -2675,6 +5539,15 @@ "node": ">=12.20" } }, + "node_modules/unherit": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-3.0.1.tgz", + "integrity": "sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -2693,6 +5566,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, + "node_modules/unist-util-find-after": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz", + "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-generated": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", @@ -2714,6 +5606,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-modify-children": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-3.1.1.tgz", + "integrity": "sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==", + "dependencies": { + "@types/unist": "^2.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-position": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", @@ -2726,6 +5631,46 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-remove-position": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz", + "integrity": "sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-stringify-position": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", @@ -2738,26 +5683,23 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "node_modules/unist-util-visit-children": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-2.0.2.tgz", + "integrity": "sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==", "dependencies": { - "unist-util-visit-parents": "^2.0.0" + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit-parents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", - "dependencies": { - "unist-util-is": "^3.0.0" - } - }, - "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true }, "node_modules/uvu": { "version": "0.5.6", @@ -2791,6 +5733,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vfile-message": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", @@ -2804,6 +5759,24 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/walkdir": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", @@ -2827,6 +5800,15 @@ "node": ">= 8" } }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -2857,6 +5839,12 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -2865,6 +5853,12 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index 15b4a57b..30bccb18 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@jackyzha0/quartz", "description": "๐ŸŒฑ publish your digital garden and notes as a website", - "version": "4.1.0", + "version": "4.0.3", "author": "jackyzha0 ", "license": "MIT", "homepage": "https://quartz.jzhao.xyz", @@ -9,6 +9,10 @@ "type": "git", "url": "https://github.com/jackyzha0/quartz.git" }, + "scripts": { + "typecheck": "tsc --noEmit", + "cycle-detect": "madge --circular --extensions ts quartz/index.ts" + }, "keywords": [ "site generator", "ssg", @@ -22,19 +26,25 @@ }, "dependencies": { "@inquirer/prompts": "^1.0.3", + "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", "cli-spinner": "^0.2.10", - "esbuild": "0.17.18", "globby": "^13.1.4", + "gray-matter": "^4.0.3", + "hast-util-to-string": "^2.0.0", "preact": "^10.14.1", "preact-render-to-string": "^6.0.3", "pretty-time": "^1.1.0", - "rehype-react": "^7.2.0", + "rehype-katex": "^6.0.3", "remark": "^14.0.2", + "remark-frontmatter": "^4.0.1", + "remark-gfm": "^3.0.1", + "remark-math": "^5.1.1", "remark-parse": "^10.0.1", "remark-rehype": "^10.1.0", + "remark-smartypants": "^2.0.0", "require-from-string": "^2.0.2", - "rimraf": "^5.0.0", + "rimraf": "^5.0.1", "serve-handler": "^6.1.5", "to-vfile": "^7.2.4", "unified": "^10.1.2", @@ -44,12 +54,13 @@ "devDependencies": { "@types/cli-spinner": "^0.2.1", "@types/hast": "^2.3.4", + "@types/node": "^20.1.2", "@types/pretty-time": "^1.1.2", "@types/require-from-string": "^1.2.1", "@types/serve-handler": "^6.1.1", "@types/yargs": "^17.0.24", - "@types/node": "^20.1.2", - "esbuild": "0.17.18", + "esbuild": "^0.17.18", + "madge": "^6.0.0", "typescript": "^5.0.4" } } diff --git a/quartz.config.ts b/quartz.config.ts new file mode 100644 index 00000000..9fba5c81 --- /dev/null +++ b/quartz.config.ts @@ -0,0 +1,57 @@ +import { buildQuartz } from "./quartz" +import { ContentPage, CreatedModifiedDate, Description, FrontMatter, GitHubFlavoredMarkdown, Katex, RemoveDrafts } from "./quartz/plugins" + +export default buildQuartz({ + configuration: { + siteTitle: "๐Ÿชด Quartz 4.0", + prettyLinks: true, + markdownLinkResolution: 'absolute', + enableLatex: true, + enableSPA: true, + ignorePatterns: [], + }, + plugins: { + transformers: [ + new FrontMatter(), + new GitHubFlavoredMarkdown(), + new Katex(), + new Description(), + new CreatedModifiedDate() + ], + filters: [ + new RemoveDrafts() + ], + emitters: [ + new ContentPage() + ] + }, + theme: { + typography: { // loaded from Google Fonts + header: "Schibsted Grotesk", + body: "Source Sans Pro", + code: "IBM Plex Mono", + }, + colors: { + lightMode: { + light: '#faf8f8', + lightgray: '#e8e8e8', + gray: '#dadada', + darkgray: '#4e4e4e', + dark: '#141021', + secondary: '#284b63', + tertiary: '#84a59d', + highlight: 'rgba(143, 159, 169, 0.15)', + }, + darkMode: { + light: '#1e1e21', + lightgray: '#292629', + gray: '#343434', + darkgray: '#d4d4d4', + dark: '#fbfffe', + secondary: '#7b97aa', + tertiary: '#84a59d', + highlight: 'rgba(143, 159, 169, 0.15)', + }, + } + } +}) diff --git a/quartz/bootstrap.mjs b/quartz/bootstrap.mjs index 0f66ea27..a8c9bca3 100755 --- a/quartz/bootstrap.mjs +++ b/quartz/bootstrap.mjs @@ -1,2 +1,80 @@ #!/usr/bin/env node -console.log('hello world') +import { readFileSync } from 'fs' +import yargs from 'yargs' +import { hideBin } from 'yargs/helpers' +import esbuild from 'esbuild' +import chalk from 'chalk' +import requireFromString from 'require-from-string' + +const fp = "./quartz.config.ts" +const { version } = JSON.parse(readFileSync("./package.json").toString()) + +export const BuildArgv = { + output: { + string: true, + alias: ['o'], + default: 'public', + describe: 'output folder for files' + }, + clean: { + boolean: true, + default: false, + describe: 'clean the output folder before building' + }, + serve: { + boolean: true, + default: false, + describe: 'run a local server to preview your Quartz' + }, + port: { + number: true, + default: 8080, + describe: 'port to serve Quartz on' + }, + directory: { + string: true, + alias: ['d'], + default: 'content', + describe: 'directory to look for content files' + }, + verbose: { + boolean: true, + alias: ['v'], + default: false, + describe: 'print out extra logging information' + } +} + +yargs(hideBin(process.argv)) + .scriptName("quartz") + .version(version) + .usage('$0 [args]') + .command('build', 'Build Quartz into a bundle of static HTML files', BuildArgv, async (argv) => { + const out = await esbuild.build({ + entryPoints: [fp], + write: false, + minifySyntax: true, + minifyWhitespace: true, + bundle: true, + keepNames: true, + platform: "node", + format: "cjs", + jsx: "automatic", + jsxImportSource: "preact", + external: ["@napi-rs/simple-git"] + }).catch(err => { + console.error(`${chalk.red("Couldn't parse Quartz configuration:")} ${fp}`) + console.log(`Reason: ${chalk.grey(err)}`) + console.log("hint: make sure all the required dependencies are installed (run `npm install`)") + process.exit(1) + }) + + const mod = out.outputFiles[0].text + const init = requireFromString(mod, fp).default + init(argv, version) + }) + .showHelpOnFail(false) + .help() + .strict() + .demandCommand() + .argv diff --git a/quartz/cfg.ts b/quartz/cfg.ts new file mode 100644 index 00000000..44999aba --- /dev/null +++ b/quartz/cfg.ts @@ -0,0 +1,40 @@ +import { PluginTypes } from "./plugins" + +export interface ColorScheme { + light: string, + lightgray: string, + gray: string, + darkgray: string, + dark: string, + secondary: string, + tertiary: string, + highlight: string +} + +export interface QuartzConfig { + configuration: { + siteTitle: string, + /** How to resolve Markdown paths */ + markdownLinkResolution: 'absolute' | 'relative' + /** Strips folders from a link so that it looks nice */ + prettyLinks: boolean + /** Whether to process and render latex (increases bundle size) */ + enableLatex: boolean, + /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ + enableSPA: boolean, + /** Glob patterns to not search */ + ignorePatterns: string[], + }, + plugins: PluginTypes, + theme: { + typography: { + header: string, + body: string, + code: string + }, + colors: { + lightMode: ColorScheme, + darkMode: ColorScheme + } + } +} diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx new file mode 100644 index 00000000..f41bdb64 --- /dev/null +++ b/quartz/components/Head.tsx @@ -0,0 +1,28 @@ +import { StaticResources } from "../resources" + +interface Props { + title: string, + description: string, + externalResources: StaticResources, + baseDir: string +} + +export default function({ title, description, externalResources, baseDir }: Props) { + const { css, js } = externalResources + const iconPath = baseDir + "/static/icon.png" + const ogImagePath = baseDir + "/static/og-image.png" + return + {title} + + + + + + + + + + {css.map(href => )} + {js.filter(resource => resource.loadTime === "beforeDOMReady").map(resource => + } +} + +export interface StaticResources { + css: string[], + js: JSResource[] +} From 95cb3efe3302181503e16b568585c3f1a84efa1b Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Fri, 16 Jun 2023 19:41:59 -0700 Subject: [PATCH 025/197] modern toc tweaks --- index.d.ts | 15 +++- quartz.config.ts | 20 ++++- quartz/build.ts | 1 + quartz/components/Body.tsx | 1 + quartz/components/TableOfContents.tsx | 75 +++++++++++++------ quartz/components/scripts/clipboard.inline.ts | 3 - quartz/components/scripts/spa.inline.ts | 9 ++- quartz/components/styles/legacyToc.scss | 27 +++++++ quartz/components/styles/toc.scss | 22 ++++-- quartz/path.ts | 22 ++++-- quartz/plugins/emitters/aliases.ts | 53 +++++++++++++ quartz/plugins/emitters/cname.ts | 25 +++++++ quartz/plugins/emitters/contentIndex.ts | 72 ++++++++++++++++++ quartz/plugins/emitters/contentPage.tsx | 13 ++-- quartz/plugins/emitters/index.ts | 3 + quartz/plugins/types.ts | 4 +- quartz/processors/emit.ts | 11 +-- 17 files changed, 318 insertions(+), 58 deletions(-) create mode 100644 quartz/components/styles/legacyToc.scss create mode 100644 quartz/plugins/emitters/aliases.ts create mode 100644 quartz/plugins/emitters/cname.ts create mode 100644 quartz/plugins/emitters/contentIndex.ts diff --git a/index.d.ts b/index.d.ts index a74b5f59..ec4d32aa 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,4 +1,17 @@ declare module '*.scss' { - const content: string + const content: string export = content } + +// dom custom event +interface CustomEventMap { + "spa_nav": CustomEvent<{ url: string }>; +} + +declare global { + interface Document { + addEventListener(type: K, + listener: (this: Document, ev: CustomEventMap[K]) => void): void; + dispatchEvent(ev: CustomEventMap[K]): void; + } +} diff --git a/quartz.config.ts b/quartz.config.ts index 5868449e..0c77c901 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -25,7 +25,7 @@ const config: QuartzConfig = { highlight: 'rgba(143, 159, 169, 0.15)', }, darkMode: { - light: '#1e1e21', + light: '#161618', lightgray: '#292629', gray: '#343434', darkgray: '#d4d4d4', @@ -41,7 +41,7 @@ const config: QuartzConfig = { transformers: [ Plugin.FrontMatter(), Plugin.Description(), - Plugin.TableOfContents({ showByDefault: true }), + Plugin.TableOfContents(), Plugin.CreatedModifiedDate({ priority: ['frontmatter', 'filesystem'] // you can add 'git' here for last modified from Git but this makes the build slower }), @@ -55,11 +55,23 @@ const config: QuartzConfig = { Plugin.RemoveDrafts() ], emitters: [ + Plugin.AliasRedirects(), Plugin.ContentPage({ head: Component.Head(), header: [Component.PageTitle(), Component.Spacer(), Component.Darkmode()], - body: [Component.ArticleTitle(), Component.ReadingTime(), Component.TagList(), Component.TableOfContents(), Component.Content()] - }) + body: [ + Component.ArticleTitle(), + Component.ReadingTime(), + Component.TagList(), + Component.TableOfContents(), + Component.Content() + ], + left: [], + right: [], + footer: [] + }), + Plugin.ContentIndex(), // you can exclude this if you don't plan on using popovers, graph, or backlinks, + Plugin.CNAME({ domain: "yoursite.xyz" }) // set this to your final deployed domain ] }, } diff --git a/quartz/build.ts b/quartz/build.ts index 60a1a516..b96bf01c 100644 --- a/quartz/build.ts +++ b/quartz/build.ts @@ -57,6 +57,7 @@ export default async function buildQuartz(argv: Argv, version: string) { if (argv.serve) { const server = http.createServer(async (req, res) => { + console.log(chalk.grey(`[req] ${req.url}`)) return serveHandler(req, res, { public: output, directoryListing: false, diff --git a/quartz/components/Body.tsx b/quartz/components/Body.tsx index 0130828d..f10cf3ac 100644 --- a/quartz/components/Body.tsx +++ b/quartz/components/Body.tsx @@ -1,3 +1,4 @@ +// @ts-ignore import clipboardScript from './scripts/clipboard.inline' import clipboardStyle from './styles/clipboard.scss' import { QuartzComponentConstructor, QuartzComponentProps } from "./types" diff --git a/quartz/components/TableOfContents.tsx b/quartz/components/TableOfContents.tsx index 19f26ef4..afb83887 100644 --- a/quartz/components/TableOfContents.tsx +++ b/quartz/components/TableOfContents.tsx @@ -1,38 +1,65 @@ import { QuartzComponentConstructor, QuartzComponentProps } from "./types" -import style from "./styles/toc.scss" - +import legacyStyle from "./styles/legacyToc.scss" +import modernStyle from "./styles/toc.scss" interface Options { - layout: 'modern' | 'quartz-3' + layout: 'modern' | 'legacy' } const defaultOptions: Options = { - layout: 'quartz-3' + layout: 'modern' } export default ((opts?: Partial) => { const layout = opts?.layout ?? defaultOptions.layout - if (layout === "modern") { - return function() { - return null // TODO (make this look like nextra) - } - } else { - function TableOfContents({ fileData }: QuartzComponentProps) { - if (!fileData.toc) { - return null - } - - return

-

Table of Contents

-
-
+ function TableOfContents({ fileData }: QuartzComponentProps) { + if (!fileData.toc) { + return null } - TableOfContents.css = style - return TableOfContents + return
+

Table of Contents

+ +
} + + TableOfContents.css = layout === "modern" ? modernStyle : legacyStyle + + if (layout === "modern") { + TableOfContents.afterDOMLoaded = ` +const bufferPx = 150 +const observer = new IntersectionObserver(entries => { + for (const entry of entries) { + const slug = entry.target.id + const tocEntryElement = document.querySelector(\`a[data-for="$\{slug\}"]\`) + const windowHeight = entry.rootBounds?.height + if (windowHeight && tocEntryElement) { + if (entry.boundingClientRect.y < windowHeight) { + tocEntryElement.classList.add("in-view") + } else { + tocEntryElement.classList.remove("in-view") + } + } + } +}) + +function init() { + const headers = document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]") + headers.forEach(header => observer.observe(header)) +} + +init() + +document.addEventListener("spa_nav", (e) => { + observer.disconnect() + init() +}) +` + } + + return TableOfContents }) satisfies QuartzComponentConstructor diff --git a/quartz/components/scripts/clipboard.inline.ts b/quartz/components/scripts/clipboard.inline.ts index efddfa6f..8d0758a7 100644 --- a/quartz/components/scripts/clipboard.inline.ts +++ b/quartz/components/scripts/clipboard.inline.ts @@ -1,6 +1,3 @@ -const description = "Initialize copy for codeblocks" -export default description - const svgCopy = '' const svgCheck = diff --git a/quartz/components/scripts/spa.inline.ts b/quartz/components/scripts/spa.inline.ts index 2063a15c..da347009 100644 --- a/quartz/components/scripts/spa.inline.ts +++ b/quartz/components/scripts/spa.inline.ts @@ -29,6 +29,11 @@ const getOpts = ({ target }: Event): { url: URL, scroll?: boolean } | undefined return { url: new URL(href), scroll: 'routerNoscroll' in a.dataset ? false : undefined } } +function notifyNav(slug: string) { + const event = new CustomEvent("spa_nav", { detail: { slug } }) + document.dispatchEvent(event) +} + let p: DOMParser async function navigate(url: URL, isBack: boolean = false) { p = p || new DOMParser() @@ -64,9 +69,7 @@ async function navigate(url: URL, isBack: boolean = false) { const elementsToAdd = html.head.querySelectorAll(':not([spa-preserve])') elementsToAdd.forEach(el => document.head.appendChild(el)) - if (!document.activeElement?.closest('[data-persist]')) { - document.body.focus() - } + notifyNav(document.body.dataset.slug!) delete announcer.dataset.persist } diff --git a/quartz/components/styles/legacyToc.scss b/quartz/components/styles/legacyToc.scss new file mode 100644 index 00000000..33b9cca3 --- /dev/null +++ b/quartz/components/styles/legacyToc.scss @@ -0,0 +1,27 @@ +details.toc { + & summary { + cursor: pointer; + + &::marker { + color: var(--dark); + } + + & > * { + padding-left: 0.25rem; + display: inline-block; + margin: 0; + } + } + + & ul { + list-style: none; + margin: 0.5rem 1.25rem; + padding: 0; + } + + @for $i from 1 through 6 { + & .depth-#{$i} { + padding-left: calc(1rem * #{$i}); + } + } +} diff --git a/quartz/components/styles/toc.scss b/quartz/components/styles/toc.scss index 33b9cca3..3003f40f 100644 --- a/quartz/components/styles/toc.scss +++ b/quartz/components/styles/toc.scss @@ -2,24 +2,36 @@ details.toc { & summary { cursor: pointer; - &::marker { - color: var(--dark); + list-style: none; + &::marker, &::-webkit-details-marker { + display: none; } & > * { - padding-left: 0.25rem; display: inline-block; margin: 0; } + + & > h3 { + font-size: 1rem; + } } & ul { list-style: none; - margin: 0.5rem 1.25rem; + margin: 0.5rem 0; padding: 0; + & > li > a { + color: var(--dark); + opacity: 0.35; + transition: 0.5s ease opacity; + &.in-view { + opacity: 0.75; + } + } } - @for $i from 1 through 6 { + @for $i from 0 through 6 { & .depth-#{$i} { padding-left: calc(1rem * #{$i}); } diff --git a/quartz/path.ts b/quartz/path.ts index 87f1a9d6..4efd7480 100644 --- a/quartz/path.ts +++ b/quartz/path.ts @@ -5,6 +5,21 @@ function slugSegment(s: string): string { return s.replace(/\s/g, '-') } +export function trimPathSuffix(fp: string): string { + let [cleanPath, anchor] = fp.split("#", 2) + anchor = anchor === undefined ? "" : "#" + anchor + + if (cleanPath.endsWith("index")) { + cleanPath = cleanPath.slice(0, -"index".length) + } + + if (cleanPath === "") { + cleanPath = "./" + } + + return cleanPath + anchor +} + export function slugify(s: string): string { const [fp, anchor] = s.split("#", 2) const sluggedAnchor = anchor === undefined ? "" : "#" + slugAnchor(anchor) @@ -19,12 +34,9 @@ export function slugify(s: string): string { // resolve /a/b/c to ../../ export function resolveToRoot(slug: string): string { - let fp = slug - if (fp.endsWith("index")) { - fp = fp.slice(0, -"index".length) - } + let fp = trimPathSuffix(slug) - if (fp === "") { + if (fp === "./") { return "." } diff --git a/quartz/plugins/emitters/aliases.ts b/quartz/plugins/emitters/aliases.ts new file mode 100644 index 00000000..c9a019ba --- /dev/null +++ b/quartz/plugins/emitters/aliases.ts @@ -0,0 +1,53 @@ +import { relativeToRoot } from "../../path" +import { QuartzEmitterPlugin } from "../types" +import path from 'path' + +export const AliasRedirects: QuartzEmitterPlugin = () => ({ + name: "AliasRedirects", + getQuartzComponents() { + return [] + }, + async emit(contentFolder, _cfg, content, _resources, emit): Promise { + const fps: string[] = [] + + for (const [_tree, file] of content) { + const ogSlug = file.data.slug! + const dir = path.relative(contentFolder, file.dirname ?? contentFolder) + + let aliases: string[] = [] + if (file.data.frontmatter?.aliases) { + aliases = file.data.frontmatter?.aliases + } else if (file.data.frontmatter?.alias) { + aliases = [file.data.frontmatter?.alias] + } + + for (const alias of aliases) { + const slug = alias.startsWith("/") + ? alias + : path.posix.join(dir, alias) + + const fp = slug + ".html" + const redirUrl = relativeToRoot(slug, ogSlug) + await emit({ + content: ` + + + + ${ogSlug} + + + + + + + `, + slug, + ext: ".html", + }) + + fps.push(fp) + } + } + return fps + } +}) diff --git a/quartz/plugins/emitters/cname.ts b/quartz/plugins/emitters/cname.ts new file mode 100644 index 00000000..c783dfb6 --- /dev/null +++ b/quartz/plugins/emitters/cname.ts @@ -0,0 +1,25 @@ +import { QuartzEmitterPlugin } from "../types" + +interface Options { + domain: string +} + +export const CNAME: QuartzEmitterPlugin = (opts?: Options) => ({ + name: "CNAME", + getQuartzComponents() { + return [] + }, + async emit(_contentFolder, _cfg, _content, _resources, emit): Promise { + const slug = "CNAME" + + if (opts?.domain) { + await emit({ + content: opts?.domain, + slug, + ext: "", + }) + } + + return ["CNAME"] + } +}) diff --git a/quartz/plugins/emitters/contentIndex.ts b/quartz/plugins/emitters/contentIndex.ts new file mode 100644 index 00000000..8ee8a9ac --- /dev/null +++ b/quartz/plugins/emitters/contentIndex.ts @@ -0,0 +1,72 @@ +import { visit } from "unist-util-visit" +import { QuartzEmitterPlugin } from "../types" +import { Element } from "hast" +import path from "path" +import { trimPathSuffix } from "../../path" + +interface Options { + indexAnchorLinks: boolean, + indexExternalLinks: boolean, +} + +const defaultOptions: Options = { + indexAnchorLinks: false, + indexExternalLinks: false, +} + +type ContentIndex = Map + +export const ContentIndex: QuartzEmitterPlugin = (userOpts) => { + const opts = { ...userOpts, ...defaultOptions } + return { + name: "ContentIndex", + async emit(_contentDir, _cfg, content, _resources, emit) { + const fp = "contentIndex" + const linkIndex: ContentIndex = new Map() + for (const [tree, file] of content) { + let slug = trimPathSuffix(file.data.slug!) + + const outgoing: Set = new Set() + visit(tree, 'element', (node: Element) => { + if (node.tagName === 'a' && node.properties && typeof node.properties.href === 'string') { + let dest = node.properties.href + if (dest.startsWith(".")) { + const normalizedPath = path.normalize(path.join(slug, dest)) + dest = trimPathSuffix(normalizedPath) + outgoing.add(dest) + } else if (dest.startsWith("#")) { + if (opts.indexAnchorLinks) { + outgoing.add(dest) + } + } else { + if (opts.indexExternalLinks) { + outgoing.add(dest) + } + } + } + }) + + linkIndex.set(slug, { + title: file.data.frontmatter?.title!, + links: [...outgoing], + tags: file.data.frontmatter?.tags, + content: file.data.text ?? "" + }) + } + + await emit({ + content: JSON.stringify(Object.fromEntries(linkIndex)), + slug: fp, + ext: ".json", + }) + + return [`${fp}.json`] + }, + getQuartzComponents: () => [], + } +} diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index 039b5ccc..b6ded54e 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -1,8 +1,6 @@ import { JSResourceToScriptElement, StaticResources } from "../../resources" -import { EmitCallback, QuartzEmitterPlugin } from "../types" -import { ProcessedContent } from "../vfile" +import { QuartzEmitterPlugin } from "../types" import { render } from "preact-render-to-string" -import { GlobalConfiguration } from "../../cfg" import { QuartzComponent } from "../../components/types" import { resolveToRoot } from "../../path" import HeaderConstructor from "../../components/Header" @@ -12,7 +10,10 @@ import BodyConstructor from "../../components/Body" interface Options { head: QuartzComponent header: QuartzComponent[], - body: QuartzComponent[] + body: QuartzComponent[], + left: QuartzComponent[], + right: QuartzComponent[], + footer: QuartzComponent[], } export const ContentPage: QuartzEmitterPlugin = (opts) => { @@ -29,7 +30,7 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { getQuartzComponents() { return [opts.head, Header, ...opts.header, ...opts.body] }, - async emit(cfg: GlobalConfiguration, content: ProcessedContent[], resources: StaticResources, emit: EmitCallback): Promise { + async emit(_contentDir, cfg, content, resources, emit): Promise { const fps: string[] = [] for (const [tree, file] of content) { @@ -53,7 +54,7 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { const doc = - +
{header.map(HeaderComponent => )} diff --git a/quartz/plugins/emitters/index.ts b/quartz/plugins/emitters/index.ts index ecf3d1d3..971bf194 100644 --- a/quartz/plugins/emitters/index.ts +++ b/quartz/plugins/emitters/index.ts @@ -1 +1,4 @@ export { ContentPage } from './contentPage' +export { ContentIndex } from './contentIndex' +export { AliasRedirects } from './aliases' +export { CNAME } from './cname' diff --git a/quartz/plugins/types.ts b/quartz/plugins/types.ts index ac386c9f..c67e41da 100644 --- a/quartz/plugins/types.ts +++ b/quartz/plugins/types.ts @@ -28,13 +28,13 @@ export type QuartzFilterPluginInstance = { export type QuartzEmitterPlugin = (opts?: Options) => QuartzEmitterPluginInstance export type QuartzEmitterPluginInstance = { name: string - emit(cfg: GlobalConfiguration, content: ProcessedContent[], resources: StaticResources, emitCallback: EmitCallback): Promise + emit(contentDir: string, cfg: GlobalConfiguration, content: ProcessedContent[], resources: StaticResources, emitCallback: EmitCallback): Promise getQuartzComponents(): QuartzComponent[] } export interface EmitOptions { slug: string - ext: `.${string}` + ext: `.${string}` | "" content: string } diff --git a/quartz/processors/emit.ts b/quartz/processors/emit.ts index 3407de21..e1438fae 100644 --- a/quartz/processors/emit.ts +++ b/quartz/processors/emit.ts @@ -25,7 +25,7 @@ export async function emitContent(contentFolder: string, output: string, cfg: Qu let emittedFiles = 0 for (const emitter of cfg.plugins.emitters) { try { - const emitted = await emitter.emit(cfg.configuration, content, staticResources, emit) + const emitted = await emitter.emit(contentFolder, cfg.configuration, content, staticResources, emit) emittedFiles += emitted.length if (verbose) { @@ -42,24 +42,25 @@ export async function emitContent(contentFolder: string, output: string, cfg: Qu const staticPath = path.join(QUARTZ, "static") await fs.promises.cp(staticPath, path.join(output, "static"), { recursive: true }) if (verbose) { - console.log(`[emit:Static] ${path.join(output, "static", "**")}`) + console.log(`[emit:Static] ${path.join("static", "**")}`) } // glob all non MD/MDX/HTML files in content folder and copy it over - const assetsPath = path.join("public", "assets") + const assetsPath = path.join(output, "assets") for await (const fp of globbyStream("**", { ignore: ["**/*.md"], cwd: contentFolder, })) { const ext = path.extname(fp as string) const src = path.join(contentFolder, fp as string) - const dest = path.join(assetsPath, slugify(fp as string) + ext) + const name = slugify(fp as string) + ext + const dest = path.join(assetsPath, name) const dir = path.dirname(dest) await fs.promises.mkdir(dir, { recursive: true }) // ensure dir exists await fs.promises.copyFile(src, dest) emittedFiles += 1 if (verbose) { - console.log(`[emit:Assets] ${dest}`) + console.log(`[emit:Assets] ${path.join("assets", name)}`) } } From 73dfcab5ebe2e9b5f487632034ac7c106fa2516b Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sat, 17 Jun 2023 12:07:40 -0700 Subject: [PATCH 026/197] collapsible toc --- index.d.ts | 2 +- quartz/components/Body.tsx | 4 +- quartz/components/Content.tsx | 2 +- quartz/components/TableOfContents.tsx | 80 +++++++++---------- quartz/components/scripts/clipboard.inline.ts | 50 ++++++------ quartz/components/scripts/spa.inline.ts | 4 +- quartz/components/scripts/toc.inline.ts | 35 ++++++++ quartz/components/styles/legacyToc.scss | 2 +- quartz/components/styles/toc.scss | 49 ++++++++---- quartz/plugins/emitters/contentPage.tsx | 2 +- quartz/plugins/index.ts | 13 ++- quartz/plugins/transformers/latex.ts | 28 ++++--- quartz/plugins/transformers/ofm.ts | 17 ++-- quartz/plugins/types.ts | 2 +- 14 files changed, 176 insertions(+), 114 deletions(-) create mode 100644 quartz/components/scripts/toc.inline.ts diff --git a/index.d.ts b/index.d.ts index ec4d32aa..26ca700c 100644 --- a/index.d.ts +++ b/index.d.ts @@ -5,7 +5,7 @@ declare module '*.scss' { // dom custom event interface CustomEventMap { - "spa_nav": CustomEvent<{ url: string }>; + "nav": CustomEvent<{ url: string }>; } declare global { diff --git a/quartz/components/Body.tsx b/quartz/components/Body.tsx index f10cf3ac..6b1f234d 100644 --- a/quartz/components/Body.tsx +++ b/quartz/components/Body.tsx @@ -4,9 +4,9 @@ import clipboardStyle from './styles/clipboard.scss' import { QuartzComponentConstructor, QuartzComponentProps } from "./types" function Body({ children }: QuartzComponentProps) { - return
+ return
{children} -
+
} Body.afterDOMLoaded = clipboardScript diff --git a/quartz/components/Content.tsx b/quartz/components/Content.tsx index 71d0f35d..cc5d66aa 100644 --- a/quartz/components/Content.tsx +++ b/quartz/components/Content.tsx @@ -5,7 +5,7 @@ import { toJsxRuntime } from "hast-util-to-jsx-runtime" function Content({ tree }: QuartzComponentProps) { // @ts-ignore (preact makes it angry) const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) - return content + return
{content}
} export default (() => Content) satisfies QuartzComponentConstructor diff --git a/quartz/components/TableOfContents.tsx b/quartz/components/TableOfContents.tsx index afb83887..99e73e9c 100644 --- a/quartz/components/TableOfContents.tsx +++ b/quartz/components/TableOfContents.tsx @@ -2,6 +2,9 @@ import { QuartzComponentConstructor, QuartzComponentProps } from "./types" import legacyStyle from "./styles/legacyToc.scss" import modernStyle from "./styles/toc.scss" +// @ts-ignore +import script from "./scripts/toc.inline" + interface Options { layout: 'modern' | 'legacy' } @@ -10,56 +13,49 @@ const defaultOptions: Options = { layout: 'modern' } -export default ((opts?: Partial) => { - const layout = opts?.layout ?? defaultOptions.layout - function TableOfContents({ fileData }: QuartzComponentProps) { - if (!fileData.toc) { - return null - } +function TableOfContents({ fileData }: QuartzComponentProps) { + if (!fileData.toc) { + return null + } - return
-

Table of Contents

+ return <> + +
-
- } - - TableOfContents.css = layout === "modern" ? modernStyle : legacyStyle - - if (layout === "modern") { - TableOfContents.afterDOMLoaded = ` -const bufferPx = 150 -const observer = new IntersectionObserver(entries => { - for (const entry of entries) { - const slug = entry.target.id - const tocEntryElement = document.querySelector(\`a[data-for="$\{slug\}"]\`) - const windowHeight = entry.rootBounds?.height - if (windowHeight && tocEntryElement) { - if (entry.boundingClientRect.y < windowHeight) { - tocEntryElement.classList.add("in-view") - } else { - tocEntryElement.classList.remove("in-view") - } - } - } -}) - -function init() { - const headers = document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]") - headers.forEach(header => observer.observe(header)) + + } +TableOfContents.css = modernStyle +TableOfContents.afterDOMLoaded = script -init() - -document.addEventListener("spa_nav", (e) => { - observer.disconnect() - init() -}) -` +function LegacyTableOfContents({ fileData }: QuartzComponentProps) { + if (!fileData.toc) { + return null } - return TableOfContents + return
+ +

Table of Contents

+
+ +
+} +LegacyTableOfContents.css = legacyStyle + +export default ((opts?: Partial) => { + const layout = opts?.layout ?? defaultOptions.layout + return layout === "modern" ? TableOfContents : LegacyTableOfContents }) satisfies QuartzComponentConstructor diff --git a/quartz/components/scripts/clipboard.inline.ts b/quartz/components/scripts/clipboard.inline.ts index 8d0758a7..76d1b589 100644 --- a/quartz/components/scripts/clipboard.inline.ts +++ b/quartz/components/scripts/clipboard.inline.ts @@ -3,27 +3,29 @@ const svgCopy = const svgCheck = '' -const els = document.getElementsByTagName("pre") -for (let i = 0; i < els.length; i++) { - const codeBlock = els[i].getElementsByTagName("code")[0] - const source = codeBlock.innerText.replace(/\n\n/g, "\n") - const button = document.createElement("button") - button.className = "clipboard-button" - button.type = "button" - button.innerHTML = svgCopy - button.ariaLabel = "Copy source" - button.addEventListener("click", () => { - navigator.clipboard.writeText(source).then( - () => { - button.blur() - button.innerHTML = svgCheck - setTimeout(() => { - button.innerHTML = svgCopy - button.style.borderColor = "" - }, 2000) - }, - (error) => console.error(error), - ) - }) - els[i].prepend(button) -} +document.addEventListener("nav", () => { + const els = document.getElementsByTagName("pre") + for (let i = 0; i < els.length; i++) { + const codeBlock = els[i].getElementsByTagName("code")[0] + const source = codeBlock.innerText.replace(/\n\n/g, "\n") + const button = document.createElement("button") + button.className = "clipboard-button" + button.type = "button" + button.innerHTML = svgCopy + button.ariaLabel = "Copy source" + button.addEventListener("click", () => { + navigator.clipboard.writeText(source).then( + () => { + button.blur() + button.innerHTML = svgCheck + setTimeout(() => { + button.innerHTML = svgCopy + button.style.borderColor = "" + }, 2000) + }, + (error) => console.error(error), + ) + }) + els[i].prepend(button) + } +}) diff --git a/quartz/components/scripts/spa.inline.ts b/quartz/components/scripts/spa.inline.ts index da347009..a129dc41 100644 --- a/quartz/components/scripts/spa.inline.ts +++ b/quartz/components/scripts/spa.inline.ts @@ -30,7 +30,7 @@ const getOpts = ({ target }: Event): { url: URL, scroll?: boolean } | undefined } function notifyNav(slug: string) { - const event = new CustomEvent("spa_nav", { detail: { slug } }) + const event = new CustomEvent("nav", { detail: { slug } }) document.dispatchEvent(event) } @@ -96,6 +96,7 @@ function createRouter() { return }) } + return new class Router { go(pathname: string) { const url = new URL(pathname, window.location.toString()) @@ -113,6 +114,7 @@ function createRouter() { } createRouter() +notifyNav(document.body.dataset.slug!) if (!customElements.get('route-announcer')) { const attrs = { diff --git a/quartz/components/scripts/toc.inline.ts b/quartz/components/scripts/toc.inline.ts new file mode 100644 index 00000000..405a21f1 --- /dev/null +++ b/quartz/components/scripts/toc.inline.ts @@ -0,0 +1,35 @@ +const bufferPx = 150 +const observer = new IntersectionObserver(entries => { + for (const entry of entries) { + const slug = entry.target.id + const tocEntryElement = document.querySelector(`a[data-for="${slug}"]`) + const windowHeight = entry.rootBounds?.height + if (windowHeight && tocEntryElement) { + if (entry.boundingClientRect.y < windowHeight) { + tocEntryElement.classList.add("in-view") + } else { + tocEntryElement.classList.remove("in-view") + } + } + } +}) + +function toggleCollapsible(this: HTMLElement) { + this.classList.toggle("collapsed") + const content = this.nextElementSibling as HTMLElement + content.classList.toggle("collapsed") + content.style.maxHeight = content.style.maxHeight === "0px" ? content.scrollHeight + "px" : "0px" +} + +document.addEventListener("nav", () => { + const toc = document.getElementById("toc")! + const content = toc.nextElementSibling as HTMLElement + content.style.maxHeight = content.scrollHeight + "px" + toc.removeEventListener("click", toggleCollapsible) + toc.addEventListener("click", toggleCollapsible) + + // update toc entry highlighting + observer.disconnect() + const headers = document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]") + headers.forEach(header => observer.observe(header)) +}) diff --git a/quartz/components/styles/legacyToc.scss b/quartz/components/styles/legacyToc.scss index 33b9cca3..8889dcce 100644 --- a/quartz/components/styles/legacyToc.scss +++ b/quartz/components/styles/legacyToc.scss @@ -1,4 +1,4 @@ -details.toc { +details#toc { & summary { cursor: pointer; diff --git a/quartz/components/styles/toc.scss b/quartz/components/styles/toc.scss index 3003f40f..1f1a27b7 100644 --- a/quartz/components/styles/toc.scss +++ b/quartz/components/styles/toc.scss @@ -1,22 +1,36 @@ -details.toc { - & summary { - cursor: pointer; +button#toc { + background-color: transparent; + border: none; + text-align: left; + cursor: pointer; + padding: 0; + color: var(--dark); + display: flex; + align-items: center; - list-style: none; - &::marker, &::-webkit-details-marker { - display: none; - } - - & > * { - display: inline-block; - margin: 0; - } - - & > h3 { - font-size: 1rem; - } + & h3 { + font-size: 1rem; + display: inline-block; + margin: 0; } - + + & .fold { + margin-left: 0.5rem; + transition: transform 0.3s ease; + opacity: 0.8; + } + + &.collapsed .fold { + transform: rotateZ(-90deg) + } +} + +#toc-content { + list-style: none; + overflow: hidden; + max-height: none; + transition: max-height 0.3s ease; + & ul { list-style: none; margin: 0.5rem 0; @@ -37,3 +51,4 @@ details.toc { } } } + diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index b6ded54e..7afab9d3 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -28,7 +28,7 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { return { name: "ContentPage", getQuartzComponents() { - return [opts.head, Header, ...opts.header, ...opts.body] + return [opts.head, Header, Body, ...opts.header, ...opts.body, ...opts.left, ...opts.right, ...opts.footer] }, async emit(_contentDir, cfg, content, resources, emit): Promise { const fps: string[] = [] diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index 32f8bc7e..04de0d4c 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -33,10 +33,6 @@ export function emitComponentResources(cfg: GlobalConfiguration, resources: Stat afterDOMLoaded: [] } - if (cfg.enableSPA) { - componentResources.afterDOMLoaded.push(spaRouterScript) - } - for (const component of allComponents) { const { css, beforeDOMLoaded, afterDOMLoaded } = component if (css) { @@ -50,6 +46,15 @@ export function emitComponentResources(cfg: GlobalConfiguration, resources: Stat } } + if (cfg.enableSPA) { + componentResources.afterDOMLoaded.push(spaRouterScript) + } else { + componentResources.afterDOMLoaded.push(` + const event = new CustomEvent("nav", { detail: { slug: document.body.dataset.slug } }) + document.dispatchEvent(event)` + ) + } + emit({ slug: "index", ext: ".css", diff --git a/quartz/plugins/transformers/latex.ts b/quartz/plugins/transformers/latex.ts index 3140ab47..73bd07df 100644 --- a/quartz/plugins/transformers/latex.ts +++ b/quartz/plugins/transformers/latex.ts @@ -14,18 +14,20 @@ export const Katex: QuartzTransformerPlugin = () => ({ }] ] }, - externalResources: { - css: [ - // base css - "https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css", - ], - js: [ - { - // fix copy behaviour: https://github.com/KaTeX/KaTeX/blob/main/contrib/copy-tex/README.md - src: "https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/copy-tex.min.js", - loadTime: "afterDOMReady", - contentType: 'external' - } - ] + externalResources() { + return { + css: [ + // base css + "https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css", + ], + js: [ + { + // fix copy behaviour: https://github.com/KaTeX/KaTeX/blob/main/contrib/copy-tex/README.md + src: "https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/copy-tex.min.js", + loadTime: "afterDOMReady", + contentType: 'external' + } + ] + } } }) diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index 1b4e07a5..aa839536 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -6,6 +6,7 @@ import { slugify } from "../../path" import rehypeRaw from "rehype-raw" import { visit } from "unist-util-visit" import path from "path" +import { JSResource } from "../../resources" export interface Options { highlight: boolean @@ -235,6 +236,7 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin node.children.splice(0, 1, ...blockquoteContent) // add properties to base blockquote + // TODO: add the js to actually support collapsing callout node.data = { hProperties: { ...(node.data?.hProperties ?? {}), @@ -270,16 +272,19 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin htmlPlugins() { return [rehypeRaw] }, - externalResources: { - js: [{ + externalResources() { + const mermaidScript: JSResource = { script: ` -import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs'; -mermaid.initialize({ startOnLoad: true }); - `, + import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs'; + mermaid.initialize({ startOnLoad: true }); + `, loadTime: 'afterDOMReady', moduleType: 'module', contentType: 'inline' - }] + } + return { + js: opts.mermaid ? [mermaidScript] : [] + } } } } diff --git a/quartz/plugins/types.ts b/quartz/plugins/types.ts index c67e41da..444fcffc 100644 --- a/quartz/plugins/types.ts +++ b/quartz/plugins/types.ts @@ -16,7 +16,7 @@ export type QuartzTransformerPluginInstance = { name: string markdownPlugins(): PluggableList htmlPlugins(): PluggableList - externalResources?: Partial + externalResources?(): Partial } export type QuartzFilterPlugin = (opts?: Options) => QuartzFilterPluginInstance From ad8ac0b479a36ce75699511c82f5faf71db6d205 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sat, 17 Jun 2023 13:08:06 -0700 Subject: [PATCH 027/197] collapsible callout --- quartz/components/scripts/callout.inline.ts | 24 +++++++++++++ quartz/plugins/index.ts | 2 +- quartz/plugins/transformers/ofm.ts | 38 +++++++++++++++------ quartz/styles/callouts.scss | 16 ++++++++- 4 files changed, 68 insertions(+), 12 deletions(-) create mode 100644 quartz/components/scripts/callout.inline.ts diff --git a/quartz/components/scripts/callout.inline.ts b/quartz/components/scripts/callout.inline.ts new file mode 100644 index 00000000..5f358731 --- /dev/null +++ b/quartz/components/scripts/callout.inline.ts @@ -0,0 +1,24 @@ +function toggleCallout(this: HTMLElement) { + const outerBlock = this.parentElement! + this.classList.toggle(`is-collapsed`) + const collapsed = this.classList.contains(`is-collapsed`) + const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight + outerBlock.style.maxHeight = height + `px` +} + +function setupCallout(div: HTMLElement) { + const collapsed = div.classList.contains(`is-collapsed`) + const title = div.firstElementChild! + const height = collapsed ? title.scrollHeight : div.scrollHeight + div.style.maxHeight = height + `px` +} + +document.addEventListener(`nav`, () => { + const collapsible = document.getElementsByClassName(`callout is-collapsible`) as HTMLCollectionOf + for (const div of collapsible) { + const title = div.firstElementChild + setupCallout(div) + title?.removeEventListener(`click`, toggleCallout) + title?.addEventListener(`click`, toggleCallout) + } +}) diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index 04de0d4c..7e665fc7 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -83,7 +83,7 @@ export function getStaticResourcesFromPlugins(plugins: PluginTypes) { } for (const transformer of plugins.transformers) { - const res = transformer.externalResources + const res = transformer.externalResources ? transformer.externalResources() : {} if (res?.js) { staticResources.js = staticResources.js.concat(res.js) } diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index aa839536..4ade4765 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -7,6 +7,8 @@ import rehypeRaw from "rehype-raw" import { visit } from "unist-util-visit" import path from "path" import { JSResource } from "../../resources" +// @ts-ignore +import calloutScript from "../../components/scripts/callout.inline.ts" export interface Options { highlight: boolean @@ -210,6 +212,10 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin const defaultState = collapseChar === "-" ? "collapsed" : "expanded" const title = match.input.slice(calloutDirective.length).trim() || capitalize(calloutType) + const toggleIcon = ` + + ` + const titleNode: HTML = { type: "html", value: `
>
${callouts[canonicalizeCallout(calloutType)]}
${title}
+ ${collapse ? toggleIcon : ""}
` } @@ -228,7 +235,6 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin type: 'text', value: remainingText, }] - }) } @@ -236,7 +242,6 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin node.children.splice(0, 1, ...blockquoteContent) // add properties to base blockquote - // TODO: add the js to actually support collapsing callout node.data = { hProperties: { ...(node.data?.hProperties ?? {}), @@ -273,18 +278,31 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin return [rehypeRaw] }, externalResources() { - const mermaidScript: JSResource = { - script: ` + const js: JSResource[] = [] + + if (opts.callouts) { + js.push({ + script: calloutScript, + loadTime: 'afterDOMReady', + contentType: 'inline' + }) + } + + if (opts.mermaid) { + js.push({ + script: ` import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs'; mermaid.initialize({ startOnLoad: true }); `, - loadTime: 'afterDOMReady', - moduleType: 'module', - contentType: 'inline' - } - return { - js: opts.mermaid ? [mermaidScript] : [] + loadTime: 'afterDOMReady', + moduleType: 'module', + contentType: 'inline' + }) } + + console.log(js) + + return { js } } } } diff --git a/quartz/styles/callouts.scss b/quartz/styles/callouts.scss index 26cb0ba4..84d70b4f 100644 --- a/quartz/styles/callouts.scss +++ b/quartz/styles/callouts.scss @@ -5,6 +5,8 @@ background-color: var(--bg); border-radius: 5px; padding: 0 1rem; + overflow-y: hidden; + transition: max-height 0.3s ease; &[data-callout="note"] { --color: #448aff; @@ -71,8 +73,20 @@ display: flex; align-items: center; gap: 5px; - margin: 1rem 0; + padding: 1rem 0; + margin-bottom: -1rem; color: var(--color); + + & .fold { + margin-left: 0.5rem; + transition: transform 0.3s ease; + opacity: 0.8; + cursor: pointer; + } + + &.is-collapsed .fold { + transform: rotateZ(-90deg) + } } .callout-icon { From de72a413bad1abc59a5f22138d2d55ce9e7cf6b0 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sat, 17 Jun 2023 14:36:06 -0700 Subject: [PATCH 028/197] basic left,right layout --- quartz.config.ts | 11 +++++---- quartz/components/TagList.tsx | 2 +- quartz/components/scripts/callout.inline.ts | 26 +++++++++++---------- quartz/components/scripts/toc.inline.ts | 13 +++++++---- quartz/components/styles/darkmode.scss | 4 ---- quartz/plugins/emitters/contentPage.tsx | 20 ++++++++++++---- quartz/plugins/transformers/ofm.ts | 2 -- quartz/styles/base.scss | 23 ++++++++++++++++++ quartz/styles/callouts.scss | 5 +++- 9 files changed, 73 insertions(+), 33 deletions(-) diff --git a/quartz.config.ts b/quartz.config.ts index 0c77c901..e18f8ba2 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -59,15 +59,16 @@ const config: QuartzConfig = { Plugin.ContentPage({ head: Component.Head(), header: [Component.PageTitle(), Component.Spacer(), Component.Darkmode()], - body: [ + beforeBody: [ Component.ArticleTitle(), Component.ReadingTime(), Component.TagList(), - Component.TableOfContents(), - Component.Content() ], - left: [], - right: [], + left: [ + Component.TableOfContents(), + ], + right: [ + ], footer: [] }), Plugin.ContentIndex(), // you can exclude this if you don't plan on using popovers, graph, or backlinks, diff --git a/quartz/components/TagList.tsx b/quartz/components/TagList.tsx index a462e95a..65286a5a 100644 --- a/quartz/components/TagList.tsx +++ b/quartz/components/TagList.tsx @@ -6,7 +6,7 @@ function TagList({ fileData }: QuartzComponentProps) { const tags = fileData.frontmatter?.tags const slug = fileData.slug! const baseDir = resolveToRoot(slug) - if (tags) { + if (tags && tags.length > 0) { return
    {tags.map(tag => { const display = `#${tag}` const linkDest = baseDir + `/tags/${slugAnchor(tag)}` diff --git a/quartz/components/scripts/callout.inline.ts b/quartz/components/scripts/callout.inline.ts index 5f358731..081a5a2f 100644 --- a/quartz/components/scripts/callout.inline.ts +++ b/quartz/components/scripts/callout.inline.ts @@ -6,19 +6,21 @@ function toggleCallout(this: HTMLElement) { outerBlock.style.maxHeight = height + `px` } -function setupCallout(div: HTMLElement) { - const collapsed = div.classList.contains(`is-collapsed`) - const title = div.firstElementChild! - const height = collapsed ? title.scrollHeight : div.scrollHeight - div.style.maxHeight = height + `px` -} - -document.addEventListener(`nav`, () => { +function setupCallout() { const collapsible = document.getElementsByClassName(`callout is-collapsible`) as HTMLCollectionOf for (const div of collapsible) { const title = div.firstElementChild - setupCallout(div) - title?.removeEventListener(`click`, toggleCallout) - title?.addEventListener(`click`, toggleCallout) + + if (title) { + title.removeEventListener(`click`, toggleCallout) + title.addEventListener(`click`, toggleCallout) + + const collapsed = div.classList.contains(`is-collapsed`) + const height = collapsed ? title.scrollHeight : div.scrollHeight + div.style.maxHeight = height + `px` + } } -}) +} + +document.addEventListener(`nav`, setupCallout) +window.addEventListener(`resize`, setupCallout) diff --git a/quartz/components/scripts/toc.inline.ts b/quartz/components/scripts/toc.inline.ts index 405a21f1..105889d7 100644 --- a/quartz/components/scripts/toc.inline.ts +++ b/quartz/components/scripts/toc.inline.ts @@ -14,19 +14,24 @@ const observer = new IntersectionObserver(entries => { } }) -function toggleCollapsible(this: HTMLElement) { +function toggleToc(this: HTMLElement) { this.classList.toggle("collapsed") const content = this.nextElementSibling as HTMLElement content.classList.toggle("collapsed") content.style.maxHeight = content.style.maxHeight === "0px" ? content.scrollHeight + "px" : "0px" } -document.addEventListener("nav", () => { +function setupToc() { const toc = document.getElementById("toc")! const content = toc.nextElementSibling as HTMLElement content.style.maxHeight = content.scrollHeight + "px" - toc.removeEventListener("click", toggleCollapsible) - toc.addEventListener("click", toggleCollapsible) + toc.removeEventListener("click", toggleToc) + toc.addEventListener("click", toggleToc) +} + +window.addEventListener("resize", setupToc) +document.addEventListener("nav", () => { + setupToc() // update toc entry highlighting observer.disconnect() diff --git a/quartz/components/styles/darkmode.scss b/quartz/components/styles/darkmode.scss index 561a83c5..46291d80 100644 --- a/quartz/components/styles/darkmode.scss +++ b/quartz/components/styles/darkmode.scss @@ -4,10 +4,6 @@ min-width: 30px; position: relative; - @media all and (max-width: 450px) { - padding: 1rem; - } - & > .toggle { display: none; box-sizing: border-box; diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index 7afab9d3..ea626f5c 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -6,11 +6,12 @@ import { resolveToRoot } from "../../path" import HeaderConstructor from "../../components/Header" import { QuartzComponentProps } from "../../components/types" import BodyConstructor from "../../components/Body" +import ContentConstructor from "../../components/Content" interface Options { head: QuartzComponent header: QuartzComponent[], - body: QuartzComponent[], + beforeBody: QuartzComponent[], left: QuartzComponent[], right: QuartzComponent[], footer: QuartzComponent[], @@ -21,14 +22,15 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { throw new Error("ContentPage must be initialized with options specifiying the components to use") } - const { head: Head, header, body } = opts + const { head: Head, header, beforeBody, left, right, footer } = opts const Header = HeaderConstructor() const Body = BodyConstructor() + const Content = ContentConstructor() return { name: "ContentPage", getQuartzComponents() { - return [opts.head, Header, Body, ...opts.header, ...opts.body, ...opts.left, ...opts.right, ...opts.footer] + return [opts.head, Header, Body, ...opts.header, ...opts.beforeBody, ...opts.left, ...opts.right, ...opts.footer] }, async emit(_contentDir, cfg, content, resources, emit): Promise { const fps: string[] = [] @@ -59,9 +61,19 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => {
    {header.map(HeaderComponent => )}
    + {beforeBody.map(BodyComponent => )} - {body.map(BodyComponent => )} +
    + {left.map(BodyComponent => )} +
    +
    + +
    +
    + {right.map(BodyComponent => )} +
    + {pageResources.js.filter(resource => resource.loadTime === "afterDOMReady").map(res => JSResourceToScriptElement(res))} diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index 4ade4765..3742d4b6 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -300,8 +300,6 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin }) } - console.log(js) - return { js } } } diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index d7a1891a..9fc76f94 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -51,8 +51,31 @@ a { padding: 4rem 30vw; margin: 0 auto; max-width: 1000px; + position: relative; + + & .left, & .right { + position: fixed; + padding: 0 4rem 0 6rem; + max-width: 30vw; + box-sizing: border-box; + top: 10rem; + } + + & .left { + left: 0; + } + + & .right { + right: 0; + } + @media all and (max-width: 1200px) { padding: 25px 5vw; + & .left, & .right { + padding: 0; + max-width: none; + position: initial; + } } & p { diff --git a/quartz/styles/callouts.scss b/quartz/styles/callouts.scss index 84d70b4f..d33d78b8 100644 --- a/quartz/styles/callouts.scss +++ b/quartz/styles/callouts.scss @@ -8,6 +8,10 @@ overflow-y: hidden; transition: max-height 0.3s ease; + & > *:nth-child(2) { + margin-top: 0; + } + &[data-callout="note"] { --color: #448aff; --border: #448aff22; @@ -74,7 +78,6 @@ align-items: center; gap: 5px; padding: 1rem 0; - margin-bottom: -1rem; color: var(--color); & .fold { From 659cbc474378ab956d77e5c79b49c56d89c49fd2 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sat, 17 Jun 2023 16:05:46 -0700 Subject: [PATCH 029/197] popovers --- package-lock.json | 14 +++++++ package.json | 1 + quartz.config.ts | 1 + quartz/components/Content.tsx | 30 +++++++++++--- quartz/components/scripts/popover.inline.ts | 41 ++++++++++++++++++++ quartz/components/scripts/toc.inline.ts | 12 +++--- quartz/components/styles/popover.scss | 43 +++++++++++++++++++++ quartz/plugins/emitters/contentPage.tsx | 12 +++--- quartz/plugins/index.ts | 3 +- quartz/plugins/transformers/links.ts | 2 + 10 files changed, 143 insertions(+), 16 deletions(-) create mode 100644 quartz/components/scripts/popover.inline.ts create mode 100644 quartz/components/styles/popover.scss diff --git a/package-lock.json b/package-lock.json index 6d922f47..eb3a121c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "4.0.3", "license": "MIT", "dependencies": { + "@floating-ui/dom": "^1.4.0", "@inquirer/prompts": "^1.0.3", "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", @@ -393,6 +394,19 @@ "node": ">=12" } }, + "node_modules/@floating-ui/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.3.1.tgz", + "integrity": "sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==" + }, + "node_modules/@floating-ui/dom": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.4.0.tgz", + "integrity": "sha512-b4F0iWffLiqb/TpP2PWVOixrZqE6ni+6VT64AmFH7sJIF3SFPLbe6/h3jQ5Cwffs+HaC9A8V0TQzCPBwVvziIA==", + "dependencies": { + "@floating-ui/core": "^1.3.1" + } + }, "node_modules/@inquirer/checkbox": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.2.8.tgz", diff --git a/package.json b/package.json index 810cf5e9..3e42cf70 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "quartz": "./quartz/bootstrap-cli.mjs" }, "dependencies": { + "@floating-ui/dom": "^1.4.0", "@inquirer/prompts": "^1.0.3", "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", diff --git a/quartz.config.ts b/quartz.config.ts index e18f8ba2..57956720 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -64,6 +64,7 @@ const config: QuartzConfig = { Component.ReadingTime(), Component.TagList(), ], + content: Component.Content(), left: [ Component.TableOfContents(), ], diff --git a/quartz/components/Content.tsx b/quartz/components/Content.tsx index cc5d66aa..0bcab1e2 100644 --- a/quartz/components/Content.tsx +++ b/quartz/components/Content.tsx @@ -2,10 +2,30 @@ import { QuartzComponentConstructor, QuartzComponentProps } from "./types" import { Fragment, jsx, jsxs } from 'preact/jsx-runtime' import { toJsxRuntime } from "hast-util-to-jsx-runtime" -function Content({ tree }: QuartzComponentProps) { - // @ts-ignore (preact makes it angry) - const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) - return
    {content}
    +// @ts-ignore +import popoverScript from './scripts/popover.inline' +import popoverStyle from './styles/popover.scss' + +interface Options { + enablePopover: boolean } -export default (() => Content) satisfies QuartzComponentConstructor +const defaultOptions: Options = { + enablePopover: true +} + +export default ((opts?: Partial) => { + function Content({ tree }: QuartzComponentProps) { + // @ts-ignore (preact makes it angry) + const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) + return
    {content}
    + } + + const enablePopover = opts?.enablePopover ?? defaultOptions.enablePopover + if (enablePopover) { + Content.afterDOMLoaded = popoverScript + Content.css = popoverStyle + } + + return Content +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts new file mode 100644 index 00000000..24c6aecb --- /dev/null +++ b/quartz/components/scripts/popover.inline.ts @@ -0,0 +1,41 @@ +import { computePosition, inline, shift, autoPlacement } from "@floating-ui/dom" + +document.addEventListener("nav", () => { + const links = [...document.getElementsByClassName("internal")] as HTMLLinkElement[] + const p = new DOMParser() + for (const link of links) { + link.addEventListener("mouseenter", async ({ clientX, clientY }) => { + if (link.dataset.fetchedPopover === "true") return + const url = link.href + const contents = await fetch(`${url}`) + .then((res) => res.text()) + .catch((err) => { + console.error(err) + }) + if (!contents) return + const html = p.parseFromString(contents, "text/html") + const elts = [...html.getElementsByClassName("popover-hint")] + if (elts.length === 0) return + + + const popoverElement = document.createElement("div") + popoverElement.classList.add("popover") + elts.forEach(elt => popoverElement.appendChild(elt)) + + const { x, y } = await computePosition(link, popoverElement, { + middleware: [inline({ + x: clientX, + y: clientY + }), shift(), autoPlacement()] + }) + + Object.assign(popoverElement.style, { + left: `${x}px`, + top: `${y}px`, + }) + + link.appendChild(popoverElement) + link.dataset.fetchedPopover = "true" + }) + } +}) diff --git a/quartz/components/scripts/toc.inline.ts b/quartz/components/scripts/toc.inline.ts index 105889d7..d6cd50af 100644 --- a/quartz/components/scripts/toc.inline.ts +++ b/quartz/components/scripts/toc.inline.ts @@ -22,11 +22,13 @@ function toggleToc(this: HTMLElement) { } function setupToc() { - const toc = document.getElementById("toc")! - const content = toc.nextElementSibling as HTMLElement - content.style.maxHeight = content.scrollHeight + "px" - toc.removeEventListener("click", toggleToc) - toc.addEventListener("click", toggleToc) + const toc = document.getElementById("toc") + if (toc) { + const content = toc.nextElementSibling as HTMLElement + content.style.maxHeight = content.scrollHeight + "px" + toc.removeEventListener("click", toggleToc) + toc.addEventListener("click", toggleToc) + } } window.addEventListener("resize", setupToc) diff --git a/quartz/components/styles/popover.scss b/quartz/components/styles/popover.scss new file mode 100644 index 00000000..0d26d7d3 --- /dev/null +++ b/quartz/components/styles/popover.scss @@ -0,0 +1,43 @@ +@keyframes dropin { + 0% { + opacity: 0; + visibility: hidden; + } + 50% { + opacity: 0; + } + 100% { + opacity: 1; + visibility: visible; + } +} + +.popover { + z-index: 999; + position: absolute; + overflow: scroll; + width: 30rem; + height: 20rem; + padding: 0 1rem; + margin-top: -1rem; + border: 1px solid var(--lightgray); + background-color: var(--light); + border-radius: 5px; + box-shadow: 6px 6px 36px 0 rgba(0,0,0,0.25); + + font-weight: initial; + + visibility: hidden; + opacity: 0; + transition: opacity 0.2s ease, visibility 0.2s ease; + + @media all and (max-width: 600px) { + display: none !important; + } +} + +a:hover .popover, .popover:hover { + animation: dropin 0.5s ease; + opacity: 1; + visibility: visible; +} diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index ea626f5c..4728920e 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -6,12 +6,12 @@ import { resolveToRoot } from "../../path" import HeaderConstructor from "../../components/Header" import { QuartzComponentProps } from "../../components/types" import BodyConstructor from "../../components/Body" -import ContentConstructor from "../../components/Content" interface Options { head: QuartzComponent header: QuartzComponent[], beforeBody: QuartzComponent[], + content: QuartzComponent, left: QuartzComponent[], right: QuartzComponent[], footer: QuartzComponent[], @@ -25,12 +25,11 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { const { head: Head, header, beforeBody, left, right, footer } = opts const Header = HeaderConstructor() const Body = BodyConstructor() - const Content = ContentConstructor() return { name: "ContentPage", getQuartzComponents() { - return [opts.head, Header, Body, ...opts.header, ...opts.beforeBody, ...opts.left, ...opts.right, ...opts.footer] + return [opts.head, Header, Body, ...opts.header, ...opts.beforeBody, opts.content, ...opts.left, ...opts.right, ...opts.footer] }, async emit(_contentDir, cfg, content, resources, emit): Promise { const fps: string[] = [] @@ -54,6 +53,7 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { tree } + const Content = opts.content const doc = @@ -61,12 +61,14 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => {
    {header.map(HeaderComponent => )}
    - {beforeBody.map(BodyComponent => )} +
    + {beforeBody.map(BodyComponent => )} +
    {left.map(BodyComponent => )}
    -
    +
    diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index 7e665fc7..358c59e0 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -14,7 +14,8 @@ export type ComponentResources = { } function joinScripts(scripts: string[]): string { - return scripts.join("\n") + // wrap with iife to prevent scope collision + return scripts.map(script => `(function () {${script}})();`).join("\n") } export function emitComponentResources(cfg: GlobalConfiguration, resources: StaticResources, plugins: PluginTypes, emit: EmitCallback) { diff --git a/quartz/plugins/transformers/links.ts b/quartz/plugins/transformers/links.ts index 16193442..4bf0e08e 100644 --- a/quartz/plugins/transformers/links.ts +++ b/quartz/plugins/transformers/links.ts @@ -48,6 +48,8 @@ export const ResolveLinks: QuartzTransformerPlugin | undefined> // don't process external links or intra-document anchors if (!(isAbsoluteUrl(node.properties.href) || node.properties.href.startsWith("#"))) { node.properties.href = transformLink(node.properties.href) + } else { + } // rewrite link internals if prettylinks is on From a622d97e19c7802758120ff3493e15267fafa20a Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sun, 18 Jun 2023 10:47:07 -0700 Subject: [PATCH 030/197] local and global graph --- index.d.ts | 8 +- package-lock.json | 690 ++++++++++++++++++++ package.json | 2 + quartz.config.ts | 10 +- quartz/cfg.ts | 1 - quartz/components/ArticleTitle.tsx | 7 +- quartz/components/Graph.tsx | 81 +++ quartz/components/Head.tsx | 69 +- quartz/components/Header.tsx | 10 +- quartz/components/PageTitle.tsx | 23 +- quartz/components/TableOfContents.tsx | 4 +- quartz/components/index.ts | 4 +- quartz/components/scripts/graph.inline.ts | 287 ++++++++ quartz/components/scripts/popover.inline.ts | 43 +- quartz/components/scripts/spa.inline.ts | 6 +- quartz/components/styles/darkmode.scss | 6 +- quartz/components/styles/graph.scss | 68 ++ quartz/components/styles/popover.scss | 33 +- quartz/components/styles/toc.scss | 3 +- quartz/path.ts | 6 +- quartz/plugins/emitters/contentIndex.ts | 7 +- quartz/plugins/emitters/contentPage.tsx | 4 +- quartz/styles/base.scss | 26 +- 23 files changed, 1288 insertions(+), 110 deletions(-) create mode 100644 quartz/components/Graph.tsx create mode 100644 quartz/components/scripts/graph.inline.ts create mode 100644 quartz/components/styles/graph.scss diff --git a/index.d.ts b/index.d.ts index 26ca700c..3b3acfc0 100644 --- a/index.d.ts +++ b/index.d.ts @@ -8,10 +8,4 @@ interface CustomEventMap { "nav": CustomEvent<{ url: string }>; } -declare global { - interface Document { - addEventListener(type: K, - listener: (this: Document, ev: CustomEventMap[K]) => void): void; - dispatchEvent(ev: CustomEventMap[K]): void; - } -} +declare const fetchData: Promise diff --git a/package-lock.json b/package-lock.json index eb3a121c..c9f9b3ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,8 @@ "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", "cli-spinner": "^0.2.10", + "d3": "^7.8.5", + "d3-force-reuse": "^1.0.1", "esbuild-sass-plugin": "^2.9.0", "github-slugger": "^2.0.0", "globby": "^13.1.4", @@ -54,6 +56,7 @@ }, "devDependencies": { "@types/cli-spinner": "^0.2.1", + "@types/d3": "^7.4.0", "@types/hast": "^2.3.4", "@types/node": "^20.1.2", "@types/pretty-time": "^1.1.2", @@ -894,6 +897,259 @@ "@types/node": "*" } }, + "node_modules/@types/d3": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.0.tgz", + "integrity": "sha512-jIfNVK0ZlxcuRDKtRS/SypEyOQ6UHaFQBKv032X45VvxSJ6Yi5G9behy9h6tNTHTDGh5Vq+KbmBjUWLgY4meCA==", + "dev": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.5.tgz", + "integrity": "sha512-Qk7fpJ6qFp+26VeQ47WY0mkwXaiq8+76RJcncDEfMc2ocRzXLO67bLFRNI4OX1aGBoPzsM5Y2T+/m1pldOgD+A==", + "dev": true + }, + "node_modules/@types/d3-axis": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.2.tgz", + "integrity": "sha512-uGC7DBh0TZrU/LY43Fd8Qr+2ja1FKmH07q2FoZFHo1eYl8aj87GhfVoY1saJVJiq24rp1+wpI6BvQJMKgQm8oA==", + "dev": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.2.tgz", + "integrity": "sha512-2TEm8KzUG3N7z0TrSKPmbxByBx54M+S9lHoP2J55QuLU0VSQ9mE96EJSAOVNEqd1bbynMjeTS9VHmz8/bSw8rA==", + "dev": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.2.tgz", + "integrity": "sha512-abT/iLHD3sGZwqMTX1TYCMEulr+wBd0SzyOQnjYNLp7sngdOHYtNkMRI5v3w5thoN+BWtlHVDx2Osvq6fxhZWw==", + "dev": true + }, + "node_modules/@types/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==", + "dev": true + }, + "node_modules/@types/d3-contour": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.2.tgz", + "integrity": "sha512-k6/bGDoAGJZnZWaKzeB+9glgXCYGvh6YlluxzBREiVo8f/X2vpTEdgPy9DN7Z2i42PZOZ4JDhVdlTSTSkLDPlQ==", + "dev": true, + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.1.tgz", + "integrity": "sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ==", + "dev": true + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.2.tgz", + "integrity": "sha512-rxN6sHUXEZYCKV05MEh4z4WpPSqIw+aP7n9ZN6WYAAvZoEAghEK1WeVZMZcHRBwyaKflU43PCUAJNjFxCzPDjg==", + "dev": true + }, + "node_modules/@types/d3-drag": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.2.tgz", + "integrity": "sha512-qmODKEDvyKWVHcWWCOVcuVcOwikLVsyc4q4EBJMREsoQnR2Qoc2cZQUyFUPgO9q4S3qdSqJKBsuefv+h0Qy+tw==", + "dev": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-76pBHCMTvPLt44wFOieouXcGXWOF0AJCceUvaFkxSZEu4VDUdv93JfpMa6VGNFs01FHfuP4a5Ou68eRG1KBfTw==", + "dev": true + }, + "node_modules/@types/d3-ease": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.0.tgz", + "integrity": "sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==", + "dev": true + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.2.tgz", + "integrity": "sha512-gllwYWozWfbep16N9fByNBDTkJW/SyhH6SGRlXloR7WdtAaBui4plTP+gbUgiEot7vGw/ZZop1yDZlgXXSuzjA==", + "dev": true, + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.4.tgz", + "integrity": "sha512-q7xbVLrWcXvSBBEoadowIUJ7sRpS1yvgMWnzHJggFy5cUZBq2HZL5k/pBSm0GdYWS1vs5/EDwMjSKF55PDY4Aw==", + "dev": true + }, + "node_modules/@types/d3-format": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.1.tgz", + "integrity": "sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==", + "dev": true + }, + "node_modules/@types/d3-geo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.3.tgz", + "integrity": "sha512-bK9uZJS3vuDCNeeXQ4z3u0E7OeJZXjUgzFdSOtNtMCJCLvDtWDwfpRVWlyt3y8EvRzI0ccOu9xlMVirawolSCw==", + "dev": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-9hjRTVoZjRFR6xo8igAJyNXQyPX6Aq++Nhb5ebrUF414dv4jr2MitM2fWiOY475wa3Za7TOS2Gh9fmqEhLTt0A==", + "dev": true + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==", + "dev": true, + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.0.tgz", + "integrity": "sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==", + "dev": true + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.0.tgz", + "integrity": "sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==", + "dev": true + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.2.tgz", + "integrity": "sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==", + "dev": true + }, + "node_modules/@types/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==", + "dev": true + }, + "node_modules/@types/d3-scale": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.3.tgz", + "integrity": "sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==", + "dev": true, + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", + "integrity": "sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==", + "dev": true + }, + "node_modules/@types/d3-selection": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.5.tgz", + "integrity": "sha512-xCB0z3Hi8eFIqyja3vW8iV01+OHGYR2di/+e+AiOcXIOrY82lcvWW8Ke1DYE/EUVMsBl4Db9RppSBS3X1U6J0w==", + "dev": true + }, + "node_modules/@types/d3-shape": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.1.tgz", + "integrity": "sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==", + "dev": true, + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==", + "dev": true + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.0.tgz", + "integrity": "sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==", + "dev": true + }, + "node_modules/@types/d3-timer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.0.tgz", + "integrity": "sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==", + "dev": true + }, + "node_modules/@types/d3-transition": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.3.tgz", + "integrity": "sha512-/S90Od8Id1wgQNvIA8iFv9jRhCiZcGhPd2qX0bKF/PS+y0W5CrXKgIiELd2CvG1mlQrWK/qlYh3VxicqG1ZvgA==", + "dev": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.3.tgz", + "integrity": "sha512-OWk1yYIIWcZ07+igN6BeoG6rqhnJ/pYe+R1qWFM2DtW49zsoSjgb9G5xB0ZXA8hh2jAzey1XuRmMSoXdKw8MDA==", + "dev": true, + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, "node_modules/@types/debug": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", @@ -902,6 +1158,12 @@ "@types/ms": "*" } }, + "node_modules/@types/geojson": { + "version": "7946.0.10", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", + "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==", + "dev": true + }, "node_modules/@types/hast": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", @@ -1290,6 +1552,408 @@ "node": ">= 8" } }, + "node_modules/d3": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", + "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-dsv/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force-reuse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d3-force-reuse/-/d3-force-reuse-1.0.1.tgz", + "integrity": "sha512-TyJfszB6JZmzOYr3oDayjm0LE1Fz0wsn9DkDcYopDOXY/M07rTTDGQ5wYQMZjmcobND3+Og53CATORFbFuQUqw==", + "dependencies": { + "d3-quadtree": "^1.0.3" + } + }, + "node_modules/d3-force-reuse/node_modules/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", + "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1318,6 +1982,14 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/delaunator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dependencies": { + "robust-predicates": "^3.0.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1965,6 +2637,14 @@ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, "node_modules/is-absolute-url": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", @@ -3596,6 +4276,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, "node_modules/run-async": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", @@ -3626,6 +4311,11 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", diff --git a/package.json b/package.json index 3e42cf70..adc3bcc2 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", "cli-spinner": "^0.2.10", + "d3": "^7.8.5", "esbuild-sass-plugin": "^2.9.0", "github-slugger": "^2.0.0", "globby": "^13.1.4", @@ -67,6 +68,7 @@ }, "devDependencies": { "@types/cli-spinner": "^0.2.1", + "@types/d3": "^7.4.0", "@types/hast": "^2.3.4", "@types/node": "^20.1.2", "@types/pretty-time": "^1.1.2", diff --git a/quartz.config.ts b/quartz.config.ts index 57956720..41d65a69 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -4,7 +4,6 @@ import * as Plugin from "./quartz/plugins" const config: QuartzConfig = { configuration: { - siteTitle: "๐Ÿชด Quartz 4.0", enableSPA: true, ignorePatterns: ["private", "templates"], theme: { @@ -58,7 +57,11 @@ const config: QuartzConfig = { Plugin.AliasRedirects(), Plugin.ContentPage({ head: Component.Head(), - header: [Component.PageTitle(), Component.Spacer(), Component.Darkmode()], + header: [ + Component.PageTitle({ title: "๐Ÿชด Quartz 4.0" }), + Component.Spacer(), + Component.Darkmode() + ], beforeBody: [ Component.ArticleTitle(), Component.ReadingTime(), @@ -66,9 +69,10 @@ const config: QuartzConfig = { ], content: Component.Content(), left: [ - Component.TableOfContents(), ], right: [ + Component.Graph(), + Component.TableOfContents(), ], footer: [] }), diff --git a/quartz/cfg.ts b/quartz/cfg.ts index 14064020..e1cf3af1 100644 --- a/quartz/cfg.ts +++ b/quartz/cfg.ts @@ -2,7 +2,6 @@ import { PluginTypes } from "./plugins/types" import { Theme } from "./theme" export interface GlobalConfiguration { - siteTitle: string, /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ enableSPA: boolean, /** Glob patterns to not search */ diff --git a/quartz/components/ArticleTitle.tsx b/quartz/components/ArticleTitle.tsx index 37950c48..c25769e2 100644 --- a/quartz/components/ArticleTitle.tsx +++ b/quartz/components/ArticleTitle.tsx @@ -4,10 +4,15 @@ function ArticleTitle({ fileData }: QuartzComponentProps) { const title = fileData.frontmatter?.title const displayTitle = fileData.slug === "index" ? undefined : title if (displayTitle) { - return

    {displayTitle}

    + return

    {displayTitle}

    } else { return null } } +ArticleTitle.css = ` +.article-title { + margin: 2rem 0 0 0; +} +` export default (() => ArticleTitle) satisfies QuartzComponentConstructor diff --git a/quartz/components/Graph.tsx b/quartz/components/Graph.tsx new file mode 100644 index 00000000..01461882 --- /dev/null +++ b/quartz/components/Graph.tsx @@ -0,0 +1,81 @@ +import { QuartzComponentConstructor } from "./types" +// @ts-ignore +import script from "./scripts/graph.inline" +import style from "./styles/graph.scss" + +export interface D3Config { + drag: boolean, + zoom: boolean, + depth: number, + scale: number, + repelForce: number, + centerForce: number, + linkDistance: number, + fontSize: number, + opacityScale: number +} + +interface GraphOptions { + localGraph: Partial, + globalGraph: Partial | undefined +} + +const defaultOptions: GraphOptions = { + localGraph: { + drag: true, + zoom: true, + depth: 1, + scale: 1.2, + repelForce: 2, + centerForce: 1, + linkDistance: 30, + fontSize: 0.6, + opacityScale: 3 + }, + globalGraph: { + drag: true, + zoom: true, + depth: -1, + scale: 1.2, + repelForce: 1, + centerForce: 1, + linkDistance: 30, + fontSize: 0.5, + opacityScale: 3 + } +} + +export default ((opts?: GraphOptions) => { + function Graph() { + const localGraph = { ...opts?.localGraph, ...defaultOptions.localGraph } + const globalGraph = { ...opts?.globalGraph, ...defaultOptions.globalGraph } + return
    +

    Interactive Graph

    +
    +
    + + + +
    +
    +
    +
    +
    + } + + Graph.css = style + Graph.afterDOMLoaded = script + + return Graph +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index cc9dd77d..a0b62b7a 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -2,32 +2,47 @@ import { resolveToRoot } from "../path" import { JSResourceToScriptElement } from "../resources" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" -function Head({ fileData, externalResources }: QuartzComponentProps) { - const slug = fileData.slug! - const title = fileData.frontmatter?.title ?? "Untitled" - const description = fileData.description ?? "No description provided" - const { css, js } = externalResources - const baseDir = resolveToRoot(slug) - const iconPath = baseDir + "/static/icon.png" - const ogImagePath = baseDir + "/static/og-image.png" - - return - {title} - - - - - - - - - - - - - {css.map(href => )} - {js.filter(resource => resource.loadTime === "beforeDOMReady").map(res => JSResourceToScriptElement(res, true))} - +interface Options { + prefetchContentIndex: boolean } -export default (() => Head) satisfies QuartzComponentConstructor +const defaultOptions: Options = { + prefetchContentIndex: true +} + +export default ((opts?: Options) => { + function Head({ fileData, externalResources }: QuartzComponentProps) { + const slug = fileData.slug! + const title = fileData.frontmatter?.title ?? "Untitled" + const description = fileData.description ?? "No description provided" + const { css, js } = externalResources + const baseDir = resolveToRoot(slug) + const iconPath = baseDir + "/static/icon.png" + const ogImagePath = baseDir + "/static/og-image.png" + + const prefetchContentIndex = opts?.prefetchContentIndex ?? defaultOptions.prefetchContentIndex + const contentIndexPath = baseDir + "/static/contentIndex.json" + const contentIndexScript = `const fetchData = fetch(\`${contentIndexPath}\`).then(data => data.json())` + + return + {title} + + + + + + + + + + + + + {prefetchContentIndex && } + {css.map(href => )} + {js.filter(resource => resource.loadTime === "beforeDOMReady").map(res => JSResourceToScriptElement(res, true))} + + } + + return Head +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/Header.tsx b/quartz/components/Header.tsx index 197c4e52..06ae88bb 100644 --- a/quartz/components/Header.tsx +++ b/quartz/components/Header.tsx @@ -1,9 +1,9 @@ import { QuartzComponentConstructor, QuartzComponentProps } from "./types" function Header({ children }: QuartzComponentProps) { - return
    + return (children.length > 0) ?
    {children} -
    +
    : null } Header.css = ` @@ -11,12 +11,10 @@ header { display: flex; flex-direction: row; align-items: center; - margin: 1em 0 2em 0; - & > h1 { - } + margin: 2em 0; } -header > h1 { +header h1 { margin: 0; flex: auto; } diff --git a/quartz/components/PageTitle.tsx b/quartz/components/PageTitle.tsx index fe6ec3d8..e8377ee0 100644 --- a/quartz/components/PageTitle.tsx +++ b/quartz/components/PageTitle.tsx @@ -1,11 +1,22 @@ import { resolveToRoot } from "../path" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" -function PageTitle({ cfg, fileData }: QuartzComponentProps) { - const title = cfg.siteTitle - const slug = fileData.slug! - const baseDir = resolveToRoot(slug) - return

    {title}

    +interface Options { + title: string } -export default (() => PageTitle) satisfies QuartzComponentConstructor +export default ((opts?: Options) => { + const title = opts?.title ?? "Untitled Quartz" + function PageTitle({ fileData }: QuartzComponentProps) { + const slug = fileData.slug! + const baseDir = resolveToRoot(slug) + return

    {title}

    + } + PageTitle.css = ` + .page-title { + margin: 0; + } + ` + + return PageTitle +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/TableOfContents.tsx b/quartz/components/TableOfContents.tsx index 99e73e9c..f3d90bb1 100644 --- a/quartz/components/TableOfContents.tsx +++ b/quartz/components/TableOfContents.tsx @@ -18,7 +18,7 @@ function TableOfContents({ fileData }: QuartzComponentProps) { return null } - return <> + return
- + } TableOfContents.css = modernStyle TableOfContents.afterDOMLoaded = script diff --git a/quartz/components/index.ts b/quartz/components/index.ts index 72350fea..98132388 100644 --- a/quartz/components/index.ts +++ b/quartz/components/index.ts @@ -7,6 +7,7 @@ import ReadingTime from "./ReadingTime" import Spacer from "./Spacer" import TableOfContents from "./TableOfContents" import TagList from "./TagList" +import Graph from "./Graph" export { ArticleTitle, @@ -17,5 +18,6 @@ export { ReadingTime, Spacer, TableOfContents, - TagList + TagList, + Graph } diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts new file mode 100644 index 00000000..40665ca4 --- /dev/null +++ b/quartz/components/scripts/graph.inline.ts @@ -0,0 +1,287 @@ +import { ContentDetails } from "../../plugins/emitters/contentIndex" +import * as d3 from 'd3' + +type NodeData = { + id: string, + text: string, + tags: string[] +} & d3.SimulationNodeDatum + +type LinkData = { + source: string, + target: string +} + +function relative(from: string, to: string) { + const pieces = [location.protocol, '//', location.host, location.pathname] + const url = pieces.join('').slice(0, -from.length) + to + return url +} + +function removeAllChildren(node: HTMLElement) { + while (node.firstChild) { + node.removeChild(node.firstChild) + } +} + +async function renderGraph(container: string, slug: string) { + const graph = document.getElementById(container)! + removeAllChildren(graph) + + let { + drag: enableDrag, + zoom: enableZoom, + depth, + scale, + repelForce, + centerForce, + linkDistance, + fontSize, + opacityScale + } = JSON.parse(graph.dataset["cfg"]!) + + const data = await fetchData + + const links: LinkData[] = [] + for (const [src, details] of Object.entries(data)) { + const outgoing = details.links ?? [] + for (const dest of outgoing) { + if (src in data && dest in data) { + links.push({ source: src, target: dest }) + } + } + } + + const neighbourhood = new Set() + + const wl = [slug, "__SENTINEL"] + if (depth >= 0) { + while (depth >= 0 && wl.length > 0) { + // compute neighbours + const cur = wl.shift() + if (cur === "__SENTINEL") { + depth-- + wl.push("__SENTINEL") + } else { + neighbourhood.add(cur) + const outgoing = links.filter(l => l.source === cur) + const incoming = links.filter(l => l.target === cur) + wl.push(...outgoing.map((l) => l.target), ...incoming.map((l) => l.source)) + } + } + } else { + links.flatMap(l => [l.source, l.target]).forEach((id) => neighbourhood.add(id)) + } + + const graphData: { nodes: NodeData[], links: LinkData[] } = { + nodes: Object.keys(data).filter(id => neighbourhood.has(id)).map(url => ({ id: url, text: data[url]?.title ?? url, tags: data[url]?.tags ?? [] })), + links: links.filter((l) => neighbourhood.has(l.source) && neighbourhood.has(l.target)) + } + + const simulation: d3.Simulation = d3 + .forceSimulation(graphData.nodes) + .force("charge", d3.forceManyBody().strength(-100 * repelForce)) + .force( + "link", + d3 + .forceLink(graphData.links) + .id((d: any) => d.id) + .distance(linkDistance), + ) + .force("center", d3.forceCenter().strength(centerForce)) + + const height = Math.max(graph.offsetHeight, 250) + const width = graph.offsetWidth + + const svg = d3 + .select('#' + container) + .append("svg") + .attr("width", width) + .attr("height", height) + .attr('viewBox', [-width / 2 / scale, -height / 2 / scale, width / scale, height / scale]) + + // draw links between nodes + const link = svg + .append("g") + .selectAll("line") + .data(graphData.links) + .join("line") + .attr("class", "link") + .attr("stroke", "var(--lightgray)") + .attr("stroke-width", 2) + + // svg groups + const graphNode = svg.append("g").selectAll("g").data(graphData.nodes).enter().append("g") + + // calculate radius + const color = (d: NodeData) => { + // TODO: does this handle the index page + const isCurrent = d.id === slug + return isCurrent ? "var(--secondary)" : "var(--gray)" + } + + const drag = (simulation: d3.Simulation) => { + function dragstarted(event: any, d: NodeData) { + if (!event.active) simulation.alphaTarget(1).restart() + d.fx = d.x + d.fy = d.y + } + + function dragged(event: any, d: NodeData) { + d.fx = event.x + d.fy = event.y + } + + function dragended(event: any, d: NodeData) { + if (!event.active) simulation.alphaTarget(0) + d.fx = null + d.fy = null + } + + const noop = () => { } + return d3 + .drag() + .on("start", enableDrag ? dragstarted : noop) + .on("drag", enableDrag ? dragged : noop) + .on("end", enableDrag ? dragended : noop) + } + + function nodeRadius(d: NodeData) { + const numLinks = links.filter((l: any) => l.source.id === d.id || l.target.id === d.id).length + return 2 + Math.sqrt(numLinks) + } + + // draw individual nodes + const node = graphNode + .append("circle") + .attr("class", "node") + .attr("id", (d) => d.id) + .attr("r", nodeRadius) + .attr("fill", color) + .style("cursor", "pointer") + .on("click", (_, d) => { + const targ = relative(slug, d.id) + window.spaNavigate(new URL(targ)) + }) + .on("mouseover", function(_, d) { + const neighbours: string[] = data[slug].links ?? [] + const neighbourNodes = d3.selectAll(".node").filter((d) => neighbours.includes(d.id)) + const currentId = d.id + const linkNodes = d3 + .selectAll(".link") + .filter((d: any) => d.source.id === currentId || d.target.id === currentId) + + // highlight neighbour nodes + neighbourNodes.transition().duration(200).attr("fill", color) + + // highlight links + linkNodes.transition().duration(200).attr("stroke", "var(--gray)") + + const bigFont = fontSize * 1.5 + + // show text for self + const parent = this.parentNode as HTMLElement + d3.select(parent) + .raise() + .select("text") + .transition() + .duration(200) + .attr('opacityOld', d3.select(parent).select('text').style("opacity")) + .style('opacity', 1) + .style('font-size', bigFont + 'em') + }) + .on("mouseleave", function(_, d) { + const currentId = d.id + const linkNodes = d3 + .selectAll(".link") + .filter((d: any) => d.source.id === currentId || d.target.id === currentId) + + linkNodes.transition().duration(200).attr("stroke", "var(--lightgray)") + + const parent = this.parentNode as HTMLElement + d3.select(parent) + .select("text") + .transition() + .duration(200) + .style('opacity', d3.select(parent).select('text').attr("opacityOld")) + .style('font-size', fontSize + 'em') + }) + // @ts-ignore + .call(drag(simulation)) + + // draw labels + const labels = graphNode + .append("text") + .attr("dx", 0) + .attr("dy", (d) => nodeRadius(d) + 8 + "px") + .attr("text-anchor", "middle") + .text((d) => data[d.id]?.title || (d.id.charAt(1).toUpperCase() + d.id.slice(2)).replace("-", " ")) + .style('opacity', (opacityScale - 1) / 3.75) + .style("pointer-events", "none") + .style('font-size', fontSize + 'em') + .raise() + // @ts-ignore + .call(drag(simulation)) + + // set panning + if (enableZoom) { + svg.call( + d3 + .zoom() + .extent([ + [0, 0], + [width, height], + ]) + .scaleExtent([0.25, 4]) + .on("zoom", ({ transform }) => { + link.attr("transform", transform) + node.attr("transform", transform) + const scale = transform.k * opacityScale; + const scaledOpacity = Math.max((scale - 1) / 3.75, 0) + labels.attr("transform", transform).style("opacity", scaledOpacity) + }), + ) + } + + // progress the simulation + simulation.on("tick", () => { + link + .attr("x1", (d: any) => d.source.x) + .attr("y1", (d: any) => d.source.y) + .attr("x2", (d: any) => d.target.x) + .attr("y2", (d: any) => d.target.y) + node + .attr("cx", (d: any) => d.x) + .attr("cy", (d: any) => d.y) + labels + .attr("x", (d: any) => d.x) + .attr("y", (d: any) => d.y) + }) +} + +function renderGlobalGraph() { + const slug = document.body.dataset["slug"]! + renderGraph("global-graph-container", slug) + const container = document.getElementById("global-graph-outer") + container?.classList.add("active") + + function hideGlobalGraph(this: HTMLElement, e: HTMLElementEventMap["click"]) { + if (e.target !== this) return + + container?.classList.remove("active") + const graph = document.getElementById("global-graph-container")! + removeAllChildren(graph) + } + + container?.removeEventListener("click", hideGlobalGraph) + container?.addEventListener("click", hideGlobalGraph) +} + +document.addEventListener("nav", async (e: unknown) => { + const slug = (e as CustomEventMap["nav"]).detail.url + await renderGraph("graph-container", slug) + + const containerIcon = document.getElementById("global-graph-icon") + containerIcon?.removeEventListener("click", renderGlobalGraph) + containerIcon?.addEventListener("click", renderGlobalGraph) +}) diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts index 24c6aecb..5cbe170a 100644 --- a/quartz/components/scripts/popover.inline.ts +++ b/quartz/components/scripts/popover.inline.ts @@ -1,39 +1,50 @@ -import { computePosition, inline, shift, autoPlacement } from "@floating-ui/dom" +import { computePosition, flip, inline, shift } from "@floating-ui/dom" document.addEventListener("nav", () => { const links = [...document.getElementsByClassName("internal")] as HTMLLinkElement[] const p = new DOMParser() for (const link of links) { link.addEventListener("mouseenter", async ({ clientX, clientY }) => { - if (link.dataset.fetchedPopover === "true") return + async function setPosition(popoverElement: HTMLElement) { + const { x, y } = await computePosition(link, popoverElement, { + middleware: [inline({ + x: clientX, + y: clientY + }), shift(), flip()] + }) + Object.assign(popoverElement.style, { + left: `${x}px`, + top: `${y}px`, + }) + } + + if (link.dataset.fetchedPopover === "true") { + return setPosition(link.lastChild as HTMLElement) + } + const url = link.href + const anchor = new URL(url).hash + if (anchor.startsWith("#")) return + const contents = await fetch(`${url}`) .then((res) => res.text()) .catch((err) => { console.error(err) }) + if (!contents) return const html = p.parseFromString(contents, "text/html") const elts = [...html.getElementsByClassName("popover-hint")] if (elts.length === 0) return - const popoverElement = document.createElement("div") popoverElement.classList.add("popover") - elts.forEach(elt => popoverElement.appendChild(elt)) - - const { x, y } = await computePosition(link, popoverElement, { - middleware: [inline({ - x: clientX, - y: clientY - }), shift(), autoPlacement()] - }) - - Object.assign(popoverElement.style, { - left: `${x}px`, - top: `${y}px`, - }) + const popoverInner = document.createElement("div") + popoverInner.classList.add("popover-inner") + popoverElement.appendChild(popoverInner) + elts.forEach(elt => popoverInner.appendChild(elt)) + setPosition(popoverElement) link.appendChild(popoverElement) link.dataset.fetchedPopover = "true" }) diff --git a/quartz/components/scripts/spa.inline.ts b/quartz/components/scripts/spa.inline.ts index a129dc41..057aa3da 100644 --- a/quartz/components/scripts/spa.inline.ts +++ b/quartz/components/scripts/spa.inline.ts @@ -29,8 +29,8 @@ const getOpts = ({ target }: Event): { url: URL, scroll?: boolean } | undefined return { url: new URL(href), scroll: 'routerNoscroll' in a.dataset ? false : undefined } } -function notifyNav(slug: string) { - const event = new CustomEvent("nav", { detail: { slug } }) +function notifyNav(url: string) { + const event: CustomEventMap["nav"] = new CustomEvent("nav", { detail: { url } }) document.dispatchEvent(event) } @@ -73,6 +73,8 @@ async function navigate(url: URL, isBack: boolean = false) { delete announcer.dataset.persist } +window.spaNavigate = navigate + function createRouter() { if (typeof window !== "undefined") { window.addEventListener("click", async (event) => { diff --git a/quartz/components/styles/darkmode.scss b/quartz/components/styles/darkmode.scss index 46291d80..730fcd28 100644 --- a/quartz/components/styles/darkmode.scss +++ b/quartz/components/styles/darkmode.scss @@ -1,8 +1,7 @@ .darkmode { - float: right; - padding: 1rem; - min-width: 30px; position: relative; + width: 20px; + height: 20px; & > .toggle { display: none; @@ -16,7 +15,6 @@ width: 20px; height: 20px; top: calc(50% - 10px); - margin: 0 7px; fill: var(--darkgray); transition: opacity 0.1s ease; } diff --git a/quartz/components/styles/graph.scss b/quartz/components/styles/graph.scss new file mode 100644 index 00000000..76323bb2 --- /dev/null +++ b/quartz/components/styles/graph.scss @@ -0,0 +1,68 @@ +.graph { + & > h3 { + font-size: 1rem; + margin: 0 + } + + & > .graph-outer { + border-radius: 5px; + border: 1px solid var(--lightgray); + box-sizing: border-box; + height: 250px; + width: 300px; + margin: 0.5em 0; + position: relative; + + & > #global-graph-icon { + color: var(--dark); + opacity: 0.5; + width: 18px; + height: 18px; + position: absolute; + padding: 0.2rem; + margin: 0.3rem; + top: 0; + right: 0; + border-radius: 4px; + background-color: transparent; + transition: background-color 0.5s ease; + cursor: pointer; + &:hover { + background-color: var(--lightgray); + } + } + + & > #graph-container > svg { + margin-bottom: -5px; + } + } + + & > #global-graph-outer { + position: fixed; + z-index: 9999; + left: 0; + top: 0; + width: 100vw; + height: 100%; + overflow: scroll; + backdrop-filter: blur(4px); + display: none; + + &.active { + display: inline-block; + } + + & > #global-graph-container { + border: 1px solid var(--lightgray); + background-color: var(--light); + border-radius: 5px; + box-sizing: border-box; + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + height: 60vh; + width: 50vw; + } + } +} diff --git a/quartz/components/styles/popover.scss b/quartz/components/styles/popover.scss index 0d26d7d3..0006292c 100644 --- a/quartz/components/styles/popover.scss +++ b/quartz/components/styles/popover.scss @@ -3,7 +3,7 @@ opacity: 0; visibility: hidden; } - 50% { + 1% { opacity: 0; } 100% { @@ -15,21 +15,24 @@ .popover { z-index: 999; position: absolute; - overflow: scroll; - width: 30rem; - height: 20rem; - padding: 0 1rem; - margin-top: -1rem; - border: 1px solid var(--lightgray); - background-color: var(--light); - border-radius: 5px; - box-shadow: 6px 6px 36px 0 rgba(0,0,0,0.25); + overflow: visible; + padding: 1rem; - font-weight: initial; + & > .popover-inner { + width: 30rem; + height: 20rem; + padding: 0 1rem 1rem 1rem; + font-weight: initial; + border: 1px solid var(--gray); + background-color: var(--light); + border-radius: 5px; + box-shadow: 6px 6px 36px 0 rgba(0,0,0,0.25); + overflow: scroll; + } visibility: hidden; opacity: 0; - transition: opacity 0.2s ease, visibility 0.2s ease; + transition: opacity 0.3s ease, visibility 0.3s ease; @media all and (max-width: 600px) { display: none !important; @@ -37,7 +40,7 @@ } a:hover .popover, .popover:hover { - animation: dropin 0.5s ease; - opacity: 1; - visibility: visible; + animation: dropin 0.3s ease; + animation-fill-mode: forwards; + animation-delay: 0.2s; } diff --git a/quartz/components/styles/toc.scss b/quartz/components/styles/toc.scss index 1f1a27b7..117d2938 100644 --- a/quartz/components/styles/toc.scss +++ b/quartz/components/styles/toc.scss @@ -30,6 +30,7 @@ button#toc { overflow: hidden; max-height: none; transition: max-height 0.3s ease; + font-size: 0.9rem; & ul { list-style: none; @@ -38,7 +39,7 @@ button#toc { & > li > a { color: var(--dark); opacity: 0.35; - transition: 0.5s ease opacity; + transition: 0.5s ease opacity, 0.3s ease color; &.in-view { opacity: 0.75; } diff --git a/quartz/path.ts b/quartz/path.ts index 4efd7480..3ae51ccb 100644 --- a/quartz/path.ts +++ b/quartz/path.ts @@ -13,10 +13,6 @@ export function trimPathSuffix(fp: string): string { cleanPath = cleanPath.slice(0, -"index".length) } - if (cleanPath === "") { - cleanPath = "./" - } - return cleanPath + anchor } @@ -36,7 +32,7 @@ export function slugify(s: string): string { export function resolveToRoot(slug: string): string { let fp = trimPathSuffix(slug) - if (fp === "./") { + if (fp === "") { return "." } diff --git a/quartz/plugins/emitters/contentIndex.ts b/quartz/plugins/emitters/contentIndex.ts index 8ee8a9ac..0e03c23a 100644 --- a/quartz/plugins/emitters/contentIndex.ts +++ b/quartz/plugins/emitters/contentIndex.ts @@ -14,19 +14,20 @@ const defaultOptions: Options = { indexExternalLinks: false, } -type ContentIndex = Map +export type ContentDetails = { title: string, links?: string[], tags?: string[], content: string, -}> +} export const ContentIndex: QuartzEmitterPlugin = (userOpts) => { const opts = { ...userOpts, ...defaultOptions } return { name: "ContentIndex", async emit(_contentDir, _cfg, content, _resources, emit) { - const fp = "contentIndex" + const fp = path.join("static", "contentIndex") const linkIndex: ContentIndex = new Map() for (const [tree, file] of content) { let slug = trimPathSuffix(file.data.slug!) diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index 4728920e..d88cf9c3 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -2,7 +2,7 @@ import { JSResourceToScriptElement, StaticResources } from "../../resources" import { QuartzEmitterPlugin } from "../types" import { render } from "preact-render-to-string" import { QuartzComponent } from "../../components/types" -import { resolveToRoot } from "../../path" +import { resolveToRoot, trimPathSuffix } from "../../path" import HeaderConstructor from "../../components/Header" import { QuartzComponentProps } from "../../components/types" import BodyConstructor from "../../components/Body" @@ -56,7 +56,7 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { const Content = opts.content const doc = - +
{header.map(HeaderComponent => )} diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index 9fc76f94..fcd4a5d1 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -10,8 +10,6 @@ html { body { margin: 0; - height: 100vh; - width: 100vw; max-width: 100%; box-sizing: border-box; background-color: var(--light); @@ -48,31 +46,39 @@ a { } .page { - padding: 4rem 30vw; - margin: 0 auto; + margin: 6rem 35vw 6rem 20vw; max-width: 1000px; position: relative; & .left, & .right { position: fixed; - padding: 0 4rem 0 6rem; - max-width: 30vw; + height: 100vh; + overflow-y: scroll; box-sizing: border-box; - top: 10rem; + display: flex; + flex-direction: column; + top: 0; + gap: 2rem; + padding: 6rem; } & .left { left: 0; + padding-left: 10vw; + width: 20vw; } & .right { right: 0; + padding-right: 10vw; + width: 35vw; } @media all and (max-width: 1200px) { - padding: 25px 5vw; + margin: 25px 5vw; & .left, & .right { padding: 0; + height: initial; max-width: none; position: initial; } @@ -247,3 +253,7 @@ audio, video { width: 100%; border-radius: 5px; } + +.spacer { + flex: 1 1 auto; +} From cdb9fd576e91bf9c1b28cabfae4a4088da8cd333 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Mon, 19 Jun 2023 20:37:45 -0700 Subject: [PATCH 031/197] basic search implementation --- globals.d.ts | 10 + package-lock.json | 348 +++++++++++++------- package.json | 2 + quartz.config.ts | 8 +- quartz/bootstrap-cli.mjs | 6 +- quartz/components/Backlinks.tsx | 19 ++ quartz/components/Search.tsx | 35 ++ quartz/components/index.ts | 6 +- quartz/components/scripts/graph.inline.ts | 13 +- quartz/components/scripts/handler.ts | 19 ++ quartz/components/scripts/popover.inline.ts | 1 + quartz/components/scripts/search.inline.ts | 192 +++++++++++ quartz/components/styles/backlinks.scss | 22 ++ quartz/components/styles/popover.scss | 6 + quartz/components/styles/search.scss | 134 ++++++++ quartz/components/styles/toc.scss | 1 - quartz/components/types.ts | 1 + quartz/path.ts | 7 +- quartz/plugins/emitters/contentIndex.ts | 45 +-- quartz/plugins/emitters/contentPage.tsx | 7 +- quartz/plugins/index.ts | 1 + quartz/plugins/transformers/index.ts | 2 +- quartz/plugins/transformers/links.ts | 41 ++- quartz/styles/base.scss | 1 + tsconfig.json | 4 +- tsconfig.tsbuildinfo | 2 +- 26 files changed, 751 insertions(+), 182 deletions(-) create mode 100644 globals.d.ts create mode 100644 quartz/components/Backlinks.tsx create mode 100644 quartz/components/Search.tsx create mode 100644 quartz/components/scripts/handler.ts create mode 100644 quartz/components/scripts/search.inline.ts create mode 100644 quartz/components/styles/backlinks.scss create mode 100644 quartz/components/styles/search.scss diff --git a/globals.d.ts b/globals.d.ts new file mode 100644 index 00000000..6cc2479c --- /dev/null +++ b/globals.d.ts @@ -0,0 +1,10 @@ +export declare global { + interface Document { + addEventListener(type: K, + listener: (this: Document, ev: CustomEventMap[K]) => void): void; + dispatchEvent(ev: CustomEventMap[K]): void; + } + interface Window { + spaNavigate(url: URL, isBack: boolean = false) + } +} diff --git a/package-lock.json b/package-lock.json index c9f9b3ca..c250a4bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,8 @@ "chalk": "^4.1.2", "cli-spinner": "^0.2.10", "d3": "^7.8.5", - "d3-force-reuse": "^1.0.1", "esbuild-sass-plugin": "^2.9.0", + "flexsearch": "0.7.21", "github-slugger": "^2.0.0", "globby": "^13.1.4", "gray-matter": "^4.0.3", @@ -57,6 +57,7 @@ "devDependencies": { "@types/cli-spinner": "^0.2.1", "@types/d3": "^7.4.0", + "@types/flexsearch": "^0.7.3", "@types/hast": "^2.3.4", "@types/node": "^20.1.2", "@types/pretty-time": "^1.1.2", @@ -403,20 +404,20 @@ "integrity": "sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==" }, "node_modules/@floating-ui/dom": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.4.0.tgz", - "integrity": "sha512-b4F0iWffLiqb/TpP2PWVOixrZqE6ni+6VT64AmFH7sJIF3SFPLbe6/h3jQ5Cwffs+HaC9A8V0TQzCPBwVvziIA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.4.1.tgz", + "integrity": "sha512-loCXUOLzIC3jp50RFOKXZ/kQjjz26ryr/23M+FWG9jrmAv8lRf3DUfC2AiVZ3+K316GOhB08CR+Povwz8e9mDw==", "dependencies": { "@floating-ui/core": "^1.3.1" } }, "node_modules/@inquirer/checkbox": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.2.8.tgz", - "integrity": "sha512-yTnAsimBDy2Ft5Ky/0nNqJLkLYTX9/teuvkAHKm+aeOMVSaUfp8bPchkj6VThR5AHwzUhSnUswuYVUzTzWMzsw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.3.1.tgz", + "integrity": "sha512-3l3aC6gYOPGaVOa9cNe4dZ8t96e3CFifC3Hee1MD+F7qaRxGAuXnhCQiUr4ngj2P7xd9U3DCDbLXNsLKQoHYCg==", "dependencies": { - "@inquirer/core": "^1.3.0", - "@inquirer/type": "^1.0.5", + "@inquirer/core": "^2.1.0", + "@inquirer/type": "^1.1.0", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "figures": "^3.2.0" @@ -425,6 +426,27 @@ "node": ">=14.18.0" } }, + "node_modules/@inquirer/checkbox/node_modules/@inquirer/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", + "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", + "dependencies": { + "@inquirer/type": "^1.1.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.8.0", + "cli-width": "^4.0.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/@inquirer/confirm": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-1.0.11.tgz", @@ -460,12 +482,12 @@ } }, "node_modules/@inquirer/editor": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.0.11.tgz", - "integrity": "sha512-fAvkEKVRelMe5NzB1GM2zmAqbV0OWwAhXd6r34VgCKBAEfwI622A3M06g0ObL9qkcs0U+YW0G943X0ZqcUmKnQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.2.0.tgz", + "integrity": "sha512-NMXLLNadvqIR6TD6mNZRa/PKHTvdaa4ndGGeXl+DwybQ4K7cVSJNRrztixpM1KDEoG8Ape5ightNwq25cyugTg==", "dependencies": { - "@inquirer/core": "^1.3.0", - "@inquirer/type": "^1.0.5", + "@inquirer/core": "^2.1.0", + "@inquirer/type": "^1.1.0", "chalk": "^4.1.2", "external-editor": "^3.0.3" }, @@ -473,13 +495,34 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/expand": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.0.11.tgz", - "integrity": "sha512-7JBEHJGyNx2KdRbrVrkD7aNz9P8FI54ug3WORwaJ3q/z19jy8+ItkswEkSn0cy1QHhB30fx3QlJdjFX14i59wA==", + "node_modules/@inquirer/editor/node_modules/@inquirer/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", + "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", "dependencies": { - "@inquirer/core": "^1.3.0", - "@inquirer/type": "^1.0.5", + "@inquirer/type": "^1.1.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.8.0", + "cli-width": "^4.0.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/expand": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.1.1.tgz", + "integrity": "sha512-fXk5NG2FOAiluDWPYfXHuof3sklL/HhZh3NnXfnBZ2IhTCRzXvlXRcQcPlev2sGcZknHn0g6JdKlxjSa+7H2nQ==", + "dependencies": { + "@inquirer/core": "^2.1.0", + "@inquirer/type": "^1.1.0", "chalk": "^4.1.2", "figures": "^3.2.0" }, @@ -487,26 +530,68 @@ "node": ">=14.18.0" } }, - "node_modules/@inquirer/input": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.1.2.tgz", - "integrity": "sha512-7/fS1EE9gvQJ7/NVKpsoyJeZAqbEoOiQBg6D8+YaCwnbEldXhKSyS53VlWoYrDWryw8XNutMpJI3o9vLxDw8KQ==", + "node_modules/@inquirer/expand/node_modules/@inquirer/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", + "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", "dependencies": { - "@inquirer/core": "^1.3.0", - "@inquirer/type": "^1.0.5", + "@inquirer/type": "^1.1.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.8.0", + "cli-width": "^4.0.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/input": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.1.tgz", + "integrity": "sha512-OYwG3dEo1+lMAE6rYB8b1HTg8eSP++jk0pHSjKZu00gTlN5IHW/dliB82nsWe9Bn//93E9LJ1KrhjFMqOzkCFw==", + "dependencies": { + "@inquirer/core": "^2.1.0", + "@inquirer/type": "^1.1.0", "chalk": "^4.1.2" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/@inquirer/password": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.0.11.tgz", - "integrity": "sha512-2GtNIBN906V5PzLFe0GIrXKInZM47T7QZdET0ML0sdGn4HFI7WEN+Gw0W2yC+0xhiTtm1kdrhFxRNIq8AZFnLA==", + "node_modules/@inquirer/input/node_modules/@inquirer/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", + "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", "dependencies": { - "@inquirer/input": "^1.1.2", - "@inquirer/type": "^1.0.5", + "@inquirer/type": "^1.1.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.8.0", + "cli-width": "^4.0.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/password": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.1.tgz", + "integrity": "sha512-3M03aA04hOA4lRjLviB9uGoNmmd1YDNo4CYSFM9Uh4qlXdgvhke3xPU07k3kVstRIo0Te1hF14RL7vEgHJQ8tA==", + "dependencies": { + "@inquirer/input": "^1.2.1", + "@inquirer/type": "^1.1.0", "chalk": "^4.1.2" }, "engines": { @@ -533,25 +618,46 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.1.3.tgz", - "integrity": "sha512-aBlXdQeADYbk9pFG4Z8HvRnjM7i/RYKJmf311infV2ivkD+d1QIdWdo0RnCuqk0m/6tdYsRgkhWGVhEkeh0nQg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.2.1.tgz", + "integrity": "sha512-t8lMbE3Gqook4PvQYQl9eVJrl/mBy5kCgolwY9El8HLyGZ7Wc3SGIqHnQUlha4qms8HPOdUIBzyPfcAXl5+3SQ==", "dependencies": { - "@inquirer/core": "^1.3.0", - "@inquirer/type": "^1.0.5", + "@inquirer/core": "^2.1.0", + "@inquirer/type": "^1.1.0", "chalk": "^4.1.2" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/@inquirer/select": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.1.7.tgz", - "integrity": "sha512-3Ym0WOoVduu/AG5GwIxa+fNz8Eop7S1zADbUmMsllrubdYu7qMe9HaTHCb5JOjaVNSoFJuYPH6TizFzGVFVrCQ==", + "node_modules/@inquirer/rawlist/node_modules/@inquirer/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", + "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", "dependencies": { - "@inquirer/core": "^1.3.0", - "@inquirer/type": "^1.0.5", + "@inquirer/type": "^1.1.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.8.0", + "cli-width": "^4.0.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/select": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.2.1.tgz", + "integrity": "sha512-13JDLtlwFoqQUYRdMzz5wP3a4DWccJfNA/8M8MDUhhZ8HeKZ3MPaTMlpxwY+Q0Jgbmt56nf7xUuck0XXPce8Xw==", + "dependencies": { + "@inquirer/core": "^2.1.0", + "@inquirer/type": "^1.1.0", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "figures": "^3.2.0" @@ -560,10 +666,31 @@ "node": ">=14.18.0" } }, + "node_modules/@inquirer/select/node_modules/@inquirer/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", + "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", + "dependencies": { + "@inquirer/type": "^1.1.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.8.0", + "cli-width": "^4.0.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/@inquirer/type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.0.5.tgz", - "integrity": "sha512-MCEsk3Ep4D8UwwyCGdMmtoTwfC78oxHusUKex1qR+WTJP4MKK/mykCTCXApbYYRBYuTpT71kdoOr9vxySh+l5Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.1.0.tgz", + "integrity": "sha512-XMaorygt2o/mXinZg/OOz6d3JKuV3o4jRc/3KDiVPeKLLkjiO4iJErbLKtKn+Od2ZC2lbiFQkrIuloVpEubisA==", "engines": { "node": ">=14.18.0" } @@ -1158,6 +1285,12 @@ "@types/ms": "*" } }, + "node_modules/@types/flexsearch": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@types/flexsearch/-/flexsearch-0.7.3.tgz", + "integrity": "sha512-HXwADeHEP4exXkCIwy2n1+i0f1ilP1ETQOH5KDOugjkTFZPntWo0Gr8stZOaebkxsdx+k0X/K6obU/+it07ocg==", + "dev": true + }, "node_modules/@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", @@ -1199,9 +1332,9 @@ } }, "node_modules/@types/node": { - "version": "20.2.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", - "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", + "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", "dev": true }, "node_modules/@types/parse5": { @@ -1519,11 +1652,11 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "engines": { - "node": ">= 12" + "node": ">= 10" } }, "node_modules/concat-map": { @@ -1711,25 +1844,6 @@ "node": ">=12" } }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/d3-dsv/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/d3-ease": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", @@ -1762,19 +1876,6 @@ "node": ">=12" } }, - "node_modules/d3-force-reuse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d3-force-reuse/-/d3-force-reuse-1.0.1.tgz", - "integrity": "sha512-TyJfszB6JZmzOYr3oDayjm0LE1Fz0wsn9DkDcYopDOXY/M07rTTDGQ5wYQMZjmcobND3+Og53CATORFbFuQUqw==", - "dependencies": { - "d3-quadtree": "^1.0.3" - } - }, - "node_modules/d3-force-reuse/node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, "node_modules/d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", @@ -2143,6 +2244,17 @@ "node": ">=4" } }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -2211,6 +2323,11 @@ "node": ">=8" } }, + "node_modules/flexsearch": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.21.tgz", + "integrity": "sha512-W7cHV7Hrwjid6lWmy0IhsWDFQboWSng25U3VVywpHOTJnnAZNPScog67G+cVpeX9f7yDD21ih0WDrMMT+JoaYg==" + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -2266,9 +2383,9 @@ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" }, "node_modules/glob": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", - "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.7.tgz", + "integrity": "sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", @@ -2298,9 +2415,9 @@ } }, "node_modules/globby": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", - "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz", + "integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.2.11", @@ -2609,11 +2726,11 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -2820,6 +2937,14 @@ "katex": "cli.js" } }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -2846,9 +2971,9 @@ } }, "node_modules/lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", + "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==", "engines": { "node": "14 || >=16.14" } @@ -3889,9 +4014,9 @@ } }, "node_modules/preact-render-to-string": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.0.3.tgz", - "integrity": "sha512-UUP+EtmLw5ns0fT9C7+CTdLawm1wLmlrZ6WKzJ4Jwhb4EBu4vy5ufIZKlrfvWNnPl1JFoJzZwzfKs97H4N0Vug==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.1.0.tgz", + "integrity": "sha512-/AsKU4Q4R8r4aKwwNQrkQQNUVEDmTeZr6IwesDffobFRPcTk4dSQrfo1VOcXjtlcUss6QYEe7JShUGbQIhaw+A==", "dependencies": { "pretty-format": "^3.8.0" }, @@ -4005,10 +4130,11 @@ } }, "node_modules/rehype-pretty-code": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.9.6.tgz", - "integrity": "sha512-l94QKT6w00AIJp1FsbVnbKmcEckKdYkJQfstgiSI4GTt/hSdDrnQRz6rP8r01x1rXNFC2exMG4WY0X7fOpVQGw==", + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.9.8.tgz", + "integrity": "sha512-pwCqh4Y+D2brWBGLu8i9aRP+rfnABdwFIXJ1dSInC+Xf7PxoEOVGNvngFSsfplpJ88IfcgiGirXa+9cIsLEhlA==", "dependencies": { + "@types/hast": "^2.0.0", "hash-obj": "^4.0.0", "parse-numeric-range": "^1.3.0" }, @@ -4333,9 +4459,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.62.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", - "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", + "version": "1.63.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.4.tgz", + "integrity": "sha512-Sx/+weUmK+oiIlI+9sdD0wZHsqpbgQg8wSwSnGBjwb5GwqFhYNwwnI+UWZtLjKvKyFlKkatRK235qQ3mokyPoQ==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -4637,16 +4763,16 @@ } }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/unherit": { diff --git a/package.json b/package.json index adc3bcc2..e16c92f8 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "cli-spinner": "^0.2.10", "d3": "^7.8.5", "esbuild-sass-plugin": "^2.9.0", + "flexsearch": "0.7.21", "github-slugger": "^2.0.0", "globby": "^13.1.4", "gray-matter": "^4.0.3", @@ -69,6 +70,7 @@ "devDependencies": { "@types/cli-spinner": "^0.2.1", "@types/d3": "^7.4.0", + "@types/flexsearch": "^0.7.3", "@types/hast": "^2.3.4", "@types/node": "^20.1.2", "@types/pretty-time": "^1.1.2", diff --git a/quartz.config.ts b/quartz.config.ts index 41d65a69..bd7a81dc 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -39,16 +39,16 @@ const config: QuartzConfig = { plugins: { transformers: [ Plugin.FrontMatter(), - Plugin.Description(), Plugin.TableOfContents(), Plugin.CreatedModifiedDate({ priority: ['frontmatter', 'filesystem'] // you can add 'git' here for last modified from Git but this makes the build slower }), - Plugin.GitHubFlavoredMarkdown(), Plugin.ObsidianFlavoredMarkdown(), - Plugin.ResolveLinks(), + Plugin.GitHubFlavoredMarkdown(), + Plugin.CrawlLinks(), Plugin.SyntaxHighlighting(), Plugin.Katex(), + Plugin.Description(), ], filters: [ Plugin.RemoveDrafts() @@ -60,6 +60,7 @@ const config: QuartzConfig = { header: [ Component.PageTitle({ title: "๐Ÿชด Quartz 4.0" }), Component.Spacer(), + Component.Search(), Component.Darkmode() ], beforeBody: [ @@ -73,6 +74,7 @@ const config: QuartzConfig = { right: [ Component.Graph(), Component.TableOfContents(), + Component.Backlinks() ], footer: [] }), diff --git a/quartz/bootstrap-cli.mjs b/quartz/bootstrap-cli.mjs index e6bb3f0a..2824f8e9 100755 --- a/quartz/bootstrap-cli.mjs +++ b/quartz/bootstrap-cli.mjs @@ -75,12 +75,14 @@ yargs(hideBin(process.argv)) text = text.replace('export default', '') text = text.replace('export', '') + const sourcefile = path.relative(path.resolve('.'), args.path) + const resolveDir = path.dirname(sourcefile) const transpiled = await esbuild.build({ stdin: { contents: text, loader: 'ts', - resolveDir: '.', - sourcefile: path.relative(path.resolve('.'), args.path), + resolveDir, + sourcefile, }, write: false, bundle: true, diff --git a/quartz/components/Backlinks.tsx b/quartz/components/Backlinks.tsx new file mode 100644 index 00000000..584746c5 --- /dev/null +++ b/quartz/components/Backlinks.tsx @@ -0,0 +1,19 @@ +import { QuartzComponentConstructor, QuartzComponentProps } from "./types" +import style from "./styles/backlinks.scss" +import { relativeToRoot } from "../path" + +function Backlinks({ fileData, allFiles }: QuartzComponentProps) { + const slug = fileData.slug! + const backlinkFiles = allFiles.filter(file => file.links?.includes(slug)) + return +} + +Backlinks.css = style +export default (() => Backlinks) satisfies QuartzComponentConstructor diff --git a/quartz/components/Search.tsx b/quartz/components/Search.tsx new file mode 100644 index 00000000..f8dd8045 --- /dev/null +++ b/quartz/components/Search.tsx @@ -0,0 +1,35 @@ +import { QuartzComponentConstructor } from "./types" +import style from "./styles/search.scss" +// @ts-ignore +import script from "./scripts/search.inline" + +export default (() => { + function Search() { + return + } + + Search.afterDOMLoaded = script + Search.css = style + + return Search +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/index.ts b/quartz/components/index.ts index 98132388..61df101f 100644 --- a/quartz/components/index.ts +++ b/quartz/components/index.ts @@ -8,6 +8,8 @@ import Spacer from "./Spacer" import TableOfContents from "./TableOfContents" import TagList from "./TagList" import Graph from "./Graph" +import Backlinks from "./Backlinks" +import Search from "./Search" export { ArticleTitle, @@ -19,5 +21,7 @@ export { Spacer, TableOfContents, TagList, - Graph + Graph, + Backlinks, + Search } diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts index 40665ca4..1c1149dd 100644 --- a/quartz/components/scripts/graph.inline.ts +++ b/quartz/components/scripts/graph.inline.ts @@ -1,5 +1,6 @@ import { ContentDetails } from "../../plugins/emitters/contentIndex" import * as d3 from 'd3' +import { registerEscapeHandler } from "./handler" type NodeData = { id: string, @@ -25,7 +26,8 @@ function removeAllChildren(node: HTMLElement) { } async function renderGraph(container: string, slug: string) { - const graph = document.getElementById(container)! + const graph = document.getElementById(container) + if (!graph) return removeAllChildren(graph) let { @@ -265,16 +267,15 @@ function renderGlobalGraph() { const container = document.getElementById("global-graph-outer") container?.classList.add("active") - function hideGlobalGraph(this: HTMLElement, e: HTMLElementEventMap["click"]) { - if (e.target !== this) return + function hideGlobalGraph() { container?.classList.remove("active") - const graph = document.getElementById("global-graph-container")! + const graph = document.getElementById("global-graph-container") + if (!graph) return removeAllChildren(graph) } - container?.removeEventListener("click", hideGlobalGraph) - container?.addEventListener("click", hideGlobalGraph) + registerEscapeHandler(container, hideGlobalGraph) } document.addEventListener("nav", async (e: unknown) => { diff --git a/quartz/components/scripts/handler.ts b/quartz/components/scripts/handler.ts new file mode 100644 index 00000000..c806a8b6 --- /dev/null +++ b/quartz/components/scripts/handler.ts @@ -0,0 +1,19 @@ +export function registerEscapeHandler(outsideContainer: HTMLElement | null, cb: () => void) { + if (!outsideContainer) return + function click(this: HTMLElement, e: HTMLElementEventMap["click"]) { + if (e.target !== this) return + e.preventDefault() + cb() + } + + function esc(e: HTMLElementEventMap["keydown"]) { + if (!e.key.startsWith("Esc")) return + e.preventDefault() + cb() + } + + outsideContainer?.removeEventListener("click", click) + outsideContainer?.addEventListener("click", click) + document.removeEventListener("keydown", esc) + document.addEventListener('keydown', esc) +} diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts index 5cbe170a..f7cd9986 100644 --- a/quartz/components/scripts/popover.inline.ts +++ b/quartz/components/scripts/popover.inline.ts @@ -39,6 +39,7 @@ document.addEventListener("nav", () => { const popoverElement = document.createElement("div") popoverElement.classList.add("popover") + // TODO: scroll this element if we specify a header/anchor to jump to const popoverInner = document.createElement("div") popoverInner.classList.add("popover-inner") popoverElement.appendChild(popoverInner) diff --git a/quartz/components/scripts/search.inline.ts b/quartz/components/scripts/search.inline.ts new file mode 100644 index 00000000..b1c62654 --- /dev/null +++ b/quartz/components/scripts/search.inline.ts @@ -0,0 +1,192 @@ +import { Document } from "flexsearch" +import { ContentDetails } from "../../plugins/emitters/contentIndex" +import { registerEscapeHandler } from "./handler" + +interface Item { + slug: string, + title: string, + content: string, +} +let index: Document | undefined = undefined + +function relative(from: string, to: string) { + const pieces = [location.protocol, '//', location.host, location.pathname] + const url = pieces.join('').slice(0, -from.length) + to + return url +} + +function removeAllChildren(node: HTMLElement) { + node.innerHTML = `` +} + +const contextWindowWords = 30 +function highlight(searchTerm: string, text: string, trim?: boolean) { + const tokenizedTerms = searchTerm.split(/\s+/).filter(t => t !== "") + let tokenizedText = text + .split(/\s+/) + .filter(t => t !== "") + + let startIndex = 0 + let endIndex = tokenizedText.length - 1 + if (trim) { + const includesCheck = (tok: string) => tokenizedTerms.some((term) => tok.toLowerCase().startsWith(term.toLowerCase())) + const occurencesIndices = tokenizedText.map(includesCheck) + + let bestSum = 0 + let bestIndex = 0 + for (let i = 0; i < Math.max(tokenizedText.length - contextWindowWords, 0); i++) { + const window = occurencesIndices.slice(i, i + contextWindowWords) + const windowSum = window.reduce((total, cur) => total + (cur ? 1 : 0), 0) + if (windowSum >= bestSum) { + bestSum = windowSum + bestIndex = i + } + } + + startIndex = Math.max(bestIndex - contextWindowWords, 0) + endIndex = Math.min(startIndex + 2 * contextWindowWords, tokenizedText.length - 1) + tokenizedText = tokenizedText.slice(startIndex, endIndex) + } + + const slice = tokenizedText.map(tok => { + // see if this tok is prefixed by any search terms + for (const searchTok of tokenizedTerms) { + if (tok.toLowerCase().includes(searchTok.toLowerCase())) { + const regex = new RegExp(searchTok, "gi") + return tok.replace(regex, `$&`) + } + } + return tok + }) + .join(" ") + + return `${startIndex === 0 ? "" : "..."}${slice}${endIndex === tokenizedText.length - 1 ? "" : "..."}` +} + +const encoder = (str: string) => str.toLowerCase().split(/([^a-z]|[^\x00-\x7F])/) +document.addEventListener("nav", async (e: unknown) => { + const currentSlug = (e as CustomEventMap["nav"]).detail.url + + // setup index if it hasn't been already + const data = await fetchData + if (!index) { + index = new Document({ + cache: true, + charset: 'latin:extra', + optimize: true, + encode: encoder, + document: { + id: "slug", + index: [ + { + field: "title", + tokenize: "forward", + }, + { + field: "content", + tokenize: "reverse", + }, + ] + }, + }) + + for (const [slug, fileData] of Object.entries(data)) { + index.add({ + slug, + title: fileData.title, + content: fileData.content + }) + } + } + + const container = document.getElementById("search-container") + const searchIcon = document.getElementById("search-icon") + const searchBar = document.getElementById("search-bar") as HTMLInputElement | null + const results = document.getElementById("results-container") + + function hideSearch() { + container?.classList.remove("active") + if (searchBar) { + searchBar.value = "" // clear the input when we dismiss the search + } + if (results) { + removeAllChildren(results) + } + } + + function showSearch() { + container?.classList.add("active") + searchBar?.focus() + } + + function shortcutHandler(e: HTMLElementEventMap["keydown"]) { + if (e.key === "k" && (e.ctrlKey || e.metaKey)) { + e.preventDefault() + const searchBarOpen = container?.classList.contains("active") + searchBarOpen ? hideSearch() : showSearch() + } else if (e.key === "Enter") { + const anchor = document.getElementsByClassName("result-card")[0] as HTMLInputElement | null + if (anchor) { + anchor.click() + } + } + } + + const formatForDisplay = (term: string, slug: string) => ({ + slug, + title: highlight(term, data[slug].title ?? ""), + content: highlight(term, data[slug].content ?? "", true), + }) + + const resultToHTML = ({ slug, title, content }: Item) => { + const button = document.createElement("button") + button.classList.add("result-card") + button.id = slug + button.innerHTML = `

${title}

${content}

` + button.addEventListener('click', () => { + const targ = relative(currentSlug, slug) + window.spaNavigate(new URL(targ)) + }) + return button + } + + function displayResults(finalResults: Item[]) { + if (!results) return + + removeAllChildren(results) + if (finalResults.length === 0) { + results.innerHTML = `` + } else { + results.append(...finalResults.map(resultToHTML)) + } + + } + + function onType(e: HTMLElementEventMap["input"]) { + const term = (e.target as HTMLInputElement).value + const searchResults = index?.search(term, 5) ?? [] + const getByField = (field: string): string[] => { + const results = searchResults.filter((x) => x.field === field) + return results.length === 0 ? [] : [...results[0].result] as string[] + } + + // order titles ahead of content + const allIds: Set = new Set([...getByField("title"), ...getByField("content")]) + const finalResults = [...allIds].map(id => formatForDisplay(term, id)) + displayResults(finalResults) + } + + + document.removeEventListener("keydown", shortcutHandler) + document.addEventListener("keydown", shortcutHandler) + searchIcon?.removeEventListener("click", showSearch) + searchIcon?.addEventListener("click", showSearch) + searchBar?.removeEventListener("input", onType) + searchBar?.addEventListener("input", onType) + + // register handlers + registerEscapeHandler(container, hideSearch) +}) diff --git a/quartz/components/styles/backlinks.scss b/quartz/components/styles/backlinks.scss new file mode 100644 index 00000000..3344a7b5 --- /dev/null +++ b/quartz/components/styles/backlinks.scss @@ -0,0 +1,22 @@ +.backlinks { + & > h3 { + font-size: 1rem; + margin: 0; + } + + & > ul { + list-style: none; + padding: 0; + margin: 0; + + & > li { + margin: 0.5rem 0; + padding: 0.25rem 1rem; + border: var(--lightgray) 1px solid; + border-radius: 5px; + & > a { + background-color: transparent; + } + } + } +} diff --git a/quartz/components/styles/popover.scss b/quartz/components/styles/popover.scss index 0006292c..9b794476 100644 --- a/quartz/components/styles/popover.scss +++ b/quartz/components/styles/popover.scss @@ -23,6 +23,8 @@ height: 20rem; padding: 0 1rem 1rem 1rem; font-weight: initial; + line-height: initial; + font-size: initial; border: 1px solid var(--gray); background-color: var(--light); border-radius: 5px; @@ -30,6 +32,10 @@ overflow: scroll; } + h1 { + font-size: 1.5rem; + } + visibility: hidden; opacity: 0; transition: opacity 0.3s ease, visibility 0.3s ease; diff --git a/quartz/components/styles/search.scss b/quartz/components/styles/search.scss new file mode 100644 index 00000000..bac584b3 --- /dev/null +++ b/quartz/components/styles/search.scss @@ -0,0 +1,134 @@ +.search { + min-width: 5rem; + max-width: 12rem; + flex-grow: 0.3; + margin: 0 1.5rem; + + & > #search-icon { + background-color: var(--lightgray); + border-radius: 4px; + height: 2rem; + display: flex; + align-items: center; + cursor: pointer; + + & > div { + flex-grow: 1; + } + + & > p { + display: inline; + padding: 0 1rem; + } + + & svg { + cursor: pointer; + width: 18px; + min-width: 18px; + margin: 0 0.5rem; + + .search-path { + stroke: var(--darkgray); + stroke-width: 2px; + transition: stroke 0.5s ease; + } + } + } + + & > #search-container { + position: fixed; + z-index: 999; + left: 0; + top: 0; + width: 100vw; + height: 100vh; + overflow: scroll; + display: none; + backdrop-filter: blur(4px); + + &.active { + display: inline-block; + } + + & > #search-space { + width: 50%; + margin-top: 15vh; + margin-left: auto; + margin-right: auto; + + @media all and (max-width: 1200px) { + width: 90%; + } + + & > * { + width: 100%; + border-radius: 5px; + background: var(--light); + box-shadow: 0 14px 50px rgba(27, 33, 48, 0.12), 0 10px 30px rgba(27, 33, 48, 0.16); + margin-bottom: 2em; + } + + & > input { + box-sizing: border-box; + padding: 0.5em 1em; + font-family: var(--bodyFont); + color: var(--dark); + font-size: 1.1em; + border: 1px solid var(--lightgray); + + &:focus { + outline: none; + } + } + + & > #results-container { + & .result-card { + padding: 1em; + cursor: pointer; + transition: background 0.2s ease; + border: 1px solid var(--lightgray); + border-bottom: none; + width: 100%; + + // normalize button props + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; + text-transform: none; + text-align: left; + background: var(--light); + outline: none; + + & .highlight { + color: var(--secondary); + } + + &:hover, &:focus { + background: var(--lightgray); + } + + &:first-of-type { + border-top-left-radius: 5px; + border-top-right-radius: 5px; + } + + &:last-of-type { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + border-bottom: 1px solid var(--lightgray); + } + + & > h3 { + margin: 0; + } + + & > p { + margin-bottom: 0; + } + } + } + + } + } +} diff --git a/quartz/components/styles/toc.scss b/quartz/components/styles/toc.scss index 117d2938..eee3ee8a 100644 --- a/quartz/components/styles/toc.scss +++ b/quartz/components/styles/toc.scss @@ -30,7 +30,6 @@ button#toc { overflow: hidden; max-height: none; transition: max-height 0.3s ease; - font-size: 0.9rem; & ul { list-style: none; diff --git a/quartz/components/types.ts b/quartz/components/types.ts index 0b9b0eb7..c7584b6f 100644 --- a/quartz/components/types.ts +++ b/quartz/components/types.ts @@ -10,6 +10,7 @@ export type QuartzComponentProps = { cfg: GlobalConfiguration children: QuartzComponent[] | JSX.Element[] tree: Node + allFiles: QuartzPluginData[] } export type QuartzComponent = ComponentType & { diff --git a/quartz/path.ts b/quartz/path.ts index 3ae51ccb..18d74d73 100644 --- a/quartz/path.ts +++ b/quartz/path.ts @@ -9,10 +9,6 @@ export function trimPathSuffix(fp: string): string { let [cleanPath, anchor] = fp.split("#", 2) anchor = anchor === undefined ? "" : "#" + anchor - if (cleanPath.endsWith("index")) { - cleanPath = cleanPath.slice(0, -"index".length) - } - return cleanPath + anchor } @@ -48,7 +44,8 @@ export function relativeToRoot(slug: string, fp: string): string { } export function relative(src: string, dest: string): string { - return path.relative(src, dest) + return "./" + path.relative(src, dest) + } export const QUARTZ = "quartz" diff --git a/quartz/plugins/emitters/contentIndex.ts b/quartz/plugins/emitters/contentIndex.ts index 0e03c23a..cd7c9245 100644 --- a/quartz/plugins/emitters/contentIndex.ts +++ b/quartz/plugins/emitters/contentIndex.ts @@ -1,20 +1,7 @@ -import { visit } from "unist-util-visit" import { QuartzEmitterPlugin } from "../types" -import { Element } from "hast" import path from "path" -import { trimPathSuffix } from "../../path" -interface Options { - indexAnchorLinks: boolean, - indexExternalLinks: boolean, -} - -const defaultOptions: Options = { - indexAnchorLinks: false, - indexExternalLinks: false, -} - -export type ContentIndex = Map +export type ContentIndex = Map export type ContentDetails = { title: string, links?: string[], @@ -22,39 +9,17 @@ export type ContentDetails = { content: string, } -export const ContentIndex: QuartzEmitterPlugin = (userOpts) => { - const opts = { ...userOpts, ...defaultOptions } +export const ContentIndex: QuartzEmitterPlugin = () => { return { name: "ContentIndex", async emit(_contentDir, _cfg, content, _resources, emit) { const fp = path.join("static", "contentIndex") const linkIndex: ContentIndex = new Map() - for (const [tree, file] of content) { - let slug = trimPathSuffix(file.data.slug!) - - const outgoing: Set = new Set() - visit(tree, 'element', (node: Element) => { - if (node.tagName === 'a' && node.properties && typeof node.properties.href === 'string') { - let dest = node.properties.href - if (dest.startsWith(".")) { - const normalizedPath = path.normalize(path.join(slug, dest)) - dest = trimPathSuffix(normalizedPath) - outgoing.add(dest) - } else if (dest.startsWith("#")) { - if (opts.indexAnchorLinks) { - outgoing.add(dest) - } - } else { - if (opts.indexExternalLinks) { - outgoing.add(dest) - } - } - } - }) - + for (const [_tree, file] of content) { + let slug = file.data.slug! linkIndex.set(slug, { title: file.data.frontmatter?.title!, - links: [...outgoing], + links: file.data.links ?? [], tags: file.data.frontmatter?.tags, content: file.data.text ?? "" }) diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index d88cf9c3..03bc0ff7 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -33,7 +33,7 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { }, async emit(_contentDir, cfg, content, resources, emit): Promise { const fps: string[] = [] - + const allFiles = content.map(c => c[1].data) for (const [tree, file] of content) { const baseDir = resolveToRoot(file.data.slug!) const pageResources: StaticResources = { @@ -50,13 +50,14 @@ export const ContentPage: QuartzEmitterPlugin = (opts) => { externalResources: pageResources, cfg, children: [], - tree + tree, + allFiles } const Content = opts.content const doc = - +
{header.map(HeaderComponent => )} diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index 358c59e0..0378b1bb 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -51,6 +51,7 @@ export function emitComponentResources(cfg: GlobalConfiguration, resources: Stat componentResources.afterDOMLoaded.push(spaRouterScript) } else { componentResources.afterDOMLoaded.push(` + window.spaNavigate = (url, _) => window.location.assign(url) const event = new CustomEvent("nav", { detail: { slug: document.body.dataset.slug } }) document.dispatchEvent(event)` ) diff --git a/quartz/plugins/transformers/index.ts b/quartz/plugins/transformers/index.ts index 51aaa341..b43b9c8c 100644 --- a/quartz/plugins/transformers/index.ts +++ b/quartz/plugins/transformers/index.ts @@ -3,7 +3,7 @@ export { GitHubFlavoredMarkdown } from './gfm' export { CreatedModifiedDate } from './lastmod' export { Katex } from './latex' export { Description } from './description' -export { ResolveLinks } from './links' +export { CrawlLinks } from './links' export { ObsidianFlavoredMarkdown } from './ofm' export { SyntaxHighlighting } from './syntax' export { TableOfContents } from './toc' diff --git a/quartz/plugins/transformers/links.ts b/quartz/plugins/transformers/links.ts index 4bf0e08e..3083ce7b 100644 --- a/quartz/plugins/transformers/links.ts +++ b/quartz/plugins/transformers/links.ts @@ -1,5 +1,5 @@ import { QuartzTransformerPlugin } from "../types" -import { relative, relativeToRoot, slugify } from "../../path" +import { relative, relativeToRoot, slugify, trimPathSuffix } from "../../path" import path from "path" import { visit } from 'unist-util-visit' import isAbsoluteUrl from "is-absolute-url" @@ -9,14 +9,18 @@ interface Options { markdownLinkResolution: 'absolute' | 'relative' /** Strips folders from a link so that it looks nice */ prettyLinks: boolean + indexAnchorLinks: boolean + indexExternalLinks: boolean } const defaultOptions: Options = { markdownLinkResolution: 'absolute', - prettyLinks: true + prettyLinks: true, + indexAnchorLinks: false, + indexExternalLinks: false, } -export const ResolveLinks: QuartzTransformerPlugin | undefined> = (userOpts) => { +export const CrawlLinks: QuartzTransformerPlugin | undefined> = (userOpts) => { const opts = { ...defaultOptions, ...userOpts } return { name: "LinkProcessing", @@ -36,6 +40,7 @@ export const ResolveLinks: QuartzTransformerPlugin | undefined> } } + const outgoing: Set = new Set() visit(tree, 'element', (node, _index, _parent) => { // rewrite all links if ( @@ -43,13 +48,27 @@ export const ResolveLinks: QuartzTransformerPlugin | undefined> node.properties && typeof node.properties.href === 'string' ) { - node.properties.className = isAbsoluteUrl(node.properties.href) ? "external" : "internal" + let dest = node.properties.href + node.properties.className = isAbsoluteUrl(dest) ? "external" : "internal" + // don't process external links or intra-document anchors - if (!(isAbsoluteUrl(node.properties.href) || node.properties.href.startsWith("#"))) { - node.properties.href = transformLink(node.properties.href) + if (!(isAbsoluteUrl(dest) || dest.startsWith("#"))) { + node.properties.href = transformLink(dest) + } + + dest = node.properties.href + if (dest.startsWith(".")) { + const normalizedPath = path.normalize(path.join(curSlug, dest)) + outgoing.add(trimPathSuffix(normalizedPath)) + } else if (dest.startsWith("#")) { + if (opts.indexAnchorLinks) { + outgoing.add(dest) + } } else { - + if (opts.indexExternalLinks) { + outgoing.add(dest) + } } // rewrite link internals if prettylinks is on @@ -70,8 +89,16 @@ export const ResolveLinks: QuartzTransformerPlugin | undefined> } } }) + + file.data.links = [...outgoing] } }] } } } + +declare module 'vfile' { + interface DataMap { + links: string[] + } +} diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index fcd4a5d1..fe626017 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -193,6 +193,7 @@ pre { code { font-size: 0.9em; + color: var(--dark); font-family: var(--codeFont); border-radius: 5px; padding: 0.1rem 0.2rem; diff --git a/tsconfig.json b/tsconfig.json index 6f5f221b..d71eecb7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,9 @@ { "compilerOptions": { "lib": [ - "esnext" + "esnext", + "DOM", + "DOM.Iterable" ], "module": "esnext", "target": "esnext", diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index 25487091..671a1db5 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/preact/src/jsx.d.ts","./node_modules/preact/src/index.d.ts","./node_modules/preact/jsx-runtime/src/index.d.ts","./node_modules/@types/unist/index.d.ts","./node_modules/vfile-message/lib/index.d.ts","./node_modules/vfile-message/index.d.ts","./node_modules/vfile/lib/minurl.shared.d.ts","./node_modules/vfile/lib/index.d.ts","./node_modules/vfile/index.d.ts","./node_modules/unified/index.d.ts","./quartz/resources.ts","./node_modules/@types/hast/index.d.ts","./quartz/plugins/vfile.ts","./quartz/plugins/types.ts","./quartz/cfg.ts","./node_modules/chalk/index.d.ts","./node_modules/@types/pretty-time/index.d.ts","./quartz/perf.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/minipass/index.d.ts","./node_modules/lru-cache/dist/cjs/index.d.ts","./node_modules/path-scurry/dist/cjs/index.d.ts","./node_modules/minimatch/dist/cjs/ast.d.ts","./node_modules/minimatch/dist/cjs/escape.d.ts","./node_modules/minimatch/dist/cjs/unescape.d.ts","./node_modules/minimatch/dist/cjs/index.d.ts","./node_modules/glob/dist/mjs/pattern.d.ts","./node_modules/glob/dist/mjs/processor.d.ts","./node_modules/glob/dist/mjs/walker.d.ts","./node_modules/glob/dist/mjs/ignore.d.ts","./node_modules/glob/dist/mjs/glob.d.ts","./node_modules/glob/dist/mjs/has-magic.d.ts","./node_modules/glob/dist/mjs/index.d.ts","./node_modules/rimraf/dist/mjs/index.d.ts","./node_modules/@nodelib/fs.stat/out/types/index.d.ts","./node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.stat/out/settings.d.ts","./node_modules/@nodelib/fs.stat/out/providers/async.d.ts","./node_modules/@nodelib/fs.stat/out/index.d.ts","./node_modules/@nodelib/fs.scandir/out/types/index.d.ts","./node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.scandir/out/settings.d.ts","./node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","./node_modules/@nodelib/fs.scandir/out/index.d.ts","./node_modules/@nodelib/fs.walk/out/types/index.d.ts","./node_modules/@nodelib/fs.walk/out/settings.d.ts","./node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","./node_modules/@nodelib/fs.walk/out/readers/async.d.ts","./node_modules/@nodelib/fs.walk/out/providers/async.d.ts","./node_modules/@nodelib/fs.walk/out/index.d.ts","./node_modules/fast-glob/out/types/index.d.ts","./node_modules/fast-glob/out/settings.d.ts","./node_modules/fast-glob/out/managers/tasks.d.ts","./node_modules/fast-glob/out/index.d.ts","./node_modules/globby/index.d.ts","./node_modules/@types/serve-handler/index.d.ts","./node_modules/@types/mdast/index.d.ts","./node_modules/micromark-util-types/index.d.ts","./node_modules/mdast-util-from-markdown/lib/index.d.ts","./node_modules/mdast-util-from-markdown/index.d.ts","./node_modules/remark-parse/lib/index.d.ts","./node_modules/remark-parse/index.d.ts","./node_modules/mdast-util-to-hast/lib/state.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/blockquote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/delete.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/emphasis.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/heading.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/html.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/inline-code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list-item.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/paragraph.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/root.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/strong.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-cell.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-row.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/text.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/thematic-break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/index.d.ts","./node_modules/mdast-util-to-hast/lib/index.d.ts","./node_modules/mdast-util-to-hast/index.d.ts","./node_modules/remark-rehype/lib/index.d.ts","./node_modules/remark-rehype/index.d.ts","./node_modules/to-vfile/lib/index.d.ts","./node_modules/to-vfile/index.d.ts","./quartz/path.ts","./quartz/processors/parse.ts","./quartz/processors/filter.ts","./node_modules/gray-matter/gray-matter.d.ts","./node_modules/micromark-extension-frontmatter/matters.d.ts","./node_modules/micromark-extension-frontmatter/lib/syntax.d.ts","./node_modules/micromark-extension-frontmatter/lib/html.d.ts","./node_modules/micromark-extension-frontmatter/index.d.ts","./node_modules/remark-frontmatter/index.d.ts","./quartz/plugins/transformers/frontmatter.ts","./node_modules/micromark-extension-gfm-footnote/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-footnote/lib/html.d.ts","./node_modules/micromark-extension-gfm-footnote/index.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/html.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-strikethrough/index.d.ts","./node_modules/micromark-extension-gfm/index.d.ts","./node_modules/mdast-util-to-markdown/lib/types.d.ts","./node_modules/mdast-util-to-markdown/lib/index.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","./node_modules/mdast-util-to-markdown/index.d.ts","./node_modules/markdown-table/index.d.ts","./node_modules/mdast-util-gfm-table/lib/index.d.ts","./node_modules/mdast-util-gfm-table/index.d.ts","./node_modules/mdast-util-gfm/lib/index.d.ts","./node_modules/mdast-util-gfm/index.d.ts","./node_modules/remark-gfm/index.d.ts","./node_modules/@types/nlcst/index.d.ts","./node_modules/retext-smartypants/index.d.ts","./node_modules/remark-smartypants/index.d.ts","./quartz/plugins/transformers/gfm.ts","./node_modules/@napi-rs/simple-git/index.d.ts","./quartz/plugins/transformers/lastmod.ts","./node_modules/mdast-util-math/lib/index.d.ts","./node_modules/mdast-util-math/index.d.ts","./node_modules/remark-math/index.d.ts","./node_modules/@types/katex/index.d.ts","./node_modules/rehype-katex/index.d.ts","./quartz/plugins/transformers/latex.ts","./node_modules/hast-util-to-string/index.d.ts","./quartz/plugins/transformers/description.ts","./quartz/plugins/transformers/index.ts","./quartz/plugins/filters/draft.ts","./quartz/plugins/filters/explicit.ts","./quartz/plugins/filters/index.ts","./quartz/plugins/emitters/contentpage.ts","./quartz/plugins/emitters/index.ts","./quartz/plugins/index.ts","./quartz/processors/emit.ts","./quartz/index.ts","./quartz.config.ts","./quartz/components/head.tsx","./package.json","./node_modules/@types/cli-spinner/index.d.ts","./node_modules/@types/ms/index.d.ts","./node_modules/@types/debug/index.d.ts","./node_modules/@types/json5/index.d.ts","./node_modules/@types/require-from-string/index.d.ts","./node_modules/@types/yargs-parser/index.d.ts","./node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"b7feb7967c6c6003e11f49efa8f5de989484e0a6ba2e5a6c41b55f8b8bd85dba","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"cf0779719c437592be3ed4cb0f76760a13aa6c6408e53ea6ab186a92d8b65002","2f6891be00549893b5ce20ba53f1940f56822053d1a71b8a455ee699478a7468","670683503e4e107e88dfec53d4360106fefb23ae2cb01575ba338849647b15f2","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","e0c7d85789b8811c90a8d21e25021349e8a756a256ae42d9e816ecd392f00f71","bb8aba28c9589792407d6ae0c1a6568f3ddc40be20da25bc1939e2c9d76436bb","8fa1868ab5af3818ff4746f383ea84206596e284f7dc5ffd40a0fac08ed093f9","8d4537ea6fcdde620af5bfb4e19f88db40d44073f76f567283aa043b81ef8a3e","0bb848976eff244e33741d63372cbfb4d15153a92c171d0a374a3c0ef327a175","af79b166f5d41ec2ebae57e9b67df564452b90ae3f0af4cb3c2d8ad5adbfd2db",{"version":"5e7d495b84c100f0f4d98eb26a189f573937e8632c1f651439ecda4b16953ffa","signature":"a8f2eab52233e1a594649ee899ddb034f50528d234a0c31cf58a86b56e4d1a6d"},"3d2cd8f3047fff04a71e7037a6a4cb9f4accb28dbd8c0d83164d414811025af0",{"version":"95e60d420050b849dfa2f318b8276eca66ab524421df318c0b5f6386d6b146f3","signature":"57aef9f13921c86297e800d319ca15316164d8da2a19198ded077159befbcfc1"},{"version":"2f060147829e0141094da2c52adc321e16ebe63f6ac4c0f0a7ed9786279f5f2b","signature":"c351b409da6a82856b4a56e8a40919dc5d9418bcb31de92df5df297fec51d063"},{"version":"6c2b7fac41ad649749508f18d5b1485404ee77ffb4966e97826ad914bd05f0ca","signature":"bfcdf9b6f0a223f44883ea8875fc1a604b42c8d57e52bb3ed6f4835493d96ffe"},"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","43a95e70896efd3483a07162a10895b0f1c9b6f05092ef114b46b1d9f7eef63a",{"version":"224bc47ac7f9a1f3795c1046ebfb8aae8b76180daf7d41ed77623b03b1a078d3","signature":"79a71c1a17f13f766d817c9357eb3de259659405679f75328fa36cc7606ec132"},"587f13f1e8157bd8cec0adda0de4ef558bb8573daa9d518d1e2af38e87ecc91f","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7a435e0c814f58f23e9a0979045ec0ef5909aac95a70986e8bcce30c27dff228",{"version":"241a2e19e03fd1d884e0f304429378d05bc2c1b26b5693c84868f7ad0674982d","affectsGlobalScope":true},"db71be322f07f769200108aa19b79a75dd19a187c9dca2a30c4537b233aa2863","0b70ce7a20fa21c7201a5a972b7f2288cb90ace8a2dde9f3344b5dfc6504abaf",{"version":"49479e21a040c0177d1b1bc05a124c0383df7a08a0726ad4d9457619642e875a","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","3fd0f1af75fb7abe0ea376aa71541daaf489f3d87c394b1165db684ea44b48be","3690133deae19c8127c5505fcb67b04bdc9eb053796008538a9b9abbb70d85aa","5b1c0a23f464f894e7c2b2b6c56df7b9afa60ed48c5345f8618d389a636b2108","be2b092f2765222757c6441b86c53a5ea8dfed47bbc43eab4c5fe37942c866b3","8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","1ca735bb3d407b2af4fbee7665f3a0a83be52168c728cc209755060ba7ed67bd",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"b85c02e14ecb2a873dad5a1de72319b265160ba48f1b83661aeb3bba1366c1bc","affectsGlobalScope":true},"f1a0b2dde686cb8a995d4ed11848be5eaf76fd5d56532942e0737b39d4a02c6d","fc3764040518a1008dd04bdc80964591b566b896283e00df85c95851c1f46237","55709608060f77965c270ac10ac646286589f1bd1cb174fff1778a2dd9a7ef31","790623a47c5eda62910098884ecb154dc0e5f3a23fc36c1bfb3b5b9ed44e2c2d","42b40e40f2a358cda332456214fad311e1806a6abf3cebaaac72496e07556642","354612fe1d49ecc9551ea3a27d94eef2887b64ef4a71f72ca444efe0f2f0ba80",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"6a325d4c96569bdd5a9a59f819a672e2d5644ee6cf98ab910e0064402557af8d","5e2b91328a540a0933ab5c2203f4358918e6f0fe7505d22840a891a6117735f1","3abc3512fa04aa0230f59ea1019311fd8667bd935d28306311dccc8b17e79d5d",{"version":"14a50dafe3f45713f7f27cb6320dff07c6ac31678f07959c2134260061bf91ff","affectsGlobalScope":true},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true},"1349077576abb41f0e9c78ec30762ff75b710208aff77f5fdcc6a8c8ce6289dd","e2ce82603102b5c0563f59fb40314cc1ff95a4d521a66ad14146e130ea80d89c","a3e0395220255a350aa9c6d56f882bfcb5b85c19fddf5419ec822cf22246a26d","c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","898840e876dfd21843db9f2aa6ae38ba2eab550eb780ff62b894b9fbfebfae6b","0cab4d7d4edc40cd3af9eea7c3ed6d1016910c0954c49c4297e479bf3822a625","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","164deb2409ac5f4da3cd139dbcee7f7d66753d90363a4d7e2db8d8874f272270","1fb6c5ec52332a8b531a8d7a5300ac9301f98c4fe62f68e744e0841ccba65e7e",{"version":"ab294c4b7279318ee2a8fdf681305457ecc05970c94108d304933f18823eeac1","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","bbda6ea452a2386093a1eda18a6e26a989e98869f1b9f37e46f510a986d2e740","812b25f798033c202baedf386a1ccc41f9191b122f089bffd10fdccce99fba11","244cdeb8c344eb42e6142cbb0727752b9b735443fba7007c11b14ca06ebed97c",{"version":"75dd741ca6a6c8d2437a6ca8349b64b816421dbf9fe82dd026afaba965576962","affectsGlobalScope":true},{"version":"8799401a7ab57764f0d464513a7fa7c72e1d70a226b172ec60fff534ea94d108","affectsGlobalScope":true},"2ce2210032ccaff7710e2abf6a722e62c54960458e73e356b6a365c93ab6ca66","92db194ef7d208d5e4b6242a3434573fd142a621ff996d84cc9dbba3553277d0","69f5747ad0887c24c76858ed458712101771349f2287e21871fcd1562daa7dc0",{"version":"0bd9543cd8fc0959c76fb8f4f5a26626c2ed62ef4be98fd857bce268066db0a2","affectsGlobalScope":true},"1ca6858a0cbcd74d7db72d7b14c5360a928d1d16748a55ecfa6bfaff8b83071b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"220717df86539e219f619d31965d177e7235185e4bc6f6e6ed7e11a9b004d5ca","d0f7a15f34c5572c4d3710a95053196e76da944543dabe8265944bb7c6f52700","cb656e57ac7dcb4a0850d3063f6f2618b11bdefcbf241fdd7ebf5b52107b17a0","25552cdd29362e0176f96789dc0414de7f44bc144b07c74fac7577a28f91d70b","97066cfd7010c2463bfcc2e7c0adc4bf2786ea682035f5a210c21f123ca42237","de0199a112f75809a7f80ec071495159dcf3e434bc021347e0175627398264c3","1a2bed55cfa62b4649485df27c0e560b04d4da4911e3a9f0475468721495563f","854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f","d392cdf58e0c7a988c3df400caa63a5c070c0bf13996ec619e3535e19e952a95","6ff702721d87c0ba8e7f8950e7b0a3b009dfd912fab3997e0b63fab8d83919c3","237aa833f2cd2ff42db5d3f5a2b7b143ead11aff861097593ecd99015a69b220","50542cad26bd372cb942d418d42cdeced50a4d4226db390a1e3405f3d9a6103f","60660150e844e9d27f7ae4dfc7456f27fc683bed718d0e4a1dd4908d5da11d35","ef1f3eadd7bed282de45bafd7c2c00105cf1db93e22f6cd763bec8a9c2cf6df1","5e763f3932cf04417e4145a103da1f1f67b10f7c584bcc976641611ed72af668","a5dcba6cd802f8e47bf0d83f3836a92cd494fac81b8a49924f190f61f92795ce","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","4498108732bcb5b7000ff9cdc011058b4155e985271ac3f926468acfed0c79dd","36d7b72ed8f35f9e21cc223c06697eca0d4699178fc59cfd3a310e2983fd0fd6","5a5cbc7aa7c4f74f49073d747a2a2518d1ec22694c88bc46092b0f25ccb8ebb7","51bfe35171efe121cefb2501a6cd674c367d541c4c8b0ae639c126adcc84f37d","4efb2a45d9d3e146d6237c2b74c2afcc7512f8bdd939995f2beaa27ec385a600","d51a4e4450ee23d941db79652c660ca2612691dba235fd5d14d4b2a622c72312","5774751340e987a6a9e4a5dcc03ff68a6515adc2b91423e1af2f660fc8f30e81","cce0134a9da5d93b08f4da07a18ca5bcb8f595216783bca8572182a928f0f03b","31c74be259150eec1e3f8f4113f99cd10d5f1a278a5a7ef6fa29478d71766618","87c28e995603b79f21470eac66a70f9e437aecd70e514bb7e1a5a090aee5ea54","ac72dfd5a793c277251c116b35791d3ce358edfea94b942c270d2bda9be5cbfe","c1b6d322936b18698bf8ea6deed76e28d5a6a3cccb6c7fa345a01c969f637b65","8b0a2400ba7522569871331988f820ba4cfc386f845b01058c63a62ad9db8d03","d3e29566a694a4068d450a58f59e3a3662fc12f74345343d441ef4d954984503","f7b3e68f7972250809e5b0cbd8f0e1f9da8c1dbf70244f289b204f1b49c2d398","4c7c99f7787c5c2ea6cbd911a7b5c7c2a4ee1cb9d7f538805ee2550cf1f1fb99","1557bf37fc8d5f129436caa0212f25d6cbeaf9d20e2e3a60b13306ff62a1d7a0","9a1e77270d63875c9a38630f9a7a9126f9a8df0245d5eb220832a65d408079eb","e48d0036e626bb40f236e236670722445ffff854908c2d9515b2b5b7f677794f","30f9018873d6d80256298011161a664a14b927f719f8a7605ceb8b49bc8808da","f543ea0fe820064a2cdbb39d2b2846c507467c4771eafcda2091da43b05c077b","9066d02264a67aae05410c340c8fa41a79bb076c33d1c6ae3ec29a05828f4c05","00435c177c3da6998c2f95b9e71239f00cfabd3461401cc4d8606ee3afb732b1","d432a2956d1efa172e1c60a8186a81657f2f9f4ba449c6abdfa9d057d484c45d","bc6679207eccaa45e49b930ad45ec8e7903bd8b0868e086d8bad91f79c914ca0","4dd35e71d52007465787dd2f374cc756a29e6c9b96dc237d0465d0294170c529","7ebf1f440efe6efebeb58a44000820cbe959da9d9496621fa6dcbc02666e3002","08a9e70641597e23d00be62e3a94b69ad93c5cf5541ec7bfdeb5e9f69c845507","ded59c554118589a8729fb70429318e41e7e8155b2aff5f3d7a77933e49dbc10","3af507089e65c1472a87e5f7345ec18838d7e923c2c06fdad3d31543278af762","c867e6d7de78f96eb55b534b3aca1da4e029a6ab0e4ea9d0610acf11d737f8a0","2df075b38e2135201202640fe92bce8d03fb319fece410b088a22ab4e1be7702","b9f07153f8e881c4cca036abccaa134df30cf09a3381772d089d1eeabe45770d","88213e972b5989f217627bdcb79a697f66821e8ff135265712346d532243084f","bf6122555f34582e6d5424a88676d90f2333e0e920764895c15d39b6c856053c","bf04a1c9ccfeabf521b7b97f388d05bc5f628422253399eb157fec0d9cd213ce","3c6ecfcc6ac82b5866368d1efbddeeb3bfae03962747bf6928d8faa092e5b369","06d19317f4c8474255b3ceab7102763faf7ff0aa4cc305384b13ccb6d27b2e50","ebe1694b3a7a0265b9cf8fb3bfed6575907247b61add671ea9771fd6715d1b29","bdf4a7242e5cce621b5ba689351af780b0b665d97ea88c71f50801aa80560236","6bd6ae32288500128ae355de57d6bc3b5884f37e1e5d5ac597b142f63b3c8121","a6634dbc56e3d75efac697e59fef032aa15cc537acf7f6ad3a045001f48483f8","0ac932efed612f58eb5033bd449a5fe7ae1bc61fa0ff960f6ebbc8bd4ceda267","b4a07a5abe3d0a4c05f6722c024f842dc7909d5ab8e9212d98c393c2ea8cb09f",{"version":"c9d003974ada0aa6b4aa6e619fcfc68bb641107255ac1265f75fb2abf5d21fc5","signature":"73b060ae3f66f7598d036695d4e3adedb592839cc260f5f0650ef7771f93a0d6"},{"version":"48fd9ad07b2050480b9756c5be2336bfc1593d29de98e8d8f9a74b34d0db2607","signature":"72f0f1d4f0fa63bd0972d092f16008f3fd798d3aa1355cf8d3f8fa90e5f86035"},{"version":"db3890a8829cb6e3467ab5df9cd2b2215bdb7b859a2c9d82c1e624859f7ca6e7","signature":"7b9b2e7a7c50fa34900379156363bbdfe479f8a13180c78ba45b20648538cd25"},"a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892","fa81d09d80cc4288c57f8b0c30892392fc9ea7b1d59c3126472f432cb8f305dc","92098dee0026977e476fdcf2f7d35a57edf0a59448902e76b6429b177e4a0003","c0ab9e9990cdddf3d917bab6812c60d31aa7f358182ba61e9bdde2daed3f7968","9e4646339b6e49806147a857bedbb5d7d930a8101fb4724b4a0e2eb7910ac69d","0c0ad11991c2556f9c0e3074cc2f9bd04bd704f546b40363aec12c3fa5d5e41c",{"version":"cdab0c4ea2dbc56fe362e5ff39e21a450d7aa7ba33ded4a973510cf69b6d85a8","signature":"d0ea35611e3cb7f8807218ea5c23cb24da54ea9d342a98d1fdecada8d4c39893"},"8510f56ab8598d18ec11cb2535112e2aace53e06da7d2d4fbb046e5c6cfb743e","1f85065e4d231eeb843a8485847ca66855a82984db1788ead57db359c6a52128","73e6d5fd05900c8e38c3f340bb48fead3f5d057932f422266239a227a7384145","26c304c279c0faf6ac61854c67373342e002a3d6c7ff0d8fcc7cee94f0ad323a","19e19f843bd6f03937653773c6f359015e8de2f8c4ec7767fb72caec64b98222","d5d6306719dffccd6ecd770265c7833d4e87c374cd894ffba23a64cbb5781c82","7ccd7b1d3c72e8ee639f48aaf190a4d2c9bf4c6650a22501d0fa98b8e3fc2fe1","ac052259a6eec4dc9e73e2309a64fa0fc4f7edba776418355b25e67cf24d3318","e83857dd6e1c80bacacdaee3eaf2bd71d8331880fd4705489e5e1383e0ac78a8","dceb21129b0ae66beddafba41b8765f27bf95669a8f7fbe3e94025e01c9351a8","859ea22746d11ed8386ec8d9b63b998462510705d527b83494f6a2fcaa7a5de4","825b79a00bb5650472780a23f75ee17cffe4d0eae235da96e50d3b8cd9456ea5","5b6ba1af9d52d4a47eb6908d1aebd2fe348d8212205b203d25ae528b46822eff","92ae8af22ba9f4d3728ee0075a23f5a9f2e071bb677e7db01ec2f44cc01ed473","a3f55be7fa724c524698e82466c2a651f352e673f63428d953923de161b1095c","f34def9623f89b02ac2568eeee0cfa655411e56b79f1198143053709d1987110","bc0d6e115f78a602be8f82c6977c3a3b4f84fa144e06706bd768797cd683f2b5","fb4b80d4f7140829a10b48ea77584e191098d20fbe77039e171fce8de1b257ac","871b7a0478e9b76721ca4f596acd219b2ff60f58fbf95198117ce4c1bf8eb52a","38a6564c83f8e5c76f0cbbd823c5ed16c9ea9e55f25629ca4a1384d3447b27f9","2faea076f501719cba9eb56cdf431e5efc09bc81b12a4329a825fedce77c6503","46f0d38a72546ad31308f6730267f835bea40803b9117c42a29ad009706cda9f","3a2cad3fdc52e8407c3c9a044c10a4db897bba4c1e30a96461f2e7b2be9955c0","a8e0ac700a94d9a42add85453d32842101fb1f08c1a296a02eb27105e78917e1","70cb02181c04656d711bca5c332549beae390bed0107bd97c419a3466bb39306","afe412b89ebed32a7eb2e44fe185cb24027d36f8543023e57ca36ead6e59193c","5a0012861a95843c567475a90362f686019af229a8946779ccc44c7efb5b1f44","586c4ef6496185cdbc08391fdc5f49dd80b14cdb2d01ace355b2b150f3fe71eb","148e197eb64a4c80531e4c959012755ce7fbfdbcb8d17721eac0c8a983c3e51c","edb06b0fc903fc619a7f2a3aeb6579e5b787eb624c349da738b574720558a596","d6fdaeb6f1e4e29d7827e30d743dfef5cb6c8bca4bc546001a3b3e751a2de06c","92f92e2b21f14f7ad07b15902ba806b89f37d8a83a7d127f7e638f92f241ddf8","74f4c396d57693d72e769ccc21b83542a78a6f3825ee0fe69cfefd7713f5e6cf","03a3957f7ccf2ceb0940c64e35734ed50c0d090c161924c44e79cfb7c9c437f1","010bb5235c40300fe81fd4af2dc7d48b573ef626e65d529242035274121f4c83","801bcd63fc346570aa633c166bc5869da8cb9ad252e113c4fe46800296f54147","1b23c2aae14c17f361f6fcef69be7a298f47c27724c9a1f891ea52eeea0a9f7f","4dd0179485e44a0d416b258ffc27667454ee4da96a7816ca998909cc42891d09","ff9426068448c2ecd28cef056c51c7eb9dbaeb3c7b8a5ab4843103d9081840eb",{"version":"1347854a31a7b54e7c65d41ecf33c09da692653790a16db985c08fd1f68e6a12","signature":"67d4fc529a736ed13bc0bb896f9fba0a45d4a97a1da9a4ef4279656886a852d2"},"9ccad2264d463d89f9246a6e2b3c5fc2ea4fa93fd1d766661dd3fc06a0ec6128",{"version":"fdd5f0f022d5a24ca8d2d2721efab91ea7e2047d7f07ee8d08693a77d4ca959c","signature":"a90c40035b671f1ab008e3e24004769cf09ad69b5a350a0294dc450f25dd91d3"},"eac47ed99cc76de6507dd9d6a9910023d3fd810227f473050546c1b786bead4b","5cc3a8b25d4670152aff1f05614a58c94829388c033951aebf4be5cfa6c43ea9","6ba2d97e94a13a5c21c3c7105f01fda5491b7ecf638230cebc46ead1204a8559","a3c1977660766af91c7b8efe2106792f0f6375bde60a4f28a438242bd93c558e","ee2beb928f0554aacc404552cb44c86c8afd1aaf8e452e405e37861681c695bd",{"version":"123758d1e3ba2cd346c4b846596deb78e321841cd78c2964c7f41be77adef237","signature":"3d56bf34769c6f0ce3888f4936586fd1cfe19b2cb3f8460579edb4ae5e80468d"},"86ae9ad4466ed3302ebdf35cb380df8d798f998f44c76c8985d8edce586fa0cb",{"version":"16e0aabbac29efdb657febdbd49b78a848d0932882bedc7a50829bd44b0afb5a","signature":"045fd07a1aab58a8f455fa929af79a45eaf85d7db4dfa26035a481201736c284"},{"version":"e41ea5d0f4a28bc4c2b7da0da4b6f529ca4cbf817b4062ae23762db8a18eb105","signature":"08ad86db2b3fd8b6bb131f9133e6ab4f456165492a3ff7c7ef4a15e7a5a017fd"},{"version":"d08278434931478679e5350b565eda7bf2c5fc8167059bf811a4f2839745bd1b","signature":"10d436be92a171150483cb13823ee92b4aff2f993d89727ba2f6e8f70ab1127e"},{"version":"d884fb2c47314e00c982b4da2c50e55e740eef17516122a8850889b12ce0a246","signature":"126a68fe50a9fbba85fefc9c1fea6e92171c98655d5b25a661863a6df1fd1ca4"},{"version":"21f105677d8c332867fc33c0820c6c2ae3bab9359a67394d4029d4a2b2b4879f","signature":"b1478d32f7d34beab99ba1352b10e8c4d009ad07f4c544c7911f400b4a54bbbb"},{"version":"cc2531828dbc58344fac5c2a1823987ec46fb0b0bee3250df71b71c5eec044e7","signature":"83f8beaa0224eece2c50388f7e9bfa551199a60a7a691d62e806100b27e91462"},{"version":"0d960dea09740f620ebf03c7cd8ca8069259406da8aa793578882e6c50049efe","signature":"772949094875b7fff2bc5037a9eb8a50373bc548d09492f7e03893ba7486999c"},{"version":"552db59614829a98cfa6a695cffbc2bb99e0b5bc8b5bfcc22d37c1d2d9408531","signature":"b92974ac691ed7a5292bb8ff36efc378470f0a23f8bb762ef65712e938f55acd"},{"version":"408e0d28a95c78536c1eaf23fdd6451fcca95ac75b41a15f0e0e46a7c6784feb","signature":"79ada1fe36dd967f27d4d10daded1bc295c21be4be9c9de81c3bed05af451440"},{"version":"eb4dbaebbf210d67b4f95d3da54845553127f9a83bfba1f7d5e3683c9b4f45f3","signature":"cadba0a98abadfe3db2a3704205545e5fc327900b35705864778cc2e3ef958a9"},{"version":"2c5e718f6e47b1ebfd6f872397627f275cdfa463595855482ea5bf94442e4a25","signature":"3812d5ce8a81edcce39a04a48803dc1f93a0e824572aefcacacb8b6d8c9c803b"},{"version":"c9603a69d64ea8bea2bf844e60440d6f093e1be04123948ad65043dff762b3f1","signature":"94abc4282911dd9b2c40aecff403657035c7ab90722d49219fcb094b0c79de0f"},{"version":"384df7903e085f52b76cc27af6e06896e4ce867c8e232fca266ac7a8f69d798f","signature":"6c684effd3e05f70c30f7e8f51c80573a84d857608a325eeb85806f6af196dcd"},"c0df6627d0c30dc70d26c2d500506b073ff63584c4621f9261e510ad954ad2bd","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","93b7325b49dfbf613d940ed0e471216657b2d77459dac34f1b5b1678f08f884c","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","16bc73d6aa0d950847e7b46da26c86e8cfa9c94a8365e43cb175d3467a1f4b13","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","e9eb1b173aa166892f3eddab182e49cfe59aa2e14d33aedb6b49d175ed6a3750"],"root":[71,[73,75],78,[208,210],217,257,259,265,[267,279]],"options":{"allowSyntheticDefaultImports":true,"esModuleInterop":true,"jsx":4,"jsxImportSource":"preact","module":99,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[125],[125,152,153],[125,153,154,155,156],[125,132,153,155],[125,152,154],[96,125,132],[96,125,132,148],[125,148,149,150,151],[125,148,150],[125,149],[113,125,132,157,158,159,162],[125,158,159,161],[95,125,132,157,158,159,160],[125,159],[125,157,158],[125,132,157],[125,132],[125,281],[64,125],[79,125],[82,125],[83,88,116,125],[84,95,96,103,113,124,125],[84,85,95,103,125],[86,125],[87,88,96,104,125],[88,113,121,125],[89,91,95,103,125],[90,125],[91,92,125],[95,125],[93,95,125],[95,96,97,113,124,125],[95,96,97,110,113,116,125],[125,129],[91,95,98,103,113,124,125],[95,96,98,99,103,113,121,124,125],[98,100,113,121,124,125],[79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[95,101,125],[102,124,125],[91,95,103,113,125],[104,125],[105,125],[82,106,125],[107,123,125,129],[108,125],[109,125],[95,110,111,125],[110,112,125,127],[83,95,113,114,115,116,125],[83,113,115,125],[113,114,125],[116,125],[117,125],[113,125],[95,119,120,125],[119,120,125],[88,103,113,121,125],[122,125],[103,123,125],[83,98,109,124,125],[88,125],[113,125,126],[125,127],[125,128],[83,88,95,97,106,113,124,125,127,129],[113,125,130],[96,98,125,132],[125,285],[125,132,164,165,166],[125,164,165],[125,164],[125,132,163],[125,132,133,135,139,140,143],[125,144],[125,135,139,142],[125,133,135,139,142,143,144,145],[125,132,139],[125,135,139,140,142],[125,132,133,135,140,141,143],[125,167],[72,125,203],[125,172],[64,125,170,171,173,250,261],[125,173,247,249,261],[125,170,173,247,248,250,261],[125,251],[125,173,247,250,261],[125,170,173,247,250,260,261],[72,125,176,201,202,203],[72,125,170,176,203,261],[125,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200],[72,125,170,203,261],[125,225,226,246],[125,170,225,261],[125,170,261],[125,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245],[125,225],[64,125,170,247,250,261],[125,212,213,214],[125,171,212],[125,218,219],[125,171],[125,221,222],[125,171,220,223],[125,139],[125,136,137,138],[95,113,125,132],[96,105,125,132,133,134],[61,62,125],[61,125],[62,125],[70,72,125,203,263],[70,125,170,212,215,261],[70,125,170,224,252,261],[70,125,170,261],[70,125,170,174,261],[70,125,170,173,250,261],[125,203,204],[70,72,125,170,202,203,261],[70,125,170,255,261],[70,125,254],[96,125,132,146],[125,206],[69,124,125,132,217,259,267,274],[64,69,125,217,259,267,274],[65,125],[68,125],[64,66,67,69,125,217,259,267,274],[63,125,274,276],[63,74,125],[63,71,125],[63,75,76,78,98,105,125,147,168,169,209,210,275],[63,105,125],[63,76,77,125],[63,73,74,125,208],[63,125,272],[63,73,74,125],[63,125,269,270],[63,69,71,74,125,217,259,267,268,271,273],[63,69,70,72,74,125,203,217,259,266,274],[63,69,70,74,125,211,216,259,267,274],[63,70,74,125,253,256],[63,125,217,257,259,265,267],[63,69,70,74,96,105,125,217,258,267,274],[63,70,71,74,125,262,264],[63,70,71,73,125],[63,68,72,125,203],[63,73,74,75,78,96,105,125,208,274],[63,73,74,78,125],[63,70,72,73,74,78,105,125,174,175,203,205,207,208],[63,125],[72,125],[70,72,125,263],[64,69,125,274],[64,66,67,69,125,274],[74],[62,71],[75],[73,74],[272],[269,270],[69,71,74,217,259,267,268,271,273,274],[69,70,74,217,259,267,274],[70,74],[217,257,259,265,267],[70,71,74],[70,71,73],[68,72,203],[73,75],[70,72,73,74,174,203]],"referencedMap":[[258,1],[154,2],[157,3],[156,4],[155,5],[153,6],[149,7],[152,8],[151,9],[150,10],[148,6],[163,11],[162,12],[161,13],[160,14],[159,15],[158,16],[280,17],[282,18],[72,19],[283,1],[263,1],[170,19],[281,1],[254,19],[79,20],[80,20],[82,21],[83,22],[84,23],[85,24],[86,25],[87,26],[88,27],[89,28],[90,29],[91,30],[92,30],[94,31],[93,32],[95,31],[96,33],[97,34],[81,35],[131,1],[98,36],[99,37],[100,38],[132,39],[101,40],[102,41],[103,42],[104,43],[105,44],[106,45],[107,46],[108,47],[109,48],[110,49],[111,49],[112,50],[113,51],[115,52],[114,53],[116,54],[117,55],[118,56],[119,57],[120,58],[121,59],[122,60],[123,61],[124,62],[125,63],[126,64],[127,65],[128,66],[129,67],[130,68],[77,1],[284,1],[169,69],[64,1],[285,1],[286,70],[76,1],[167,71],[166,72],[165,73],[164,74],[144,75],[145,76],[143,77],[146,78],[140,79],[141,80],[142,81],[168,82],[211,1],[266,83],[134,1],[248,1],[173,84],[172,85],[250,86],[249,87],[252,88],[251,89],[261,90],[260,89],[203,91],[177,92],[178,92],[179,92],[180,92],[181,92],[182,92],[183,92],[184,92],[185,92],[186,92],[187,92],[201,93],[188,92],[189,92],[190,92],[191,92],[192,92],[193,92],[194,92],[195,92],[197,92],[198,92],[196,92],[199,92],[200,92],[202,92],[176,94],[247,95],[227,96],[228,96],[229,96],[230,96],[231,96],[232,96],[233,97],[235,96],[234,96],[246,98],[236,96],[238,96],[237,96],[240,96],[239,96],[241,96],[242,96],[243,96],[244,96],[245,96],[226,99],[225,100],[215,101],[214,102],[213,102],[212,1],[220,103],[219,104],[218,104],[223,105],[221,104],[222,104],[224,106],[171,1],[136,107],[137,107],[139,108],[138,107],[133,109],[135,110],[63,111],[62,112],[61,113],[264,114],[216,115],[253,116],[262,117],[175,118],[174,119],[205,120],[204,121],[256,122],[255,123],[147,124],[207,125],[206,126],[59,1],[60,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[10,1],[1,1],[11,1],[58,1],[70,127],[66,128],[65,19],[69,129],[68,130],[67,1],[279,1],[277,131],[75,132],[278,133],[276,134],[208,135],[78,136],[272,137],[273,138],[269,139],[270,139],[271,140],[274,141],[267,142],[217,143],[257,144],[268,145],[259,146],[265,147],[74,148],[73,149],[275,150],[210,151],[209,152],[71,153]],"exportedModulesMap":[[258,1],[154,2],[157,3],[156,4],[155,5],[153,6],[149,7],[152,8],[151,9],[150,10],[148,6],[163,11],[162,12],[161,13],[160,14],[159,15],[158,16],[280,17],[282,18],[72,19],[283,1],[263,1],[170,19],[281,1],[254,19],[79,20],[80,20],[82,21],[83,22],[84,23],[85,24],[86,25],[87,26],[88,27],[89,28],[90,29],[91,30],[92,30],[94,31],[93,32],[95,31],[96,33],[97,34],[81,35],[131,1],[98,36],[99,37],[100,38],[132,39],[101,40],[102,41],[103,42],[104,43],[105,44],[106,45],[107,46],[108,47],[109,48],[110,49],[111,49],[112,50],[113,51],[115,52],[114,53],[116,54],[117,55],[118,56],[119,57],[120,58],[121,59],[122,60],[123,61],[124,62],[125,63],[126,64],[127,65],[128,66],[129,67],[130,68],[77,1],[284,1],[169,69],[64,1],[285,1],[286,70],[76,1],[167,71],[166,72],[165,73],[164,74],[144,75],[145,76],[143,77],[146,78],[140,79],[141,80],[142,81],[168,82],[211,1],[266,154],[134,1],[248,1],[173,84],[172,85],[250,86],[249,87],[252,88],[251,89],[261,90],[260,89],[203,91],[177,92],[178,92],[179,92],[180,92],[181,92],[182,92],[183,92],[184,92],[185,92],[186,92],[187,92],[201,93],[188,92],[189,92],[190,92],[191,92],[192,92],[193,92],[194,92],[195,92],[197,92],[198,92],[196,92],[199,92],[200,92],[202,92],[176,94],[247,95],[227,96],[228,96],[229,96],[230,96],[231,96],[232,96],[233,97],[235,96],[234,96],[246,98],[236,96],[238,96],[237,96],[240,96],[239,96],[241,96],[242,96],[243,96],[244,96],[245,96],[226,99],[225,100],[215,101],[214,102],[213,102],[212,1],[220,103],[219,104],[218,104],[223,105],[221,104],[222,104],[224,106],[171,1],[136,107],[137,107],[139,108],[138,107],[133,109],[135,110],[63,111],[62,112],[61,113],[264,155],[216,115],[253,116],[262,117],[175,118],[174,119],[205,120],[204,121],[256,122],[255,123],[147,124],[207,125],[206,126],[59,1],[60,1],[12,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[4,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[56,1],[54,1],[55,1],[57,1],[10,1],[1,1],[11,1],[58,1],[70,156],[66,128],[65,19],[69,129],[68,157],[67,1],[75,158],[278,159],[276,160],[272,161],[273,162],[269,161],[270,161],[271,163],[274,164],[267,165],[217,165],[257,166],[268,167],[259,165],[265,168],[74,169],[73,170],[275,171],[210,161],[209,172]],"semanticDiagnosticsPerFile":[258,154,157,156,155,153,149,152,151,150,148,163,162,161,160,159,158,280,282,72,283,263,170,281,254,79,80,82,83,84,85,86,87,88,89,90,91,92,94,93,95,96,97,81,131,98,99,100,132,101,102,103,104,105,106,107,108,109,110,111,112,113,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,77,284,169,64,285,286,76,167,166,165,164,144,145,143,146,140,141,142,168,211,266,134,248,173,172,250,249,252,251,261,260,203,177,178,179,180,181,182,183,184,185,186,187,201,188,189,190,191,192,193,194,195,197,198,196,199,200,202,176,247,227,228,229,230,231,232,233,235,234,246,236,238,237,240,239,241,242,243,244,245,226,225,215,214,213,212,220,219,218,223,221,222,224,171,136,137,139,138,133,135,63,62,61,264,216,253,262,175,174,205,204,256,255,147,207,206,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,70,66,65,69,68,67,279,277,75,278,276,208,78,272,273,269,270,271,274,267,217,257,268,259,265,74,73,275,210,209,71],"affectedFilesPendingEmit":[279,277,75,278,276,208,78,272,273,269,270,271,274,267,217,257,268,259,265,74,73,275,210,209,71]},"version":"5.0.4"} \ No newline at end of file +{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./globals.d.ts","./index.d.ts","./node_modules/preact/src/jsx.d.ts","./node_modules/preact/src/index.d.ts","./node_modules/preact/jsx-runtime/src/index.d.ts","./node_modules/@types/unist/index.d.ts","./node_modules/vfile-message/lib/index.d.ts","./node_modules/vfile-message/index.d.ts","./node_modules/vfile/lib/minurl.shared.d.ts","./node_modules/vfile/lib/index.d.ts","./node_modules/vfile/index.d.ts","./node_modules/unified/index.d.ts","./quartz/resources.tsx","./node_modules/@types/hast/index.d.ts","./quartz/plugins/vfile.ts","./quartz/components/types.ts","./quartz/plugins/types.ts","./quartz/theme.ts","./quartz/cfg.ts","./quartz/components/articletitle.tsx","./node_modules/property-information/lib/util/info.d.ts","./node_modules/property-information/lib/util/schema.d.ts","./node_modules/property-information/lib/find.d.ts","./node_modules/property-information/lib/hast-to-react.d.ts","./node_modules/property-information/lib/normalize.d.ts","./node_modules/property-information/index.d.ts","./node_modules/hast-util-to-jsx-runtime/lib/components.d.ts","./node_modules/hast-util-to-jsx-runtime/lib/index.d.ts","./node_modules/hast-util-to-jsx-runtime/index.d.ts","./node_modules/@floating-ui/core/src/computeposition.d.ts","./node_modules/@floating-ui/core/src/detectoverflow.d.ts","./node_modules/@floating-ui/core/src/middleware/arrow.d.ts","./node_modules/@floating-ui/core/src/middleware/autoplacement.d.ts","./node_modules/@floating-ui/core/src/middleware/flip.d.ts","./node_modules/@floating-ui/core/src/middleware/hide.d.ts","./node_modules/@floating-ui/core/src/middleware/inline.d.ts","./node_modules/@floating-ui/core/src/middleware/offset.d.ts","./node_modules/@floating-ui/core/src/middleware/shift.d.ts","./node_modules/@floating-ui/core/src/middleware/size.d.ts","./node_modules/@floating-ui/core/src/utils/recttoclientrect.d.ts","./node_modules/@floating-ui/core/src/types.d.ts","./node_modules/@floating-ui/core/index.d.ts","./node_modules/@floating-ui/dom/src/autoupdate.d.ts","./node_modules/@floating-ui/dom/src/platform.d.ts","./node_modules/@floating-ui/dom/src/utils/getoverflowancestors.d.ts","./node_modules/@floating-ui/dom/src/index.d.ts","./node_modules/@floating-ui/dom/src/types.d.ts","./node_modules/@floating-ui/dom/index.d.ts","./quartz/components/scripts/popover.inline.ts","./quartz/components/content.tsx","./quartz/components/scripts/darkmode.inline.ts","./quartz/components/darkmode.tsx","./node_modules/github-slugger/index.d.ts","./quartz/path.ts","./quartz/components/head.tsx","./quartz/components/pagetitle.tsx","./node_modules/reading-time/index.d.ts","./quartz/components/readingtime.tsx","./quartz/components/spacer.tsx","./quartz/components/scripts/toc.inline.ts","./quartz/components/tableofcontents.tsx","./quartz/components/taglist.tsx","./node_modules/unist-util-is/lib/index.d.ts","./node_modules/unist-util-is/index.d.ts","./node_modules/unist-util-visit-parents/lib/complex-types.d.ts","./node_modules/unist-util-visit-parents/lib/index.d.ts","./node_modules/unist-util-visit-parents/index.d.ts","./node_modules/unist-util-visit-parents/complex-types.d.ts","./node_modules/unist-util-visit/lib/index.d.ts","./node_modules/unist-util-visit/index.d.ts","./quartz/plugins/emitters/contentindex.ts","./node_modules/@types/d3-array/index.d.ts","./node_modules/@types/d3-selection/index.d.ts","./node_modules/@types/d3-axis/index.d.ts","./node_modules/@types/d3-brush/index.d.ts","./node_modules/@types/d3-chord/index.d.ts","./node_modules/@types/d3-color/index.d.ts","./node_modules/@types/geojson/index.d.ts","./node_modules/@types/d3-contour/index.d.ts","./node_modules/@types/d3-delaunay/index.d.ts","./node_modules/@types/d3-dispatch/index.d.ts","./node_modules/@types/d3-drag/index.d.ts","./node_modules/@types/d3-dsv/index.d.ts","./node_modules/@types/d3-ease/index.d.ts","./node_modules/@types/d3-fetch/index.d.ts","./node_modules/@types/d3-force/index.d.ts","./node_modules/@types/d3-format/index.d.ts","./node_modules/@types/d3-geo/index.d.ts","./node_modules/@types/d3-hierarchy/index.d.ts","./node_modules/@types/d3-interpolate/index.d.ts","./node_modules/@types/d3-path/index.d.ts","./node_modules/@types/d3-polygon/index.d.ts","./node_modules/@types/d3-quadtree/index.d.ts","./node_modules/@types/d3-random/index.d.ts","./node_modules/@types/d3-time/index.d.ts","./node_modules/@types/d3-scale/index.d.ts","./node_modules/@types/d3-scale-chromatic/index.d.ts","./node_modules/@types/d3-shape/index.d.ts","./node_modules/@types/d3-time-format/index.d.ts","./node_modules/@types/d3-timer/index.d.ts","./node_modules/@types/d3-transition/index.d.ts","./node_modules/@types/d3-zoom/index.d.ts","./node_modules/@types/d3/index.d.ts","./quartz/components/scripts/graph.inline.ts","./quartz/components/graph.tsx","./quartz/components/index.ts","./node_modules/micromorph/index.d.ts","./quartz/components/scripts/spa.inline.ts","./node_modules/gray-matter/gray-matter.d.ts","./node_modules/micromark-extension-frontmatter/matters.d.ts","./node_modules/@types/mdast/index.d.ts","./node_modules/micromark-util-types/index.d.ts","./node_modules/micromark-extension-frontmatter/lib/syntax.d.ts","./node_modules/micromark-extension-frontmatter/lib/html.d.ts","./node_modules/micromark-extension-frontmatter/index.d.ts","./node_modules/remark-frontmatter/index.d.ts","./quartz/plugins/transformers/frontmatter.ts","./node_modules/micromark-extension-gfm-footnote/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-footnote/lib/html.d.ts","./node_modules/micromark-extension-gfm-footnote/index.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/html.d.ts","./node_modules/micromark-extension-gfm-strikethrough/lib/syntax.d.ts","./node_modules/micromark-extension-gfm-strikethrough/index.d.ts","./node_modules/micromark-extension-gfm/index.d.ts","./node_modules/mdast-util-from-markdown/lib/index.d.ts","./node_modules/mdast-util-from-markdown/index.d.ts","./node_modules/mdast-util-to-markdown/lib/types.d.ts","./node_modules/mdast-util-to-markdown/lib/index.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","./node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","./node_modules/mdast-util-to-markdown/index.d.ts","./node_modules/markdown-table/index.d.ts","./node_modules/mdast-util-gfm-table/lib/index.d.ts","./node_modules/mdast-util-gfm-table/index.d.ts","./node_modules/mdast-util-gfm/lib/index.d.ts","./node_modules/mdast-util-gfm/index.d.ts","./node_modules/remark-gfm/index.d.ts","./node_modules/@types/nlcst/index.d.ts","./node_modules/retext-smartypants/index.d.ts","./node_modules/remark-smartypants/index.d.ts","./node_modules/rehype-slug/index.d.ts","./node_modules/hast-util-is-element/index.d.ts","./node_modules/rehype-autolink-headings/lib/index.d.ts","./node_modules/rehype-autolink-headings/index.d.ts","./quartz/plugins/transformers/gfm.ts","./node_modules/@napi-rs/simple-git/index.d.ts","./quartz/plugins/transformers/lastmod.ts","./node_modules/mdast-util-math/lib/index.d.ts","./node_modules/mdast-util-math/index.d.ts","./node_modules/remark-math/index.d.ts","./node_modules/@types/katex/index.d.ts","./node_modules/rehype-katex/index.d.ts","./quartz/plugins/transformers/latex.ts","./node_modules/hast-util-to-string/index.d.ts","./quartz/plugins/transformers/description.ts","./node_modules/is-absolute-url/index.d.ts","./quartz/plugins/transformers/links.ts","./node_modules/mdast-util-find-and-replace/lib/index.d.ts","./node_modules/mdast-util-find-and-replace/index.d.ts","./node_modules/parse5/dist/common/html.d.ts","./node_modules/parse5/dist/common/token.d.ts","./node_modules/parse5/dist/common/error-codes.d.ts","./node_modules/parse5/dist/tokenizer/preprocessor.d.ts","./node_modules/parse5/dist/tokenizer/index.d.ts","./node_modules/parse5/dist/tree-adapters/interface.d.ts","./node_modules/parse5/dist/parser/open-element-stack.d.ts","./node_modules/parse5/dist/parser/formatting-element-list.d.ts","./node_modules/parse5/dist/parser/index.d.ts","./node_modules/parse5/dist/tree-adapters/default.d.ts","./node_modules/parse5/dist/serializer/index.d.ts","./node_modules/parse5/dist/common/foreign-content.d.ts","./node_modules/parse5/dist/index.d.ts","./node_modules/hast-util-raw/complex-types.d.ts","./node_modules/hast-util-raw/lib/index.d.ts","./node_modules/hast-util-raw/index.d.ts","./node_modules/rehype-raw/index.d.ts","./quartz/components/scripts/callout.inline.ts","./quartz/plugins/transformers/ofm.ts","./node_modules/vscode-textmate/release/utils.d.ts","./node_modules/vscode-textmate/release/oniglib.d.ts","./node_modules/vscode-textmate/release/rule.d.ts","./node_modules/vscode-textmate/release/rawgrammar.d.ts","./node_modules/vscode-textmate/release/theme.d.ts","./node_modules/vscode-textmate/release/encodedtokenattributes.d.ts","./node_modules/vscode-textmate/release/main.d.ts","./node_modules/shiki/dist/index.d.ts","./node_modules/rehype-pretty-code/index.d.ts","./quartz/plugins/transformers/syntax.ts","./node_modules/mdast-util-to-string/lib/index.d.ts","./node_modules/mdast-util-to-string/index.d.ts","./quartz/plugins/transformers/toc.ts","./quartz/plugins/transformers/index.ts","./quartz/plugins/filters/draft.ts","./quartz/plugins/filters/explicit.ts","./quartz/plugins/filters/index.ts","./node_modules/preact-render-to-string/src/index.d.ts","./quartz/components/header.tsx","./quartz/components/scripts/clipboard.inline.ts","./quartz/components/body.tsx","./quartz/plugins/emitters/contentpage.tsx","./quartz/plugins/emitters/aliases.ts","./quartz/plugins/emitters/cname.ts","./quartz/plugins/emitters/index.ts","./quartz/plugins/index.ts","./quartz.config.ts","./node_modules/chalk/index.d.ts","./node_modules/@types/pretty-time/index.d.ts","./quartz/perf.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/minipass/index.d.ts","./node_modules/lru-cache/dist/cjs/index.d.ts","./node_modules/path-scurry/dist/cjs/index.d.ts","./node_modules/minimatch/dist/cjs/ast.d.ts","./node_modules/minimatch/dist/cjs/escape.d.ts","./node_modules/minimatch/dist/cjs/unescape.d.ts","./node_modules/minimatch/dist/cjs/index.d.ts","./node_modules/glob/dist/mjs/pattern.d.ts","./node_modules/glob/dist/mjs/processor.d.ts","./node_modules/glob/dist/mjs/walker.d.ts","./node_modules/glob/dist/mjs/ignore.d.ts","./node_modules/glob/dist/mjs/glob.d.ts","./node_modules/glob/dist/mjs/has-magic.d.ts","./node_modules/glob/dist/mjs/index.d.ts","./node_modules/rimraf/dist/mjs/index.d.ts","./node_modules/@nodelib/fs.stat/out/types/index.d.ts","./node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.stat/out/settings.d.ts","./node_modules/@nodelib/fs.stat/out/providers/async.d.ts","./node_modules/@nodelib/fs.stat/out/index.d.ts","./node_modules/@nodelib/fs.scandir/out/types/index.d.ts","./node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","./node_modules/@nodelib/fs.scandir/out/settings.d.ts","./node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","./node_modules/@nodelib/fs.scandir/out/index.d.ts","./node_modules/@nodelib/fs.walk/out/types/index.d.ts","./node_modules/@nodelib/fs.walk/out/settings.d.ts","./node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","./node_modules/@nodelib/fs.walk/out/readers/async.d.ts","./node_modules/@nodelib/fs.walk/out/providers/async.d.ts","./node_modules/@nodelib/fs.walk/out/index.d.ts","./node_modules/fast-glob/out/types/index.d.ts","./node_modules/fast-glob/out/settings.d.ts","./node_modules/fast-glob/out/managers/tasks.d.ts","./node_modules/fast-glob/out/index.d.ts","./node_modules/globby/index.d.ts","./node_modules/@types/serve-handler/index.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/remark-parse/lib/index.d.ts","./node_modules/remark-parse/index.d.ts","./node_modules/mdast-util-to-hast/lib/state.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/blockquote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/delete.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/emphasis.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/footnote.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/heading.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/html.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/image.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/inline-code.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link-reference.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/link.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list-item.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/list.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/paragraph.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/root.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/strong.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-cell.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/table-row.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/text.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/thematic-break.d.ts","./node_modules/mdast-util-to-hast/lib/handlers/index.d.ts","./node_modules/mdast-util-to-hast/lib/index.d.ts","./node_modules/mdast-util-to-hast/index.d.ts","./node_modules/remark-rehype/lib/index.d.ts","./node_modules/remark-rehype/index.d.ts","./node_modules/to-vfile/lib/index.d.ts","./node_modules/to-vfile/index.d.ts","./node_modules/@types/workerpool/index.d.ts","./node_modules/@types/cli-spinner/index.d.ts","./quartz/log.ts","./quartz/processors/parse.ts","./quartz/processors/filter.ts","./quartz/processors/emit.ts","./quartz/build.ts","./quartz/worker.ts","./package.json","./node_modules/@types/ms/index.d.ts","./node_modules/@types/debug/index.d.ts","./node_modules/@types/parse5/lib/tree-adapters/default.d.ts","./node_modules/@types/parse5/index.d.ts","./node_modules/@types/yargs-parser/index.d.ts","./node_modules/@types/yargs/index.d.ts","./quartz/resources.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true},{"version":"9a60b92bca4c1257db03b349d58e63e4868cfc0d1c8d0ba60c2dbc63f4e6c9f6","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"b7feb7967c6c6003e11f49efa8f5de989484e0a6ba2e5a6c41b55f8b8bd85dba","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"134d17146352bc4d1b3411101dde431269cf9a97f2392b98ebe4d47c788044a8","affectsGlobalScope":true},{"version":"fb374a56248d8a0717687924469f8a022a4e95a2d3502f5ac79fdaf01f15edf6","affectsGlobalScope":true},"cf0779719c437592be3ed4cb0f76760a13aa6c6408e53ea6ab186a92d8b65002","2f6891be00549893b5ce20ba53f1940f56822053d1a71b8a455ee699478a7468","670683503e4e107e88dfec53d4360106fefb23ae2cb01575ba338849647b15f2","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","e0c7d85789b8811c90a8d21e25021349e8a756a256ae42d9e816ecd392f00f71","bb8aba28c9589792407d6ae0c1a6568f3ddc40be20da25bc1939e2c9d76436bb","8fa1868ab5af3818ff4746f383ea84206596e284f7dc5ffd40a0fac08ed093f9","8d4537ea6fcdde620af5bfb4e19f88db40d44073f76f567283aa043b81ef8a3e","0bb848976eff244e33741d63372cbfb4d15153a92c171d0a374a3c0ef327a175","af79b166f5d41ec2ebae57e9b67df564452b90ae3f0af4cb3c2d8ad5adbfd2db",{"version":"2d3bc86618092afa61f4e7bb368f264a019ba49b0737b827dec308b873b89302","signature":"04a2bd7c5b8d109b6462a67bd109aa9c76bd7304bfdf2698082fb8254f526b03"},"3d2cd8f3047fff04a71e7037a6a4cb9f4accb28dbd8c0d83164d414811025af0",{"version":"95e60d420050b849dfa2f318b8276eca66ab524421df318c0b5f6386d6b146f3","signature":"57aef9f13921c86297e800d319ca15316164d8da2a19198ded077159befbcfc1"},{"version":"5523b803931e9325d07a02a44bee3f8c6a783d4a0e65aee63f8a4cf2798ef807","signature":"0b8d31568bef472ff499541f47ec99d008bfb734f233245f75e1e4963dfbef27"},{"version":"15203c0e2ef4cba5d48195d9056e2975ca2da0297614796d1575d7a7695a690c","signature":"4110d2938564a85b1721e5f057c4828346e86b8b080e9d17ef4b04cd74863888"},{"version":"f35192ce1312b6474d7fc04a8f43628bf227ef1038ded1848ed170c1c7de191a","signature":"c251b24e72e6ad5e74ee3776237270af0f720fc76e3f043139db67108803a396"},{"version":"000ef5e70b97dc076c4b8bec38d44416dc69ef97bab91faff44e91c9e471b590","signature":"a5bef85933f47647e6e5c2b66bcdfffd12893b51fd8b1eed92c5c1731bf6fa48"},{"version":"4c98ee952a93149e93eaeacb9e931f2c2b1770286e90ee1ac0808e42db4581f7","signature":"db268b93914f3bdbedf2e95c7bd400873cd25036dc62df98a38b2ad36726640f"},"7bd32cd2e05737c6a5041ca7a31ceca0c14ce065661c5d1ae5f7bfa35ff3fc5e","bdbb3f4e3f608f6034a78af17466f05ee85b1f1414f5e6f25f591c73a2f9b015","74e27c864416d1ad8947d13cef35e7c9afe0608255eb455096026e988c962295","46ab5ea5cdbc0ce75ade44ec0d9aa164f81e42b061d8e573b832a73ed181da57","d752d4dde165ab9bd56ddd111f59a6bf46eebbc6d4ba4e433f2ea21d1d0599e6","6527f50c0513ce908927055546f39578b9aaed6f1a69dec209b9101fd2d41017","222a249948ca193e1d11201057fe385cd69318c52314cf0a39d88d82739b7b20","4da5022999387d1d65bb058196da994891b4c46ec908c6571503dcf434766895","90c6c9dd17a3ca7c4aecf3990bc338f3a4575b70c38cac4e30d5e430f204deed","8dc56f817d20cf0717842ac1dcf3ac1a450ac3c667f1285754901e4af97bbe47","72156b7624d678a2686a22a45014218be4da7147f1058a5a5072fe981c492dd5","a20d054b8be41316bcc29752c5b9b42fab727b887a076a3af3bee18813d6e8c2","2eba4ddfbd6837ef33e58644f7dffbfe465d7222f9a9101789f02427f9541488","bb82c16e8371bfc6ee2ffd0095fd321d6acfa57c6c6445019567fec1b6b5e92a","6c65126b657a275259c4759b2b2f7b04879e61bc6c51df025b3748f87652a9eb","a5ad75d3dd3d3df0f62cb7a8ea12e76e0b4a3143ecde9e29c9cc0586b88365c0","03cd482c80ad0b724ca7d55cef7e3823d593b7cced98d7ef9d1bf757c5055b77","e93f395b0d6e68525181a6ecb3e7b81b1c5bf551f32f6cebbdffdef354fbe4a3","b881b069efb9d55b4b4b98de76d8c3920a29254e24f8f0c38557186e38cf6955","115825b28cb924401622fcab8676c3bab7ceebd9062a14229efe9c02bb8db8fb","2fa33b23888562c8111e9e10238eb26499c26616499446ac975263e41e0dc4af","b42d535c794251030828022716b5c1d526014d71a1b868679ecbe6599bb3fea1","2cc54857ac3d2aa83d258db5c8aba9587c31dcb9f903f22603343f90326e6c2b","b0ed00813c153e350a56faa8c15668bf21375928e9b88bcc482d20f1f8415179","d0608ff924f53fee147c937c04efaa1e9010d44134d6f376b2fd5939dcc32a8d","3c8a75014278db57b6fe929a8877d60abee9ca84b8cdcc6df4f7da21cf06854c","b1b8f88d8704effc053062568916a6bd7b7bc6b24b411a53de383e888bf36144","b42d535c794251030828022716b5c1d526014d71a1b868679ecbe6599bb3fea1",{"version":"6d4d79e6fe3077cc4fc4ad862875a87588ae467a7bc6d4d9f29e916e40591fb9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"70a889eec4a6374693c16f00ec480f4617db1cc3edda7f9ad87f567179ab8531","signature":"bea96cc48fa3a5e30ad7bae5c028b12ed4694dff17693836aaa46cc834b93feb"},{"version":"dd82dc1c4a11e0ab673cefe915a85ac6d201cf1c421c5f494138ae1bbab5072e","signature":"187bfe3be0e92d1af047d56ca3998ba9201c7ddda83f40bfe621f1093e75c6ed","affectsGlobalScope":true},{"version":"bb1379f0079b639f1ad87048e58769ee67f36ec29b51a45906fb70cd8f9de1c8","signature":"c9cc7d2475deade9d2957ddd34981c4ef0dbbb81cce769f55fa1f2670b1d8546"},"1ac0f0d4aa1197aded0e7a41a08d2e687e7db61c967a2fad216b736f18a740fa",{"version":"96ef1319e8e0f99fb812f7d505f91f568180a38d5438fb06a63477bea67b1f19","signature":"6ed8e7d3ef29b6d31bc9f56114f31f14115af0264321f34febb81cc553c310a1"},{"version":"76d86d9ba18881bce6596a4bdd009e59eb79faf873b61fa6191b5afc4b36e802","signature":"0ef5cc92999e91463d45458fa2d10b8321f83156aa48ebbc2ceabdaa37c504b2"},{"version":"c01866bcba18405a4e5fb8eda84090036ccf5af4e238912599476c6e75a38cd9","signature":"815fb6c44493113a38acc078d39f41ff9fbe81f1bcb01f21850bda5e3494f2e3"},"3d1600dc772549c3eacc2b8b0b26f2fd51f269cb863504b3edc3bd7dbbb1e4d2",{"version":"14136398ab419c919cac6d63a03647abbebc135598b1369ff01c3718d3f5929e","signature":"e3108ecd5a11b42d161aa318d1491db01e9ac3be64de77092e251478a1822477"},{"version":"7fc0c8d4b89c20289c7da73c9418e83fad9e871a2dc548c6dd198d6c2ac1eb35","signature":"11bddfda5d6b7315da285fec3ecdf4ecb4c62ccaed9115a68a20bbabbc36e233"},{"version":"1bb74e8ef96bba804760216526e3ec5e547e4e1ebe9ae31274c49c96d98ffd28","signature":"d066a30d75e96d038b6d9ab0c8ef58a1b7fb1f7de8f017e3def7186fe89605ef","affectsGlobalScope":true},{"version":"3ba0b5c532c90cb781546a44d0f005f72cf6ae51a417a50d23b8506be6dd6e8c","signature":"c58bb444d526af6c9a29499052cc6c9282d679ee0c3b6490beebc3d8c6e829ac"},{"version":"1c83e89fcc8d598f66b213f96e24f0ec1d5a831969f74b670e5b992c3585262c","signature":"6f11b7d2d2015e4fb61d1ddd1c35435b44540935174b5009448b86ac9f337a12"},"63c010c8e3e0c33bfe2c4fffca858f9a7a28ee84c090652ae9f8501a6037afe5","c8abd849f7fdb1e4787b53520896cf142f2e19821f9af86615a6af4436074eef","cab76feb8bdafd8f888d060a7a014f5a407c7599e0b0d1f85e4e36694248a1f8","41a2c5474756ee1b12e5502bcaadddd6daa9b79e5fbed24b5c9e7d4352383170","cee0181994c0afe05ffc4bfc05ffdf4eba3275cef012c562b23572056e8b3466","0801dffb28c9a67ab387b8bd47392c05bbe3678d56b95a9127015e116437435f","d4de3f9c6acd93a96b7551506870ae1b84a60d07ba075d2d99296f9e27b96d35","083609ca47c047c6802bd40e974346a9509ef28367bb07769dbcead77cc7359f",{"version":"51b58989837383b23357099388c980d83cc9f0023e1956c88f107b7900ae3c23","signature":"b6417d818449c2166b234af40f4312437d9031de84d502096acd6b14d3b07b00"},"4fa5c6721346cafc445797831da394916f173d79a8343ac8bbf183d06042e869","a8c897d63ae6e779bbc4f4753a386389dfc3a45ceec6b6672f55b072d822d302","8fddb452bfcb60c598245e997aa9c9dce14b85a4c2e02489a50d97ab49e9b622","25d505ffc43befd205d780441b0a16e752ec1028f383a55cadd41841d1c7f153","39cb5be3f5302e759253b89f11bd3e885930b5649b840f4d5a81a763a5dd6c40","8a460dcdabe873ab0a85e421a7f339ad74445f60917bf67deed7d15d836b0247","a3b6c93a9838b8c94c6998e85646d6f2d07c20ecfe1e235dba62158b29451391","8f2d349c69976569d4c32e0e4e66598c9688159cac28cde38bbe0039dd1cadfa","6adc0305186bd1f72ca64adbd054b8e5e71f93b1d0623e90ebabf153541c06c0","c85a93f216df4ebb6dfea7ad46c8d6161a0f1948a20967ba0c85f0fff3f9edcd","0df330f74158aee4ce076b0bb15eb53fab95f615d26ccbd6ec6f5c4273110047","7b2ff705f3c3358807afce85ef146b7f7cdc882a79442630b034ec24d6a3906e","344ac2d6764eaa6b23b2e8e736c9bf0ae06a53479c6a1371d3d89ac964022692","e5907221fa3198e26f294ad77bf8f2996990b40484fe6781b65e099b1fe57933","ada362e162ad90df10c921c845546d911a6ad648a641a6945bf08c3ef1a09a17","f156602a8527c97f898fc96a33b7e025eed27870c2a63842c0c9ed506d7203ea","a8c34714c5da0bb0d2f74d31a44c9fb8b3b87efe6d8a0891182f9f6077723e69","4b51be04eb5bd9b929448380b3ced483ef1f6c3bbfaf7d3425bdbfa3b8eab11f","c24944ff5879b91478b153cf16802b9c6a10cfa3b7d85855813a08431ec2d36a","f1ba7a42f644ba5a281dd41b4bfc813d1f4a59e9c99227315cf778284d1e0b22","7adc301a699032ffd6d57e9ce97b2507e2ad652771cda558cb7ebb49a06e7696","f6319ead2de997fe24e6acc3594942d6819a4570f40e42cb979f5b078f3da1ca","4d3ae1585844151755e9d76cc41d82a6770b150559cb318c5366c869d487e01f","589cbf58df97db61280be456952054f5d54070e87a2c371303844a4bb288d8fa","c4e910182d6de2fcb3922631733faafdecd593370248adc1013be93352a8cc78","6bbf574c575a0491388f32aaa69c648140f24637b1d98ea6f3c97074c339f9e9",{"version":"07104ffff8802481908f08b4a220e399cc692d5edcfaaa7e6632156fc267be35","affectsGlobalScope":true},"3e135eeb6a6be4b07c1d2a170c105dde5f8b5c705f9be4e0f01166259724f125","f6c30cfb96957bb21586996d7c5d5861c236417f31b5f790055624c7df07e944","be04184c354d4b7207e68298ea4e0539cd3e55889778f3bad120c71593ad408e","37cf86c0651242b9b8c1b0bf89228a7be8ae40db6f3aac0b9e1de75bc7ddd5cb","32e5beeefac1493f9dbf2498eb4de6b5ef69a411eb1b9321cdf25a6f37086361",{"version":"4adc884c9c79f4579531b7dd8cb4722c2d681a925086fdab737b0208edbd15d9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"beb8d52b05d0a1ee1152b20f6e235f844ff8a1f0c0401cddfdc39df9ca9c0733","signature":"f6344f5621a8b19e44be2133a91e0389cd4afb9d51c37f19419e1bd83f762039"},{"version":"4aabf44e506e7f07eed0c6d2ea234d7ffaf79dfc33dd7fa59eb930776013044e","signature":"1492d37d739294681d12cfcafce4317a8dcd9caf581a1ed493a88b8fe660f62e"},"9a1753ba092cbb7fa7c09355643656ce62f3e65fc204d273f4764a234194d541",{"version":"1df2f76c8a0126985bc29de1c197482a4373925547ef9a36021d012540dc5501","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892","fa81d09d80cc4288c57f8b0c30892392fc9ea7b1d59c3126472f432cb8f305dc","5774751340e987a6a9e4a5dcc03ff68a6515adc2b91423e1af2f660fc8f30e81","4cef6b76f45c58ff3044e1851afecd32be09fa6def7a626115b555b063e3e9ef","4fedbda3802091cd7dc7ca57059790ec6456a67a1f62638d0734d13e5b558d34","fea1f289a0585cdb13cd296e7fae0faaaa5dbf94d94687fe9d4f55dba6f4e138","9e4646339b6e49806147a857bedbb5d7d930a8101fb4724b4a0e2eb7910ac69d","0c0ad11991c2556f9c0e3074cc2f9bd04bd704f546b40363aec12c3fa5d5e41c",{"version":"b524e329069896deedee95027b9666f8554bad8cc71f8b7b9e7ca69ca4fc0e1b","signature":"77336f441a096bdb2ca4a8321afa5c0db164a4a81b9b85c07823b06a9214f847"},"8510f56ab8598d18ec11cb2535112e2aace53e06da7d2d4fbb046e5c6cfb743e","1f85065e4d231eeb843a8485847ca66855a82984db1788ead57db359c6a52128","f10c018418c8621e4ab10596aed7202c49c36df8fda7f3c8a6ceba18724f4f85","26c304c279c0faf6ac61854c67373342e002a3d6c7ff0d8fcc7cee94f0ad323a","cc4ad1e0de78e65fbf1603669017fb939355e7bb4d38e48e78af619a390e4e23","f7598141e8c7143330f1cbfecb221b6f2beb95dc853ad6c20842891442944d0b","7ccd7b1d3c72e8ee639f48aaf190a4d2c9bf4c6650a22501d0fa98b8e3fc2fe1","31c74be259150eec1e3f8f4113f99cd10d5f1a278a5a7ef6fa29478d71766618","171a8d5b10a71ab01c4f43c110565a6a81d975eef7c46be20fc8162e21b2f188","ac052259a6eec4dc9e73e2309a64fa0fc4f7edba776418355b25e67cf24d3318","e83857dd6e1c80bacacdaee3eaf2bd71d8331880fd4705489e5e1383e0ac78a8","dceb21129b0ae66beddafba41b8765f27bf95669a8f7fbe3e94025e01c9351a8","859ea22746d11ed8386ec8d9b63b998462510705d527b83494f6a2fcaa7a5de4","825b79a00bb5650472780a23f75ee17cffe4d0eae235da96e50d3b8cd9456ea5","5b6ba1af9d52d4a47eb6908d1aebd2fe348d8212205b203d25ae528b46822eff","92ae8af22ba9f4d3728ee0075a23f5a9f2e071bb677e7db01ec2f44cc01ed473","a3f55be7fa724c524698e82466c2a651f352e673f63428d953923de161b1095c","f34def9623f89b02ac2568eeee0cfa655411e56b79f1198143053709d1987110","bc0d6e115f78a602be8f82c6977c3a3b4f84fa144e06706bd768797cd683f2b5","fb4b80d4f7140829a10b48ea77584e191098d20fbe77039e171fce8de1b257ac","871b7a0478e9b76721ca4f596acd219b2ff60f58fbf95198117ce4c1bf8eb52a","38a6564c83f8e5c76f0cbbd823c5ed16c9ea9e55f25629ca4a1384d3447b27f9","2faea076f501719cba9eb56cdf431e5efc09bc81b12a4329a825fedce77c6503","46f0d38a72546ad31308f6730267f835bea40803b9117c42a29ad009706cda9f","3a2cad3fdc52e8407c3c9a044c10a4db897bba4c1e30a96461f2e7b2be9955c0","a8e0ac700a94d9a42add85453d32842101fb1f08c1a296a02eb27105e78917e1","70cb02181c04656d711bca5c332549beae390bed0107bd97c419a3466bb39306","afe412b89ebed32a7eb2e44fe185cb24027d36f8543023e57ca36ead6e59193c","5a0012861a95843c567475a90362f686019af229a8946779ccc44c7efb5b1f44","586c4ef6496185cdbc08391fdc5f49dd80b14cdb2d01ace355b2b150f3fe71eb","148e197eb64a4c80531e4c959012755ce7fbfdbcb8d17721eac0c8a983c3e51c","edb06b0fc903fc619a7f2a3aeb6579e5b787eb624c349da738b574720558a596","d6fdaeb6f1e4e29d7827e30d743dfef5cb6c8bca4bc546001a3b3e751a2de06c","92f92e2b21f14f7ad07b15902ba806b89f37d8a83a7d127f7e638f92f241ddf8","74f4c396d57693d72e769ccc21b83542a78a6f3825ee0fe69cfefd7713f5e6cf","03a3957f7ccf2ceb0940c64e35734ed50c0d090c161924c44e79cfb7c9c437f1","010bb5235c40300fe81fd4af2dc7d48b573ef626e65d529242035274121f4c83","801bcd63fc346570aa633c166bc5869da8cb9ad252e113c4fe46800296f54147","1b23c2aae14c17f361f6fcef69be7a298f47c27724c9a1f891ea52eeea0a9f7f","4dd0179485e44a0d416b258ffc27667454ee4da96a7816ca998909cc42891d09","ff9426068448c2ecd28cef056c51c7eb9dbaeb3c7b8a5ab4843103d9081840eb","0a8e2910c8837f59fc6866cf9b81d4bb8c2d5449a242b7c0f8a41f07e88a07d8","9691ea7fbb97b0f4b0b8ce69d07b3f928800882e3b806bcd0b3bba12d2c7f443","78c5ff36a7b6e97c7825be17744fd45ffb2770ec40f486ca3dc4c1f9fabe2b6e","3c33c018c64e65691075dfae05fbc58febd6ce2d452257c35505ca70c96899d7",{"version":"f79e3d614997028f58234ae2fd3246ff309e50ae3aa79d1b7e566606f725bad9","signature":"8834205ba141ab91313b86538e251c725253c8929ee16ffe25dcaa8aff209dac"},"9ccad2264d463d89f9246a6e2b3c5fc2ea4fa93fd1d766661dd3fc06a0ec6128",{"version":"f4a33cba20c971633134c62578108c621b4eab52844972d1f7eb2a1912cc3290","signature":"11535ba3e664110f0c5d406378ce9cdf5c606c5507bcdbf468e297b9c15ae79b"},"eac47ed99cc76de6507dd9d6a9910023d3fd810227f473050546c1b786bead4b","5cc3a8b25d4670152aff1f05614a58c94829388c033951aebf4be5cfa6c43ea9","6ba2d97e94a13a5c21c3c7105f01fda5491b7ecf638230cebc46ead1204a8559","a3c1977660766af91c7b8efe2106792f0f6375bde60a4f28a438242bd93c558e","ee2beb928f0554aacc404552cb44c86c8afd1aaf8e452e405e37861681c695bd",{"version":"5548c13a597571841a7c8e69bec72dd0c0941434fc9b7c66b2cf8daffc09e55b","signature":"d31c215f5e38113de9053c4fc2cf8927d56d28b9f44fedf46fb8d9f5c34bc45c"},"86ae9ad4466ed3302ebdf35cb380df8d798f998f44c76c8985d8edce586fa0cb",{"version":"7fac1232159689174969588ffda33e60135e9363fabbc3160dec98a11ccf95d7","signature":"c13809b0af560a664d6c648bf57ab6ab8852eae07c341b5f0be1239380a6ebef"},"082030c53946fdee90e485ee3fcf88fb07af4811d375f0d92e806ef6d893a54b",{"version":"36c911e670562f1963117cfa793a2902201e42195fd9b3cdb8ec2b0ba9bc501f","signature":"12244da595faa055ae514fa4e03fedf9d4d8807fd2223a60f430d9c4876bac2d"},"97ea5f1a03786cb55ff31e41afeef6c2c672de4697eff80f6b68f043694cf892","30d7301a01f01ccbeeced6181f48abe5715dab628868400e827d6dd057aabe97","3411c785dbe8fd42f7d644d1e05a7e72b624774a08a9356479754999419c3c5a","8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","33f3795a4617f98b1bb8dac36312119d02f31897ae75436a1e109ce042b48ee8","2850c9c5dc28d34ad5f354117d0419f325fc8932d2a62eadc4dc52c018cd569b","c753948f7e0febe7aa1a5b71a714001a127a68861309b2c4127775aa9b6d4f24","3e7a40e023e1d4a9eef1a6f08a3ded8edacb67ae5fce072014205d730f717ba5","a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","382100b010774614310d994bbf16cc9cd291c14f0d417126c7a7cfad1dc1d3f8","91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","4fdf56315340bd1770eb52e1601c3a98e45b1d207202831357e99ce29c35b55c","927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","be6fd74528b32986fbf0cd2cfa9192a5ed7f369060b32a7adcb0c8d055708e61","0e6d87e1af5b3cb046c54714f8afdd0d0fe3c499d96954f29466f92def0f435c","b25eaf53a7b338ea38921dcfe882a0e46a36a49c439a580018cd1e523a970dbb","2bc1325de383b9b270e0800b370cd33b87998f67380a0353167c37c3dcc13d3e","ded25fdd0b036433f1c7044d0f05c9c792b4873a648fbd33eec49f6238e3e572",{"version":"616bef7bfad90c7a561c88c83843d0325169dcfdeefaf991af88b63ef10d0f79","signature":"53637ba23c3f931f6f60396116156ba13b78463135de55a05e2dd73373dc0289","affectsGlobalScope":true},{"version":"7aae8efe26f9a884a4d4185a7937bd09d113e3a828b4ccdb41a787471cf99e05","signature":"c187cfd2a997a4b37c0c343cbc2824a5493060afd5915f1c872e5743b5c3ca62"},"e617a4e3425c1c4f6337f9065c844fee758eb60f2befe40f87d6bc295fe3dd6c","84cc254263404913255f7ed1ac7bdd05d5f1f2c233f6b48915f64aca2321ec17","67a4f653163df230b46606a9b97b568b5150d0e0e1ae1d613c59f7a3b0512449","3b1c2ccfa2572201a53e54008e1a2a321ef826f4260264749ed5158643cad6c0","0b30b078f688f2b4f4e378fa383e02e2d4c4213a1b22aebb020461e36e34aa92","7f204c0b47583a898e6dbe667ad290b837cd99822bf133d0ff23ba072becec52","df8ac16e33db5d15a25a0a175e8a5d5bd3d3b2f1d5d0edff099ac26e619932b6","3ccb7756294a7ed5b0e33a30b42c7b1b32a1736852a2db22a61906b45d31f72e","d87c0f0380023f1eca5063a3c058b0b82f9295ce0eeebfdd49ec6e4d62b3c7a5",{"version":"0d82410334bf181772799bf13876575e8f6408bb76ad14396db3b8e4eee30e5b","signature":"2ffb5be570de81083b20081137239470ae8a03c5b7ca1594cb93884a722b75c8"},"0cb2f19ca25c0f21a28218c5dcb5a7e994e81985086ca5daa9c8f4ebe64fde14","87f45900e657071ede09193a640840449cbbd84f442fa110ff6ad48258a79960",{"version":"84333266c11a8b7e8e97f78619365c2283136a16520cc59efb3e46a10e24d95f","signature":"56fc117444fb16ff297d7c268cac9f0c2d70c300b25c313883982603958d1c77"},{"version":"b7820d05d1ac6596d8443a97b379ca0c5a1ec0c8c205f9d6b293548b46a7e452","signature":"decc248f53073b1cfb6fc6f110de9ef45cede19ee8a3228c8503ceb75e9969b6"},{"version":"7a921d32d182b211908ad5f8923f1a830519c12aedf4e469467c98ed02429f98","signature":"55e1ed3c1bde44633a0d47f5304541684e92db561027cc5e1704e8807785528d"},{"version":"190b8d024802f36edaeb098ce014ebf32980b4e3c1ac8fbaf08f46b81f9d2c22","signature":"3dfa32f25c6a1129e7993dd3e0a66c14732e8939fe59e299581a77013de603e0"},{"version":"21f105677d8c332867fc33c0820c6c2ae3bab9359a67394d4029d4a2b2b4879f","signature":"b1478d32f7d34beab99ba1352b10e8c4d009ad07f4c544c7911f400b4a54bbbb"},"b8fafa9f8ae9069eff148da320ed56acd5c3c95112c5e03d4796e15ac76b974c",{"version":"6bedcd4a23e8cfbffb39c521199c894b848d6b12959dffc50824f15896a3014d","signature":"d2081c21fd7f6bd7ff4326487d1bf46c31c93e6ab1a01356f3cf334da6697caf"},{"version":"4e2b4193fa5ce0c618ce53ac2b3d8971baf420b7392bcbc5a40c517a5731d11d","signature":"d76c5c2aa1d91bb93a9104fe9a768eb82c7a0e0dd573b348fe21845b41067274","affectsGlobalScope":true},{"version":"21bcc28dc5705a3a8e894ce4abcc30a666a9dbebfa211ddca4dd4b7de17dfc34","signature":"ed2d3c7bef952d0a87da591e1a2bfbe1086875ec2e7b4fac37b3f26ebfadbfea"},{"version":"eaf44cc649de5bc94870ae012629e6aba795f0eccc9d384e3e4788e8bbc07191","signature":"454e63a439bcac2d835b9016ec9039dbe365ed2d151d828fcb3c754f2b5c3235"},{"version":"056c2a7d27a34b56a2da28352ac865c3c784559dd515a463b267f8777583c0cf","signature":"d3ba77bd072cc0991b464f492c747027a27fb74c89309571a6efe16eb78124f4"},{"version":"ac98b7f9d0652e3b6735c1477a07a3c4bc2fbcf95a793097f2ae9cc08d6a8e03","signature":"34b60b0acf1688ecb1235489ead4174f29e94c63b4558c569c873b19ed2b69c2"},{"version":"37fca5e875981363005aa9315efa2da8c5ae8f90f16698f817c6bb2c31846fbf","signature":"4eedecaaeefddaf61f98644c7efa2c86dbacfc9c1980b6385d2f7c107cbe1adb"},{"version":"18ab9e236c38e3e5eb0934039f8126b8ae373f895d1cff1a90b33d234d3c4f44","signature":"97c6284e4b12ac4ace567c6276dfd6d41065df7c5c29e532df63d27a42525eab"},{"version":"4085f9b9f77795f2320d360694adb04fc67c6cda7a3840644bdea77103898c64","signature":"13238d15e5de8fb1872f3075ee114727cce493008c172e8041c67de505aa8425"},"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","43a95e70896efd3483a07162a10895b0f1c9b6f05092ef114b46b1d9f7eef63a",{"version":"224bc47ac7f9a1f3795c1046ebfb8aae8b76180daf7d41ed77623b03b1a078d3","signature":"79a71c1a17f13f766d817c9357eb3de259659405679f75328fa36cc7606ec132"},"587f13f1e8157bd8cec0adda0de4ef558bb8573daa9d518d1e2af38e87ecc91f","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true},"7a435e0c814f58f23e9a0979045ec0ef5909aac95a70986e8bcce30c27dff228",{"version":"241a2e19e03fd1d884e0f304429378d05bc2c1b26b5693c84868f7ad0674982d","affectsGlobalScope":true},"db71be322f07f769200108aa19b79a75dd19a187c9dca2a30c4537b233aa2863","0b70ce7a20fa21c7201a5a972b7f2288cb90ace8a2dde9f3344b5dfc6504abaf",{"version":"49479e21a040c0177d1b1bc05a124c0383df7a08a0726ad4d9457619642e875a","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","3fd0f1af75fb7abe0ea376aa71541daaf489f3d87c394b1165db684ea44b48be","3690133deae19c8127c5505fcb67b04bdc9eb053796008538a9b9abbb70d85aa","5b1c0a23f464f894e7c2b2b6c56df7b9afa60ed48c5345f8618d389a636b2108","be2b092f2765222757c6441b86c53a5ea8dfed47bbc43eab4c5fe37942c866b3","8e6b05abc98adba15e1ac78e137c64576c74002e301d682e66feb77a23907ab8","1ca735bb3d407b2af4fbee7665f3a0a83be52168c728cc209755060ba7ed67bd",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"b85c02e14ecb2a873dad5a1de72319b265160ba48f1b83661aeb3bba1366c1bc","affectsGlobalScope":true},"f1a0b2dde686cb8a995d4ed11848be5eaf76fd5d56532942e0737b39d4a02c6d","fc3764040518a1008dd04bdc80964591b566b896283e00df85c95851c1f46237","55709608060f77965c270ac10ac646286589f1bd1cb174fff1778a2dd9a7ef31","790623a47c5eda62910098884ecb154dc0e5f3a23fc36c1bfb3b5b9ed44e2c2d","42b40e40f2a358cda332456214fad311e1806a6abf3cebaaac72496e07556642","354612fe1d49ecc9551ea3a27d94eef2887b64ef4a71f72ca444efe0f2f0ba80",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"6a325d4c96569bdd5a9a59f819a672e2d5644ee6cf98ab910e0064402557af8d","5e2b91328a540a0933ab5c2203f4358918e6f0fe7505d22840a891a6117735f1","3abc3512fa04aa0230f59ea1019311fd8667bd935d28306311dccc8b17e79d5d",{"version":"14a50dafe3f45713f7f27cb6320dff07c6ac31678f07959c2134260061bf91ff","affectsGlobalScope":true},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true},"1349077576abb41f0e9c78ec30762ff75b710208aff77f5fdcc6a8c8ce6289dd","e2ce82603102b5c0563f59fb40314cc1ff95a4d521a66ad14146e130ea80d89c","a3e0395220255a350aa9c6d56f882bfcb5b85c19fddf5419ec822cf22246a26d","c27b01e8ddff5cd280711af5e13aecd9a3228d1c256ea797dd64f8fdec5f7df5","898840e876dfd21843db9f2aa6ae38ba2eab550eb780ff62b894b9fbfebfae6b","0cab4d7d4edc40cd3af9eea7c3ed6d1016910c0954c49c4297e479bf3822a625","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","164deb2409ac5f4da3cd139dbcee7f7d66753d90363a4d7e2db8d8874f272270","1fb6c5ec52332a8b531a8d7a5300ac9301f98c4fe62f68e744e0841ccba65e7e",{"version":"ab294c4b7279318ee2a8fdf681305457ecc05970c94108d304933f18823eeac1","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","bbda6ea452a2386093a1eda18a6e26a989e98869f1b9f37e46f510a986d2e740","812b25f798033c202baedf386a1ccc41f9191b122f089bffd10fdccce99fba11","244cdeb8c344eb42e6142cbb0727752b9b735443fba7007c11b14ca06ebed97c",{"version":"75dd741ca6a6c8d2437a6ca8349b64b816421dbf9fe82dd026afaba965576962","affectsGlobalScope":true},{"version":"8799401a7ab57764f0d464513a7fa7c72e1d70a226b172ec60fff534ea94d108","affectsGlobalScope":true},"2ce2210032ccaff7710e2abf6a722e62c54960458e73e356b6a365c93ab6ca66","92db194ef7d208d5e4b6242a3434573fd142a621ff996d84cc9dbba3553277d0","69f5747ad0887c24c76858ed458712101771349f2287e21871fcd1562daa7dc0",{"version":"0bd9543cd8fc0959c76fb8f4f5a26626c2ed62ef4be98fd857bce268066db0a2","affectsGlobalScope":true},"1ca6858a0cbcd74d7db72d7b14c5360a928d1d16748a55ecfa6bfaff8b83071b",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"220717df86539e219f619d31965d177e7235185e4bc6f6e6ed7e11a9b004d5ca","d0f7a15f34c5572c4d3710a95053196e76da944543dabe8265944bb7c6f52700","cb656e57ac7dcb4a0850d3063f6f2618b11bdefcbf241fdd7ebf5b52107b17a0","25552cdd29362e0176f96789dc0414de7f44bc144b07c74fac7577a28f91d70b","97066cfd7010c2463bfcc2e7c0adc4bf2786ea682035f5a210c21f123ca42237","de0199a112f75809a7f80ec071495159dcf3e434bc021347e0175627398264c3","1a2bed55cfa62b4649485df27c0e560b04d4da4911e3a9f0475468721495563f","854045924626ba585f454b53531c42aed4365f02301aa8eca596423f4675b71f","d392cdf58e0c7a988c3df400caa63a5c070c0bf13996ec619e3535e19e952a95","6ff702721d87c0ba8e7f8950e7b0a3b009dfd912fab3997e0b63fab8d83919c3","237aa833f2cd2ff42db5d3f5a2b7b143ead11aff861097593ecd99015a69b220","50542cad26bd372cb942d418d42cdeced50a4d4226db390a1e3405f3d9a6103f","60660150e844e9d27f7ae4dfc7456f27fc683bed718d0e4a1dd4908d5da11d35","ef1f3eadd7bed282de45bafd7c2c00105cf1db93e22f6cd763bec8a9c2cf6df1","5e763f3932cf04417e4145a103da1f1f67b10f7c584bcc976641611ed72af668","a5dcba6cd802f8e47bf0d83f3836a92cd494fac81b8a49924f190f61f92795ce","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","4498108732bcb5b7000ff9cdc011058b4155e985271ac3f926468acfed0c79dd","36d7b72ed8f35f9e21cc223c06697eca0d4699178fc59cfd3a310e2983fd0fd6","5a5cbc7aa7c4f74f49073d747a2a2518d1ec22694c88bc46092b0f25ccb8ebb7","51bfe35171efe121cefb2501a6cd674c367d541c4c8b0ae639c126adcc84f37d","4efb2a45d9d3e146d6237c2b74c2afcc7512f8bdd939995f2beaa27ec385a600","d51a4e4450ee23d941db79652c660ca2612691dba235fd5d14d4b2a622c72312","99d951629f7096dcd79adbaa83a85e3be57613005533bd23029b3aba4ce9383e","ac72dfd5a793c277251c116b35791d3ce358edfea94b942c270d2bda9be5cbfe","c1b6d322936b18698bf8ea6deed76e28d5a6a3cccb6c7fa345a01c969f637b65","8b0a2400ba7522569871331988f820ba4cfc386f845b01058c63a62ad9db8d03","d3e29566a694a4068d450a58f59e3a3662fc12f74345343d441ef4d954984503","f7b3e68f7972250809e5b0cbd8f0e1f9da8c1dbf70244f289b204f1b49c2d398","4c7c99f7787c5c2ea6cbd911a7b5c7c2a4ee1cb9d7f538805ee2550cf1f1fb99","1557bf37fc8d5f129436caa0212f25d6cbeaf9d20e2e3a60b13306ff62a1d7a0","9a1e77270d63875c9a38630f9a7a9126f9a8df0245d5eb220832a65d408079eb","e48d0036e626bb40f236e236670722445ffff854908c2d9515b2b5b7f677794f","30f9018873d6d80256298011161a664a14b927f719f8a7605ceb8b49bc8808da","f543ea0fe820064a2cdbb39d2b2846c507467c4771eafcda2091da43b05c077b","9066d02264a67aae05410c340c8fa41a79bb076c33d1c6ae3ec29a05828f4c05","00435c177c3da6998c2f95b9e71239f00cfabd3461401cc4d8606ee3afb732b1","d432a2956d1efa172e1c60a8186a81657f2f9f4ba449c6abdfa9d057d484c45d","bc6679207eccaa45e49b930ad45ec8e7903bd8b0868e086d8bad91f79c914ca0","4dd35e71d52007465787dd2f374cc756a29e6c9b96dc237d0465d0294170c529","7ebf1f440efe6efebeb58a44000820cbe959da9d9496621fa6dcbc02666e3002","08a9e70641597e23d00be62e3a94b69ad93c5cf5541ec7bfdeb5e9f69c845507","ded59c554118589a8729fb70429318e41e7e8155b2aff5f3d7a77933e49dbc10","3af507089e65c1472a87e5f7345ec18838d7e923c2c06fdad3d31543278af762","c867e6d7de78f96eb55b534b3aca1da4e029a6ab0e4ea9d0610acf11d737f8a0","2df075b38e2135201202640fe92bce8d03fb319fece410b088a22ab4e1be7702","b9f07153f8e881c4cca036abccaa134df30cf09a3381772d089d1eeabe45770d","88213e972b5989f217627bdcb79a697f66821e8ff135265712346d532243084f","bf6122555f34582e6d5424a88676d90f2333e0e920764895c15d39b6c856053c","bf04a1c9ccfeabf521b7b97f388d05bc5f628422253399eb157fec0d9cd213ce","3c6ecfcc6ac82b5866368d1efbddeeb3bfae03962747bf6928d8faa092e5b369","06d19317f4c8474255b3ceab7102763faf7ff0aa4cc305384b13ccb6d27b2e50","ebe1694b3a7a0265b9cf8fb3bfed6575907247b61add671ea9771fd6715d1b29","bdf4a7242e5cce621b5ba689351af780b0b665d97ea88c71f50801aa80560236","6bd6ae32288500128ae355de57d6bc3b5884f37e1e5d5ac597b142f63b3c8121","a6634dbc56e3d75efac697e59fef032aa15cc537acf7f6ad3a045001f48483f8","0ac932efed612f58eb5033bd449a5fe7ae1bc61fa0ff960f6ebbc8bd4ceda267","b4a07a5abe3d0a4c05f6722c024f842dc7909d5ab8e9212d98c393c2ea8cb09f","7f208ece77be50a024bf2309ca2e7ad1e747fa29f31e9906e3851d3be6641b9e","c0df6627d0c30dc70d26c2d500506b073ff63584c4621f9261e510ad954ad2bd",{"version":"e88f9fd0378cbd9b22b140a61d3b203727af7f3262c13de22cc86739467592f1","signature":"843e5b4615221e2297a8466945eeb3326723f4fd1192c06620ecc001dbaa87b5"},{"version":"e771fe92973f495d9f144c8fe059dac65ae1a83ab822764c38cb43367c29c3cd","signature":"384e88791da61e5e7c78faad8c5ffa4874ccd8f0b0c499c09744959c55445a23"},{"version":"f321747f0a859e20b6e228596fa370c063c37879df4878b571251c106ecf6568","signature":"20346a0a18e673d87ac10bdcec07bbef6b1d73f6354933cc6ea198052db90dde"},{"version":"6d6045873be5694b5909223a2b1963ac4cb44e922db7495f8636649f3e3274d2","signature":"af4ad03cc9d094f7ac7e525a67f8e924f36db2be48cc38ee6c57ce1ac6e7e86b"},"f480f1e9a35fd352a7904fe1896a0f5f9f429aa2dbd4476f4055c67e6bc0caf1","edc69b6ef64b1964e00cebfd6be38f7503311853b3c955799932e1cc60d19f19",{"version":"ab736f78e252de51957095ea382a4b4d55eeae1f41dbd980eff87ea713d636cf","signature":"9eb79516694cfb1d2e17fc18233db4b4720c435a603b2d7a6d5c423a126b2fe7"},"6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","93b7325b49dfbf613d940ed0e471216657b2d77459dac34f1b5b1678f08f884c","fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","e9eb1b173aa166892f3eddab182e49cfe59aa2e14d33aedb6b49d175ed6a3750"],"root":[62,63,74,[76,81],[110,113],[115,117],[119,123],132,[165,167],169,178,224,226,232,234,236,256,257,267,[270,274],[276,284],287,[416,422]],"options":{"allowSyntheticDefaultImports":true,"esModuleInterop":true,"jsx":4,"jsxImportSource":"preact","module":99,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[334],[102,334],[92,102,334],[91,92,93,94,95,96,97,98,99,100,101,334],[108,334],[103,104,105,106,108,334],[103,104,105,106,107,334],[334,361,362],[334,362,363,364,365],[334,341,362,364],[334,361,363],[305,334,341],[305,334,341,357],[334,357,358,359,360],[334,357,359],[334,358],[322,334,341,366,367,368,371],[334,367,368,370],[304,334,341,366,367,368,369],[334,368],[334,366,367],[334,341,366],[334,341],[134,162,334],[133,139,334],[144,334],[139,334],[138,334],[156,334],[152,334],[134,151,162,334],[133,134,135,136,137,138,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,334],[334,423],[67,334],[288,334],[291,334],[292,297,325,334],[293,304,305,312,322,333,334],[293,294,304,312,334],[295,334],[296,297,305,313,334],[297,322,330,334],[298,300,304,312,334],[299,334],[300,301,334],[304,334],[302,304,334],[304,305,306,322,333,334],[304,305,306,319,322,325,334],[334,338],[300,304,307,312,322,333,334],[304,305,307,308,312,322,330,333,334],[307,309,322,330,333,334],[288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340],[304,310,334],[311,333,334],[300,304,312,322,334],[313,334],[314,334],[291,315,334],[316,332,334,338],[317,334],[318,334],[304,319,320,334],[319,321,334,336],[292,304,322,323,324,325,334],[292,322,324,334],[322,323,334],[325,334],[326,334],[322,334],[304,328,329,334],[328,329,334],[297,312,322,330,334],[331,334],[312,332,334],[292,307,318,333,334],[297,334],[322,334,335],[334,336],[334,337],[292,297,304,306,315,322,333,334,336,338],[322,334,339],[334,425],[334,426],[305,307,334,341],[293,334,338,341],[334,427],[334,341,373,374,375],[334,373,374],[334,373],[334,341,372],[334,341,342,344,348,349,352],[334,353],[334,344,348,351],[334,342,344,348,351,352,353,354],[334,341,348],[334,344,348,349,351],[334,341,342,344,349,350,352],[334,376],[67,75,252,334,409],[75,252,334,409],[252,253,334],[72,75,178,226,234,251,252,270,283,334,409],[88,89,334],[67,75,87,88,252,334,409],[237,334],[128,172,228,334],[173,181,184,186,334],[67,172,173,181,184,187,213,228,334],[187,210,212,228,334],[172,187,210,211,213,228,334],[214,334],[187,210,213,228,334],[172,187,210,213,227,228,334],[75,252,334,382,407,408,409],[75,172,228,252,334,382,409],[334,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406],[75,172,228,252,334,409],[188,189,209,334],[172,188,228,334],[172,228,334],[190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,334],[188,334],[67,172,210,213,228,334],[268,334],[171,174,175,334],[171,173,181,184,187,334],[173,179,180,184,187,334],[173,181,184,187,334],[173,181,182,183,187,334],[334,348],[334,345,346,347],[304,322,334,341],[240,334],[239,240,334],[239,334],[239,240,241,243,244,247,248,249,250,334],[240,244,334],[239,240,241,243,244,245,246,334],[239,244,334],[244,248,334],[240,241,242,334],[241,334],[239,240,244,334],[305,314,334,341,342,343],[65,334],[64,65,334],[64,334],[82,83,84,85,86,334],[82,83,334],[82,334],[118,322,334],[222,334],[73,75,221,252,334,409],[73,75,230,252,334,409],[73,265,334],[73,75,252,253,254,334,409],[73,75,252,334,409],[73,171,172,176,228,334],[73,172,185,215,228,334],[73,172,228,334],[73,172,228,334,380],[73,172,187,213,228,334],[334,409,410],[73,75,172,228,252,334,408,409],[73,172,218,228,334],[73,217,334],[305,334,341,355],[264,334],[334,412],[72,178,226,234,270,283,333,334,341],[67,72,178,226,234,270,283,334],[67,124,334],[126,128,334],[125,127,334],[67,125,127,334],[67,124,125,126,334],[125,128,130,334],[67,124,125,128,129,334],[68,334],[71,334],[67,69,70,72,178,226,234,270,283,334],[262,334],[259,261,262,263,334],[258,334],[260,334],[258,259,261,334],[259,334],[66,80,167,283,334],[66,284,285,287,307,314,334,356,377,378,417,418,419],[66,78,79,334],[66,77,334],[63,66,77,334],[63,66,77,90,110,334],[63,66,77,165,334],[66,74,77,115,334],[66,81,111,113,116,117,119,120,122,123,166,334],[66,77,115,334],[66,77,118,334],[66,132,164,334],[66,109,334],[66,168,334],[66,77,114,115,334],[65,66,74,75,76,80,252,334,409],[66,334,415],[66,114,314,334],[66,285,286,334],[66,78,115,314,334],[66,78,334],[66,75,78,115,131,252,314,334,409],[66,74,77,78,115,275,276,278,334],[66,132,279,280,281,334],[66,272,273,334],[63,66,72,74,77,78,79,80,169,178,226,234,270,271,274,282,334],[66,72,75,78,178,226,233,252,270,283,334,409],[66,72,78,170,177,226,234,270,283,334],[66,73,78,216,219,220,223,334],[66,178,224,226,232,234,236,257,267,270,334],[66,72,78,178,225,234,270,283,305,314,334],[66,78,229,231,334],[66,78,115,131,235,314,334],[66,73,74,78,115,131,172,228,238,255,314,334],[66,78,266,334],[66,72,78,114,131,172,178,226,228,234,269,283,334],[66,73,74,76,77,80,334],[66,71,75,252,334,409],[66,76,78,80,115,283,285,287,305,314,334,377],[66,76,78,287,334],[66,73,75,76,78,115,252,285,287,313,314,334,379,380,381,409,411,413,414,416],[66,297,334],[66,334],[66,284,334,417],[72,75,178,226,234,251,252,283,334,409],[75,334],[67,172,173,187,213,228,334],[75,334,382,407,408,409],[75,172,228,334,382,409],[75,172,228,334,409],[173,334],[173,181,184,334],[73,75,230,334],[73,75,172,228,334,408,409],[72,178,226,234,283,333,334,341],[67,72,283,334],[67,69,70,72,283,334],[80],[78,79],[65,77],[66,77],[65],[81,111,113,116,117,119,120,122,123,166],[65,74,75,76,80,252,409],[415],[78],[77,78],[132,279,280,281],[272,273],[72,78,80,178,226,234,271,274,282,283,429],[72,78,178,226,234,270,283],[178,224,226,232,234,236,257,267,270],[73,74,76,77,80],[71,75,252,409],[76,80],[76,78],[73,75,76,78,252,380,409],[66]],"referencedMap":[[62,1],[63,1],[103,2],[91,2],[92,2],[93,2],[94,3],[95,2],[96,3],[97,2],[98,2],[99,3],[100,3],[102,4],[101,2],[109,5],[104,5],[107,6],[105,5],[108,7],[106,1],[225,1],[363,8],[366,9],[365,10],[364,11],[362,12],[358,13],[361,14],[360,15],[359,16],[357,12],[372,17],[371,18],[370,19],[369,20],[368,21],[367,22],[415,23],[133,1],[135,24],[136,24],[137,1],[138,1],[140,25],[141,1],[142,1],[143,24],[144,1],[145,1],[146,26],[147,1],[148,1],[149,27],[150,1],[151,28],[152,1],[153,1],[154,1],[155,1],[158,1],[157,29],[134,1],[159,30],[160,1],[156,1],[161,1],[162,24],[163,31],[164,32],[424,33],[139,1],[75,34],[230,1],[172,34],[423,1],[217,34],[288,35],[289,35],[291,36],[292,37],[293,38],[294,39],[295,40],[296,41],[297,42],[298,43],[299,44],[300,45],[301,45],[303,46],[302,47],[304,46],[305,48],[306,49],[290,50],[340,1],[307,51],[308,52],[309,53],[341,54],[310,55],[311,56],[312,57],[313,58],[314,59],[315,60],[316,61],[317,62],[318,63],[319,64],[320,64],[321,65],[322,66],[324,67],[323,68],[325,69],[326,70],[327,71],[328,72],[329,73],[330,74],[331,75],[332,76],[333,77],[334,78],[335,79],[336,80],[337,81],[338,82],[339,83],[426,84],[425,85],[286,1],[378,86],[67,1],[414,87],[427,1],[428,88],[285,1],[379,1],[376,89],[375,90],[374,91],[373,92],[114,1],[353,93],[354,94],[352,95],[355,96],[349,97],[350,98],[351,99],[377,100],[170,1],[221,101],[252,102],[254,103],[253,104],[90,105],[88,102],[89,106],[233,102],[235,1],[343,1],[211,1],[238,107],[237,108],[187,109],[186,110],[213,111],[212,112],[215,113],[214,114],[228,115],[227,114],[409,116],[383,117],[384,117],[385,117],[386,117],[387,117],[388,117],[389,117],[390,117],[391,117],[392,117],[393,117],[407,118],[394,117],[395,117],[396,117],[397,117],[398,117],[399,117],[400,117],[401,117],[403,117],[404,117],[402,117],[405,117],[406,117],[408,117],[382,119],[210,120],[190,121],[191,121],[192,121],[193,121],[194,121],[195,121],[196,122],[198,121],[197,121],[209,123],[199,121],[201,121],[200,121],[203,121],[202,121],[204,121],[205,121],[206,121],[207,121],[208,121],[189,124],[188,125],[269,126],[268,122],[176,127],[175,128],[174,128],[171,1],[181,129],[180,130],[179,130],[184,131],[182,130],[183,130],[185,130],[173,1],[168,1],[345,132],[346,132],[348,133],[347,132],[342,134],[241,135],[250,136],[239,1],[240,137],[251,138],[246,139],[247,140],[245,141],[249,142],[243,143],[242,144],[248,145],[244,136],[344,146],[275,147],[66,148],[65,149],[64,147],[87,150],[84,151],[85,1],[86,1],[82,1],[83,152],[118,153],[223,154],[222,155],[231,156],[266,157],[255,158],[220,159],[177,160],[216,161],[229,162],[381,163],[380,164],[411,165],[410,166],[219,167],[218,168],[356,169],[265,170],[413,171],[412,172],[60,1],[61,1],[12,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[73,173],[125,174],[124,34],[129,175],[128,176],[126,177],[127,178],[131,179],[130,180],[69,181],[68,34],[72,182],[71,183],[70,1],[263,184],[264,185],[259,186],[261,187],[260,188],[262,186],[258,189],[422,1],[284,190],[420,191],[80,192],[81,193],[278,194],[111,195],[113,194],[166,196],[116,197],[276,193],[167,198],[117,199],[119,200],[256,1],[277,1],[112,1],[165,201],[110,202],[169,203],[121,1],[120,193],[122,194],[123,204],[77,205],[416,206],[115,207],[287,208],[280,209],[281,210],[132,211],[279,212],[282,213],[272,210],[273,210],[274,214],[283,215],[234,216],[178,217],[224,218],[271,219],[226,220],[232,221],[236,222],[257,223],[267,224],[270,225],[78,226],[76,227],[419,228],[418,229],[417,230],[74,231],[79,232],[421,233]],"exportedModulesMap":[[62,1],[63,1],[103,2],[91,2],[92,2],[93,2],[94,3],[95,2],[96,3],[97,2],[98,2],[99,3],[100,3],[102,4],[101,2],[109,5],[104,5],[107,6],[105,5],[108,7],[106,1],[225,1],[363,8],[366,9],[365,10],[364,11],[362,12],[358,13],[361,14],[360,15],[359,16],[357,12],[372,17],[371,18],[370,19],[369,20],[368,21],[367,22],[415,23],[133,1],[135,24],[136,24],[137,1],[138,1],[140,25],[141,1],[142,1],[143,24],[144,1],[145,1],[146,26],[147,1],[148,1],[149,27],[150,1],[151,28],[152,1],[153,1],[154,1],[155,1],[158,1],[157,29],[134,1],[159,30],[160,1],[156,1],[161,1],[162,24],[163,31],[164,32],[424,33],[139,1],[75,34],[230,1],[172,34],[423,1],[217,34],[288,35],[289,35],[291,36],[292,37],[293,38],[294,39],[295,40],[296,41],[297,42],[298,43],[299,44],[300,45],[301,45],[303,46],[302,47],[304,46],[305,48],[306,49],[290,50],[340,1],[307,51],[308,52],[309,53],[341,54],[310,55],[311,56],[312,57],[313,58],[314,59],[315,60],[316,61],[317,62],[318,63],[319,64],[320,64],[321,65],[322,66],[324,67],[323,68],[325,69],[326,70],[327,71],[328,72],[329,73],[330,74],[331,75],[332,76],[333,77],[334,78],[335,79],[336,80],[337,81],[338,82],[339,83],[426,84],[425,85],[286,1],[378,86],[67,1],[414,87],[427,1],[428,88],[285,1],[379,1],[376,89],[375,90],[374,91],[373,92],[114,1],[353,93],[354,94],[352,95],[355,96],[349,97],[350,98],[351,99],[377,100],[170,1],[221,101],[252,102],[254,103],[253,234],[90,105],[88,102],[89,106],[233,235],[235,1],[343,1],[211,1],[238,107],[237,108],[187,109],[186,236],[213,111],[212,112],[215,113],[214,114],[228,115],[227,114],[409,237],[383,238],[384,238],[385,238],[386,238],[387,238],[388,238],[389,238],[390,238],[391,238],[392,238],[393,238],[407,118],[394,238],[395,238],[396,238],[397,238],[398,238],[399,238],[400,238],[401,238],[403,238],[404,238],[402,238],[405,238],[406,238],[408,238],[382,239],[210,120],[190,121],[191,121],[192,121],[193,121],[194,121],[195,121],[196,122],[198,121],[197,121],[209,123],[199,121],[201,121],[200,121],[203,121],[202,121],[204,121],[205,121],[206,121],[207,121],[208,121],[189,124],[188,125],[269,126],[268,122],[176,127],[175,128],[174,128],[171,1],[181,129],[180,240],[179,240],[184,131],[182,240],[183,130],[185,241],[173,1],[168,1],[345,132],[346,132],[348,133],[347,132],[342,134],[241,135],[250,136],[239,1],[240,137],[251,138],[246,139],[247,140],[245,141],[249,142],[243,143],[242,144],[248,145],[244,136],[344,146],[275,147],[66,148],[65,149],[64,147],[87,150],[84,151],[85,1],[86,1],[82,1],[83,152],[118,153],[223,154],[222,155],[231,242],[266,157],[255,158],[220,159],[177,160],[216,161],[229,162],[381,163],[380,164],[411,165],[410,243],[219,167],[218,168],[356,169],[265,170],[413,171],[412,244],[60,1],[61,1],[12,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[73,245],[125,174],[124,34],[129,175],[128,176],[126,177],[127,178],[131,179],[130,180],[69,181],[68,34],[72,182],[71,246],[70,1],[263,184],[264,185],[259,186],[261,187],[260,188],[262,186],[258,189],[284,247],[420,191],[80,248],[81,249],[278,249],[111,250],[113,251],[166,251],[116,249],[276,249],[167,252],[117,249],[119,249],[120,251],[122,249],[123,249],[77,253],[416,254],[280,255],[281,255],[132,255],[279,256],[282,257],[272,255],[273,255],[274,258],[283,259],[234,260],[178,260],[224,255],[271,261],[226,260],[232,255],[236,255],[257,255],[267,255],[270,260],[78,262],[76,263],[419,264],[418,265],[417,266],[74,267],[421,233]],"semanticDiagnosticsPerFile":[62,63,103,91,92,93,94,95,96,97,98,99,100,102,101,109,104,107,105,108,106,225,363,366,365,364,362,358,361,360,359,357,372,371,370,369,368,367,415,133,135,136,137,138,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,157,134,159,160,156,161,162,163,164,424,139,75,230,172,423,217,288,289,291,292,293,294,295,296,297,298,299,300,301,303,302,304,305,306,290,340,307,308,309,341,310,311,312,313,314,315,316,317,318,319,320,321,322,324,323,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,426,425,286,378,67,414,427,428,285,379,376,375,374,373,114,353,354,352,355,349,350,351,377,170,221,252,254,253,90,88,89,233,235,343,211,238,237,187,186,213,212,215,214,228,227,409,383,384,385,386,387,388,389,390,391,392,393,407,394,395,396,397,398,399,400,401,403,404,402,405,406,408,382,210,190,191,192,193,194,195,196,198,197,209,199,201,200,203,202,204,205,206,207,208,189,188,269,268,176,175,174,171,181,180,179,184,182,183,185,173,168,345,346,348,347,342,241,250,239,240,251,246,247,245,249,243,242,248,244,344,275,66,65,64,87,84,85,86,82,83,118,223,222,231,266,255,220,177,216,229,381,380,411,410,219,218,356,265,413,412,60,61,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,10,1,11,59,73,125,124,129,128,126,127,131,130,69,68,72,71,70,263,264,259,261,260,262,258,422,284,420,80,81,278,111,113,166,116,276,167,117,119,256,277,112,165,110,169,121,120,122,123,77,416,115,287,280,281,132,279,282,272,273,274,283,234,178,224,271,226,232,236,257,267,270,78,76,419,418,417,74,79,421],"affectedFilesPendingEmit":[422,284,420,80,81,278,111,113,166,116,276,167,117,119,256,277,112,165,110,169,121,120,122,123,77,416,115,287,280,281,132,279,282,272,273,274,283,234,178,224,271,226,232,236,257,267,270,78,76,419,418,417,74,79,421]},"version":"5.0.4"} \ No newline at end of file From 821553fd2aa5df4d5cf7d7b701e65be0910e4515 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Mon, 19 Jun 2023 22:50:25 -0700 Subject: [PATCH 032/197] fix: parsing wikilinks that have codeblock anchors, scroll to anchor --- quartz/components/Backlinks.tsx | 3 +- quartz/components/scripts/graph.inline.ts | 15 +------ quartz/components/scripts/popover.inline.ts | 30 ++++++++++---- quartz/components/scripts/search.inline.ts | 12 +----- .../scripts/{handler.ts => util.ts} | 19 +++++++++ quartz/components/styles/popover.scss | 1 + quartz/plugins/transformers/description.ts | 3 -- quartz/plugins/transformers/frontmatter.ts | 3 -- quartz/plugins/transformers/lastmod.ts | 3 -- quartz/plugins/transformers/links.ts | 12 +++--- quartz/plugins/transformers/ofm.ts | 41 ++++++++++++++----- quartz/plugins/transformers/syntax.ts | 7 ++-- quartz/plugins/transformers/toc.ts | 3 -- quartz/plugins/types.ts | 7 ++-- quartz/processors/parse.ts | 18 ++++---- quartz/worker.ts | 2 +- 16 files changed, 99 insertions(+), 80 deletions(-) rename quartz/components/scripts/{handler.ts => util.ts} (51%) diff --git a/quartz/components/Backlinks.tsx b/quartz/components/Backlinks.tsx index 584746c5..50969770 100644 --- a/quartz/components/Backlinks.tsx +++ b/quartz/components/Backlinks.tsx @@ -1,6 +1,7 @@ import { QuartzComponentConstructor, QuartzComponentProps } from "./types" import style from "./styles/backlinks.scss" import { relativeToRoot } from "../path" +import { stripIndex } from "./scripts/util" function Backlinks({ fileData, allFiles }: QuartzComponentProps) { const slug = fileData.slug! @@ -9,7 +10,7 @@ function Backlinks({ fileData, allFiles }: QuartzComponentProps) {

Backlinks

diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts index 1c1149dd..4ff2dfe4 100644 --- a/quartz/components/scripts/graph.inline.ts +++ b/quartz/components/scripts/graph.inline.ts @@ -1,6 +1,6 @@ import { ContentDetails } from "../../plugins/emitters/contentIndex" import * as d3 from 'd3' -import { registerEscapeHandler } from "./handler" +import { registerEscapeHandler, relative, removeAllChildren } from "./util" type NodeData = { id: string, @@ -13,18 +13,6 @@ type LinkData = { target: string } -function relative(from: string, to: string) { - const pieces = [location.protocol, '//', location.host, location.pathname] - const url = pieces.join('').slice(0, -from.length) + to - return url -} - -function removeAllChildren(node: HTMLElement) { - while (node.firstChild) { - node.removeChild(node.firstChild) - } -} - async function renderGraph(container: string, slug: string) { const graph = document.getElementById(container) if (!graph) return @@ -117,7 +105,6 @@ async function renderGraph(container: string, slug: string) { // calculate radius const color = (d: NodeData) => { - // TODO: does this handle the index page const isCurrent = d.id === slug return isCurrent ? "var(--secondary)" : "var(--gray)" } diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts index f7cd9986..655831db 100644 --- a/quartz/components/scripts/popover.inline.ts +++ b/quartz/components/scripts/popover.inline.ts @@ -7,10 +7,11 @@ document.addEventListener("nav", () => { link.addEventListener("mouseenter", async ({ clientX, clientY }) => { async function setPosition(popoverElement: HTMLElement) { const { x, y } = await computePosition(link, popoverElement, { - middleware: [inline({ - x: clientX, - y: clientY - }), shift(), flip()] + middleware: [ + inline({ x: clientX, y: clientY }), + shift(), + flip() + ] }) Object.assign(popoverElement.style, { left: `${x}px`, @@ -22,11 +23,17 @@ document.addEventListener("nav", () => { return setPosition(link.lastChild as HTMLElement) } - const url = link.href - const anchor = new URL(url).hash - if (anchor.startsWith("#")) return + const thisUrl = new URL(document.location.href) + thisUrl.hash = "" + thisUrl.search = "" + const targetUrl = new URL(link.href) + const hash = targetUrl.hash + targetUrl.hash = "" + targetUrl.search = "" + // prevent hover of the same page + if (thisUrl.toString() === targetUrl.toString()) return - const contents = await fetch(`${url}`) + const contents = await fetch(`${targetUrl}`) .then((res) => res.text()) .catch((err) => { console.error(err) @@ -39,7 +46,6 @@ document.addEventListener("nav", () => { const popoverElement = document.createElement("div") popoverElement.classList.add("popover") - // TODO: scroll this element if we specify a header/anchor to jump to const popoverInner = document.createElement("div") popoverInner.classList.add("popover-inner") popoverElement.appendChild(popoverInner) @@ -48,6 +54,12 @@ document.addEventListener("nav", () => { setPosition(popoverElement) link.appendChild(popoverElement) link.dataset.fetchedPopover = "true" + + const heading = popoverInner.querySelector(hash) as HTMLElement | null + if (heading) { + // leave ~12px of buffer when scrolling to a heading + popoverInner.scroll({ top: heading.offsetTop - 12, behavior: 'instant' }) + } }) } }) diff --git a/quartz/components/scripts/search.inline.ts b/quartz/components/scripts/search.inline.ts index b1c62654..78517fea 100644 --- a/quartz/components/scripts/search.inline.ts +++ b/quartz/components/scripts/search.inline.ts @@ -1,6 +1,6 @@ import { Document } from "flexsearch" import { ContentDetails } from "../../plugins/emitters/contentIndex" -import { registerEscapeHandler } from "./handler" +import { registerEscapeHandler, relative, removeAllChildren } from "./util" interface Item { slug: string, @@ -9,16 +9,6 @@ interface Item { } let index: Document | undefined = undefined -function relative(from: string, to: string) { - const pieces = [location.protocol, '//', location.host, location.pathname] - const url = pieces.join('').slice(0, -from.length) + to - return url -} - -function removeAllChildren(node: HTMLElement) { - node.innerHTML = `` -} - const contextWindowWords = 30 function highlight(searchTerm: string, text: string, trim?: boolean) { const tokenizedTerms = searchTerm.split(/\s+/).filter(t => t !== "") diff --git a/quartz/components/scripts/handler.ts b/quartz/components/scripts/util.ts similarity index 51% rename from quartz/components/scripts/handler.ts rename to quartz/components/scripts/util.ts index c806a8b6..e94929b2 100644 --- a/quartz/components/scripts/handler.ts +++ b/quartz/components/scripts/util.ts @@ -17,3 +17,22 @@ export function registerEscapeHandler(outsideContainer: HTMLElement | null, cb: document.removeEventListener("keydown", esc) document.addEventListener('keydown', esc) } + +export function stripIndex(s: string): string { + return s.endsWith("index") ? s.slice(0, -"index".length) : s +} + +export function relative(from: string, to: string) { + from = encodeURI(stripIndex(from)) + to = encodeURI(stripIndex(to)) + const start = [location.protocol, '//', location.host, location.pathname].join('') + const trimEnd = from.length === 0 ? start.length : -from.length + const url = start.slice(0, trimEnd) + to + return url +} + +export function removeAllChildren(node: HTMLElement) { + while (node.firstChild) { + node.removeChild(node.firstChild) + } +} diff --git a/quartz/components/styles/popover.scss b/quartz/components/styles/popover.scss index 9b794476..f95dc7b7 100644 --- a/quartz/components/styles/popover.scss +++ b/quartz/components/styles/popover.scss @@ -19,6 +19,7 @@ padding: 1rem; & > .popover-inner { + position: relative; width: 30rem; height: 20rem; padding: 0 1rem 1rem 1rem; diff --git a/quartz/plugins/transformers/description.ts b/quartz/plugins/transformers/description.ts index ed59f824..0e41c5bc 100644 --- a/quartz/plugins/transformers/description.ts +++ b/quartz/plugins/transformers/description.ts @@ -14,9 +14,6 @@ export const Description: QuartzTransformerPlugin | undefined> const opts = { ...defaultOptions, ...userOpts } return { name: "Description", - markdownPlugins() { - return [] - }, htmlPlugins() { return [ () => { diff --git a/quartz/plugins/transformers/frontmatter.ts b/quartz/plugins/transformers/frontmatter.ts index 5568463c..fd91755f 100644 --- a/quartz/plugins/transformers/frontmatter.ts +++ b/quartz/plugins/transformers/frontmatter.ts @@ -33,9 +33,6 @@ export const FrontMatter: QuartzTransformerPlugin | undefined> } ] }, - htmlPlugins() { - return [] - } } } diff --git a/quartz/plugins/transformers/lastmod.ts b/quartz/plugins/transformers/lastmod.ts index b7514e47..f3a8904a 100644 --- a/quartz/plugins/transformers/lastmod.ts +++ b/quartz/plugins/transformers/lastmod.ts @@ -53,9 +53,6 @@ export const CreatedModifiedDate: QuartzTransformerPlugin | und } ] }, - htmlPlugins() { - return [] - } } } diff --git a/quartz/plugins/transformers/links.ts b/quartz/plugins/transformers/links.ts index 3083ce7b..13914523 100644 --- a/quartz/plugins/transformers/links.ts +++ b/quartz/plugins/transformers/links.ts @@ -1,5 +1,5 @@ import { QuartzTransformerPlugin } from "../types" -import { relative, relativeToRoot, slugify, trimPathSuffix } from "../../path" +import { relativeToRoot, slugify, trimPathSuffix } from "../../path" import path from "path" import { visit } from 'unist-util-visit' import isAbsoluteUrl from "is-absolute-url" @@ -24,9 +24,6 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = const opts = { ...defaultOptions, ...userOpts } return { name: "LinkProcessing", - markdownPlugins() { - return [] - }, htmlPlugins() { return [() => { return (tree, file) => { @@ -34,7 +31,8 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = const transformLink = (target: string) => { const targetSlug = slugify(decodeURI(target).trim()) if (opts.markdownLinkResolution === 'relative' && !path.isAbsolute(targetSlug)) { - return './' + relative(curSlug, targetSlug) + // TODO + // return './' + relative(curSlug, targetSlug) } else { return './' + relativeToRoot(curSlug, targetSlug) } @@ -77,9 +75,9 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = } } - // transform all images + // transform all other resources that may use links if ( - node.tagName === 'img' && + ["img", "video", "audio", "iframe"].includes(node.tagName) && node.properties && typeof node.properties.src === 'string' ) { diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index 3742d4b6..0deec4b9 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -3,6 +3,7 @@ import { QuartzTransformerPlugin } from "../types" import { Root, HTML, BlockContent, DefinitionContent, Code } from 'mdast' import { findAndReplace } from "mdast-util-find-and-replace" import { slugify } from "../../path" +import { slug as slugAnchor } from 'github-slugger' import rehypeRaw from "rehype-raw" import { visit } from "unist-util-visit" import path from "path" @@ -94,21 +95,43 @@ const capitalize = (s: string): string => { return s.substring(0, 1).toUpperCase() + s.substring(1); } +// Match wikilinks +// !? -> optional embedding +// \[\[ -> open brace +// ([^\[\]\|\#]+) -> one or more non-special characters ([,],|, or #) (name) +// (#[^\[\]\|\#]+)? -> # then one or more non-special characters (heading link) +// (|[^\[\]\|\#]+)? -> | then one or more non-special characters (alias) +const backlinkRegex = new RegExp(/!?\[\[([^\[\]\|\#]+)(#[^\[\]\|\#]+)?(\|[^\[\]\|\#]+)?\]\]/, "g") + +// Match highlights +const highlightRegex = new RegExp(/==(.+)==/, "g") + +// from https://github.com/escwxyz/remark-obsidian-callout/blob/main/src/index.ts +const calloutRegex = new RegExp(/^\[\!(\w+)\]([+-]?)/) + export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin | undefined> = (userOpts) => { const opts = { ...defaultOptions, ...userOpts } return { name: "ObsidianFlavoredMarkdown", + textTransform(src) { + // pre-transform wikilinks (fix anchors to things that may contain illegal syntax e.g. codeblocks, latex) + if (opts.wikilinks) { + src = src.toString() + return src.replaceAll(backlinkRegex, (value, ...capture) => { + const [fp, rawHeader, rawAlias] = capture + const anchor = rawHeader?.trim().slice(1) + const displayAnchor = anchor ? `#${slugAnchor(anchor)}` : "" + const displayAlias = rawAlias ?? "" + const embedDisplay = value.startsWith("!") ? "!" : "" + return `${embedDisplay}[[${fp}${displayAnchor}${displayAlias}]]` + }) + } + return src + }, markdownPlugins() { const plugins: PluggableList = [] if (opts.wikilinks) { plugins.push(() => { - // Match wikilinks - // !? -> optional embedding - // \[\[ -> open brace - // ([^\[\]\|\#]+) -> one or more non-special characters ([,],|, or #) (name) - // (#[^\[\]\|\#]+)? -> # then one or more non-special characters (heading link) - // (|[^\[\]\|\#]+)? -> | then one or more non-special characters (alias) - const backlinkRegex = new RegExp(/!?\[\[([^\[\]\|\#]+)(#[^\[\]\|\#]+)?(\|[^\[\]\|\#]+)?\]\]/, "g") return (tree: Root, _file) => { findAndReplace(tree, backlinkRegex, (value: string, ...capture: string[]) => { const [fp, rawHeader, rawAlias] = capture @@ -170,8 +193,6 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin if (opts.highlight) { plugins.push(() => { - // Match highlights - const highlightRegex = new RegExp(/==(.+)==/, "g") return (tree: Root, _file) => { findAndReplace(tree, highlightRegex, (_value: string, ...capture: string[]) => { const [inner] = capture @@ -186,8 +207,6 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin if (opts.callouts) { plugins.push(() => { - // from https://github.com/escwxyz/remark-obsidian-callout/blob/main/src/index.ts - const calloutRegex = new RegExp(/^\[\!(\w+)\]([+-]?)/) return (tree: Root, _file) => { visit(tree, "blockquote", (node) => { if (node.children.length === 0) { diff --git a/quartz/plugins/transformers/syntax.ts b/quartz/plugins/transformers/syntax.ts index 16424ec8..0f465195 100644 --- a/quartz/plugins/transformers/syntax.ts +++ b/quartz/plugins/transformers/syntax.ts @@ -3,9 +3,6 @@ import rehypePrettyCode, { Options as CodeOptions } from "rehype-pretty-code" export const SyntaxHighlighting: QuartzTransformerPlugin = () => ({ name: "SyntaxHighlighting", - markdownPlugins() { - return [] - }, htmlPlugins() { return [[rehypePrettyCode, { theme: 'css-variables', @@ -15,10 +12,12 @@ export const SyntaxHighlighting: QuartzTransformerPlugin = () => ({ } }, onVisitHighlightedLine(node) { + node.properties.className ??= [] node.properties.className.push('highlighted') }, onVisitHighlightedWord(node) { - node.properties.className = ['word'] + node.properties.className ??= [] + node.properties.className.push('word') }, } satisfies Partial]] } diff --git a/quartz/plugins/transformers/toc.ts b/quartz/plugins/transformers/toc.ts index 172f082a..8d37def5 100644 --- a/quartz/plugins/transformers/toc.ts +++ b/quartz/plugins/transformers/toc.ts @@ -52,9 +52,6 @@ export const TableOfContents: QuartzTransformerPlugin | undefin } }] }, - htmlPlugins() { - return [] - } } } diff --git a/quartz/plugins/types.ts b/quartz/plugins/types.ts index 444fcffc..f74b3c9c 100644 --- a/quartz/plugins/types.ts +++ b/quartz/plugins/types.ts @@ -14,9 +14,10 @@ type OptionType = object | undefined export type QuartzTransformerPlugin = (opts?: Options) => QuartzTransformerPluginInstance export type QuartzTransformerPluginInstance = { name: string - markdownPlugins(): PluggableList - htmlPlugins(): PluggableList - externalResources?(): Partial + textTransform?: (src: string | Buffer) => string | Buffer + markdownPlugins?: () => PluggableList + htmlPlugins?: () => PluggableList + externalResources?: () => Partial } export type QuartzFilterPlugin = (opts?: Options) => QuartzFilterPluginInstance diff --git a/quartz/processors/parse.ts b/quartz/processors/parse.ts index f9377012..6560bf6c 100644 --- a/quartz/processors/parse.ts +++ b/quartz/processors/parse.ts @@ -21,8 +21,8 @@ export function createProcessor(transformers: QuartzTransformerPluginInstance[]) let processor = unified().use(remarkParse) // MD AST -> MD AST transforms - for (const plugin of transformers) { - processor = processor.use(plugin.markdownPlugins()) + for (const plugin of transformers.filter(p => p.markdownPlugins)) { + processor = processor.use(plugin.markdownPlugins!()) } // MD AST -> HTML AST @@ -30,8 +30,8 @@ export function createProcessor(transformers: QuartzTransformerPluginInstance[]) // HTML AST -> HTML AST transforms - for (const plugin of transformers) { - processor = processor.use(plugin.htmlPlugins()) + for (const plugin of transformers.filter(p => p.htmlPlugins)) { + processor = processor.use(plugin.htmlPlugins!()) } return processor @@ -73,13 +73,18 @@ async function transpileWorkerScript() { }) } -export function createFileParser(baseDir: string, fps: string[], verbose: boolean) { +export function createFileParser(transformers: QuartzTransformerPluginInstance[], baseDir: string, fps: string[], verbose: boolean) { return async (processor: QuartzProcessor) => { const res: ProcessedContent[] = [] for (const fp of fps) { try { const file = await read(fp) + // Text -> Text transforms + for (const plugin of transformers.filter(p => p.textTransform)) { + file.value = plugin.textTransform!(file.value) + } + // base data properties that plugins may use file.data.slug = slugify(path.relative(baseDir, file.path)) file.data.filePath = fp @@ -111,9 +116,8 @@ export async function parseMarkdown(transformers: QuartzTransformerPluginInstanc log.start(`Parsing input files using ${concurrency} threads`) if (concurrency === 1) { - // single-thread const processor = createProcessor(transformers) - const parse = createFileParser(baseDir, fps, verbose) + const parse = createFileParser(transformers, baseDir, fps, verbose) res = await parse(processor) } else { await transpileWorkerScript() diff --git a/quartz/worker.ts b/quartz/worker.ts index e2c278fa..be2c0d19 100644 --- a/quartz/worker.ts +++ b/quartz/worker.ts @@ -6,6 +6,6 @@ const processor = createProcessor(transformers) // only called from worker thread export async function parseFiles(baseDir: string, fps: string[], verbose: boolean) { - const parse = createFileParser(baseDir, fps, verbose) + const parse = createFileParser(transformers, baseDir, fps, verbose) return parse(processor) } From e0a64bbb630a2c4639650b1b57302be6d2356d5a Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sat, 1 Jul 2023 00:03:01 -0700 Subject: [PATCH 033/197] tag and folder pages --- quartz.config.ts | 79 ++++++++++++++++------- quartz/build.ts | 11 +++- quartz/cfg.ts | 15 +++++ quartz/components/Content.tsx | 31 --------- quartz/components/Date.tsx | 12 ++++ quartz/components/Footer.tsx | 27 ++++++++ quartz/components/PageList.tsx | 53 +++++++++++++++ quartz/components/index.ts | 10 ++- quartz/components/pages/Content.tsx | 11 ++++ quartz/components/pages/FolderContent.tsx | 37 +++++++++++ quartz/components/pages/TagContent.tsx | 33 ++++++++++ quartz/components/renderPage.tsx | 63 ++++++++++++++++++ quartz/components/scripts/graph.inline.ts | 26 +++++++- quartz/components/styles/footer.scss | 13 ++++ quartz/components/styles/graph.scss | 1 - quartz/components/styles/listPage.scss | 36 +++++++++++ quartz/components/styles/popover.scss | 1 + quartz/components/styles/search.scss | 1 + quartz/plugins/emitters/contentPage.tsx | 73 +++++---------------- quartz/plugins/emitters/folderPage.tsx | 77 ++++++++++++++++++++++ quartz/plugins/emitters/index.ts | 2 + quartz/plugins/emitters/tagPage.tsx | 74 +++++++++++++++++++++ quartz/plugins/index.ts | 9 +++ quartz/plugins/vfile.ts | 11 +++- quartz/styles/base.scss | 3 - 25 files changed, 586 insertions(+), 123 deletions(-) delete mode 100644 quartz/components/Content.tsx create mode 100644 quartz/components/Date.tsx create mode 100644 quartz/components/Footer.tsx create mode 100644 quartz/components/PageList.tsx create mode 100644 quartz/components/pages/Content.tsx create mode 100644 quartz/components/pages/FolderContent.tsx create mode 100644 quartz/components/pages/TagContent.tsx create mode 100644 quartz/components/renderPage.tsx create mode 100644 quartz/components/styles/footer.scss create mode 100644 quartz/components/styles/listPage.scss create mode 100644 quartz/plugins/emitters/folderPage.tsx create mode 100644 quartz/plugins/emitters/tagPage.tsx diff --git a/quartz.config.ts b/quartz.config.ts index bd7a81dc..0f2ca8da 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -1,7 +1,46 @@ -import { QuartzConfig } from "./quartz/cfg" +import { PageLayout, QuartzConfig } from "./quartz/cfg" import * as Component from "./quartz/components" import * as Plugin from "./quartz/plugins" +const sharedPageComponents = { + head: Component.Head(), + header: [ + Component.PageTitle({ title: "๐Ÿชด Quartz 4.0" }), + Component.Spacer(), + Component.Search(), + Component.Darkmode() + ], + footer: Component.Footer({ + authorName: "Jacky", + links: { + "GitHub": "https://github.com/jackyzha0", + "Twitter": "https://twitter.com/_jzhao" + } + }) +} + +const contentPageLayout: PageLayout = { + beforeBody: [ + Component.ArticleTitle(), + Component.ReadingTime(), + Component.TagList(), + ], + left: [], + right: [ + Component.Graph(), + Component.TableOfContents(), + Component.Backlinks() + ], +} + +const listPageLayout: PageLayout = { + beforeBody: [ + Component.ArticleTitle() + ], + left: [], + right: [], +} + const config: QuartzConfig = { configuration: { enableSPA: true, @@ -56,30 +95,22 @@ const config: QuartzConfig = { emitters: [ Plugin.AliasRedirects(), Plugin.ContentPage({ - head: Component.Head(), - header: [ - Component.PageTitle({ title: "๐Ÿชด Quartz 4.0" }), - Component.Spacer(), - Component.Search(), - Component.Darkmode() - ], - beforeBody: [ - Component.ArticleTitle(), - Component.ReadingTime(), - Component.TagList(), - ], - content: Component.Content(), - left: [ - ], - right: [ - Component.Graph(), - Component.TableOfContents(), - Component.Backlinks() - ], - footer: [] + ...sharedPageComponents, + ...contentPageLayout, + pageBody: Component.Content(), }), - Plugin.ContentIndex(), // you can exclude this if you don't plan on using popovers, graph, or backlinks, - Plugin.CNAME({ domain: "yoursite.xyz" }) // set this to your final deployed domain + Plugin.TagPage({ + ...sharedPageComponents, + ...listPageLayout, + pageBody: Component.TagContent(), + }), + Plugin.FolderPage({ + ...sharedPageComponents, + ...listPageLayout, + pageBody: Component.FolderContent(), + }), + Plugin.ContentIndex(), // you can exclude this if you don't plan on using popovers, graph view, or backlinks + Plugin.CNAME({ domain: "quartz.jzhao.xyz" }) // set this to your final deployed domain ] }, } diff --git a/quartz/build.ts b/quartz/build.ts index b96bf01c..45595e77 100644 --- a/quartz/build.ts +++ b/quartz/build.ts @@ -57,11 +57,18 @@ export default async function buildQuartz(argv: Argv, version: string) { if (argv.serve) { const server = http.createServer(async (req, res) => { - console.log(chalk.grey(`[req] ${req.url}`)) - return serveHandler(req, res, { + let status = 200 + const result = await serveHandler(req, res, { public: output, directoryListing: false, + }, { + async sendError() { + status = 404 + }, }) + const statusString = status === 200 ? chalk.green(`[${status}]`) : chalk.red(`[${status}]`) + console.log(statusString + chalk.grey(` ${req.url}`)) + return result }) server.listen(argv.port) console.log(`Started a Quartz server listening at http://localhost:${argv.port}`) diff --git a/quartz/cfg.ts b/quartz/cfg.ts index e1cf3af1..bb097c95 100644 --- a/quartz/cfg.ts +++ b/quartz/cfg.ts @@ -1,9 +1,12 @@ +import { QuartzComponent } from "./components/types" import { PluginTypes } from "./plugins/types" import { Theme } from "./theme" export interface GlobalConfiguration { /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ enableSPA: boolean, + /** Whether to display Wikipedia-style popovers when hovering over links */ + enablePopovers: boolean, /** Glob patterns to not search */ ignorePatterns: string[], theme: Theme @@ -13,3 +16,15 @@ export interface QuartzConfig { configuration: GlobalConfiguration, plugins: PluginTypes, } + +export interface FullPageLayout { + head: QuartzComponent + header: QuartzComponent[], + beforeBody: QuartzComponent[], + pageBody: QuartzComponent, + left: QuartzComponent[], + right: QuartzComponent[], + footer: QuartzComponent, +} + +export type PageLayout = Pick diff --git a/quartz/components/Content.tsx b/quartz/components/Content.tsx deleted file mode 100644 index 0bcab1e2..00000000 --- a/quartz/components/Content.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { QuartzComponentConstructor, QuartzComponentProps } from "./types" -import { Fragment, jsx, jsxs } from 'preact/jsx-runtime' -import { toJsxRuntime } from "hast-util-to-jsx-runtime" - -// @ts-ignore -import popoverScript from './scripts/popover.inline' -import popoverStyle from './styles/popover.scss' - -interface Options { - enablePopover: boolean -} - -const defaultOptions: Options = { - enablePopover: true -} - -export default ((opts?: Partial) => { - function Content({ tree }: QuartzComponentProps) { - // @ts-ignore (preact makes it angry) - const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) - return
{content}
- } - - const enablePopover = opts?.enablePopover ?? defaultOptions.enablePopover - if (enablePopover) { - Content.afterDOMLoaded = popoverScript - Content.css = popoverStyle - } - - return Content -}) satisfies QuartzComponentConstructor diff --git a/quartz/components/Date.tsx b/quartz/components/Date.tsx new file mode 100644 index 00000000..7ea6ad4d --- /dev/null +++ b/quartz/components/Date.tsx @@ -0,0 +1,12 @@ +interface Props { + date: Date +} + +export function Date({ date }: Props) { + const formattedDate = date.toLocaleDateString('en-US', { + year: "numeric", + month: "short", + day: '2-digit' + }) + return <>{formattedDate} +} diff --git a/quartz/components/Footer.tsx b/quartz/components/Footer.tsx new file mode 100644 index 00000000..4229f9d2 --- /dev/null +++ b/quartz/components/Footer.tsx @@ -0,0 +1,27 @@ +import { QuartzComponentConstructor } from "./types" +import style from "./styles/footer.scss" + +interface Options { + authorName: string, + links: Record +} + +export default ((opts?: Options) => { + function Footer() { + const year = new Date().getFullYear() + const name = opts?.authorName ?? "someone" + const links = opts?.links ?? [] + return <> +
+
+

Made by {name} using Quartz, ยฉ {year}

+
    {Object.entries(links).map(([text, link]) =>
  • + {text} +
  • )}
+
+ + } + + Footer.css = style + return Footer +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/PageList.tsx b/quartz/components/PageList.tsx new file mode 100644 index 00000000..e5d8dfb2 --- /dev/null +++ b/quartz/components/PageList.tsx @@ -0,0 +1,53 @@ +import { relativeToRoot } from "../path" +import { QuartzPluginData } from "../plugins/vfile" +import { Date } from "./Date" +import { stripIndex } from "./scripts/util" +import { QuartzComponentProps } from "./types" + +function byDateAndAlphabetical(f1: QuartzPluginData, f2: QuartzPluginData): number { + if (f1.dates && f2.dates) { + // sort descending by last modified + return f2.dates.modified.getTime() - f1.dates.modified.getTime() + } else if (f1.dates && !f2.dates) { + // prioritize files with dates + return -1 + } else if (!f1.dates && f2.dates) { + return 1 + } + + // otherwise, sort lexographically by title + const f1Title = f1.frontmatter?.title.toLowerCase() ?? "" + const f2Title = f2.frontmatter?.title.toLowerCase() ?? "" + return f1Title.localeCompare(f2Title) +} + +export function PageList({ fileData, allFiles }: QuartzComponentProps) { + const slug = fileData.slug! + return
    + {allFiles.sort(byDateAndAlphabetical).map(page => { + const title = page.frontmatter?.title + const pageSlug = page.slug! + const tags = page.frontmatter?.tags ?? [] + return
  • +
    + {page.dates &&

    + +

    } +
    +

    {title}

    +
    +
    +
      + {tags.map(tag =>
    • #{tag}
    • )} +
    +
    +
  • + })} +
+} + +PageList.css = ` +.section h3 { + margin: 0; +} +` diff --git a/quartz/components/index.ts b/quartz/components/index.ts index 61df101f..ed0c6680 100644 --- a/quartz/components/index.ts +++ b/quartz/components/index.ts @@ -1,5 +1,7 @@ import ArticleTitle from "./ArticleTitle" -import Content from "./Content" +import Content from "./pages/Content" +import TagContent from "./pages/TagContent" +import FolderContent from "./pages/FolderContent" import Darkmode from "./Darkmode" import Head from "./Head" import PageTitle from "./PageTitle" @@ -10,10 +12,13 @@ import TagList from "./TagList" import Graph from "./Graph" import Backlinks from "./Backlinks" import Search from "./Search" +import Footer from "./Footer" export { ArticleTitle, Content, + TagContent, + FolderContent, Darkmode, Head, PageTitle, @@ -23,5 +28,6 @@ export { TagList, Graph, Backlinks, - Search + Search, + Footer } diff --git a/quartz/components/pages/Content.tsx b/quartz/components/pages/Content.tsx new file mode 100644 index 00000000..7856d6ea --- /dev/null +++ b/quartz/components/pages/Content.tsx @@ -0,0 +1,11 @@ +import { QuartzComponentConstructor, QuartzComponentProps } from "../types" +import { Fragment, jsx, jsxs } from 'preact/jsx-runtime' +import { toJsxRuntime } from "hast-util-to-jsx-runtime" + +function Content({ tree }: QuartzComponentProps) { + // @ts-ignore (preact makes it angry) + const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) + return
{content}
+} + +export default (() => Content) satisfies QuartzComponentConstructor \ No newline at end of file diff --git a/quartz/components/pages/FolderContent.tsx b/quartz/components/pages/FolderContent.tsx new file mode 100644 index 00000000..48068434 --- /dev/null +++ b/quartz/components/pages/FolderContent.tsx @@ -0,0 +1,37 @@ +import { QuartzComponentConstructor, QuartzComponentProps } from "../types" +import { Fragment, jsx, jsxs } from 'preact/jsx-runtime' +import { toJsxRuntime } from "hast-util-to-jsx-runtime" +import path from "path" + +import style from '../styles/listPage.scss' +import { PageList } from "../PageList" + +function TagContent(props: QuartzComponentProps) { + const { tree, fileData, allFiles } = props + const folderSlug = fileData.slug! + const allPagesInFolder = allFiles.filter(file => { + const fileSlug = file.slug ?? "" + const prefixed = fileSlug.startsWith(folderSlug) + const folderParts = folderSlug.split(path.posix.sep) + const fileParts = fileSlug.split(path.posix.sep) + const isDirectChild = fileParts.length === folderParts.length + 1 + return prefixed && isDirectChild + }) + + const listProps = { + ...props, + allFiles: allPagesInFolder + } + + // @ts-ignore + const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) + return
+
{content}
+
+ +
+
+} + +TagContent.css = style + PageList.css +export default (() => TagContent) satisfies QuartzComponentConstructor diff --git a/quartz/components/pages/TagContent.tsx b/quartz/components/pages/TagContent.tsx new file mode 100644 index 00000000..e7e5f6dc --- /dev/null +++ b/quartz/components/pages/TagContent.tsx @@ -0,0 +1,33 @@ +import { QuartzComponentConstructor, QuartzComponentProps } from "../types" +import { Fragment, jsx, jsxs } from 'preact/jsx-runtime' +import { toJsxRuntime } from "hast-util-to-jsx-runtime" +import style from '../styles/listPage.scss' +import { PageList } from "../PageList" + +function TagContent(props: QuartzComponentProps) { + const { tree, fileData, allFiles } = props + const slug = fileData.slug + if (slug?.startsWith("tags/")) { + const tag = slug.slice("tags/".length) + + const allPagesWithTag = allFiles.filter(file => (file.frontmatter?.tags ?? []).includes(tag)) + const listProps = { + ...props, + allFiles: allPagesWithTag + } + + // @ts-ignore + const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) + return
+
{content}
+
+ +
+
+ } else { + throw `Component "TagContent" tried to render a non-tag page: ${slug}` + } +} + +TagContent.css = style + PageList.css +export default (() => TagContent) satisfies QuartzComponentConstructor diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx new file mode 100644 index 00000000..0e0f4c0c --- /dev/null +++ b/quartz/components/renderPage.tsx @@ -0,0 +1,63 @@ +import { render } from "preact-render-to-string"; +import { QuartzComponent, QuartzComponentProps } from "./types"; +import HeaderConstructor from "./Header" +import BodyConstructor from "./Body" +import { JSResourceToScriptElement, StaticResources } from "../resources"; +import { resolveToRoot } from "../path"; + +interface RenderComponents { + head: QuartzComponent + header: QuartzComponent[], + beforeBody: QuartzComponent[], + pageBody: QuartzComponent, + left: QuartzComponent[], + right: QuartzComponent[], + footer: QuartzComponent, +} + +export function pageResources(slug: string, staticResources: StaticResources): StaticResources { + const baseDir = resolveToRoot(slug) + return { + css: [baseDir + "/index.css", ...staticResources.css], + js: [ + { src: baseDir + "/prescript.js", loadTime: "beforeDOMReady", contentType: "external" }, + ...staticResources.js, + { src: baseDir + "/postscript.js", loadTime: "afterDOMReady", moduleType: 'module', contentType: "external" } + ] + } +} + +export function renderPage(slug: string, componentData: QuartzComponentProps, components: RenderComponents, pageResources: StaticResources): string { + const { head: Head, header, beforeBody, pageBody: Content, left, right, footer: Footer } = components + const Header = HeaderConstructor() + const Body = BodyConstructor() + + const doc = + + +
+
+ {header.map(HeaderComponent => )} +
+
+ {beforeBody.map(BodyComponent => )} +
+ +
+ {left.map(BodyComponent => )} +
+
+ +
+
+ {right.map(BodyComponent => )} +
+ +
+
+ + {pageResources.js.filter(resource => resource.loadTime === "afterDOMReady").map(res => JSResourceToScriptElement(res))} + + + return "\n" + render(doc) +} diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts index 4ff2dfe4..27e9a817 100644 --- a/quartz/components/scripts/graph.inline.ts +++ b/quartz/components/scripts/graph.inline.ts @@ -13,7 +13,19 @@ type LinkData = { target: string } +const localStorageKey = "graph-visited" +function getVisited(): Set { + return new Set(JSON.parse(localStorage.getItem(localStorageKey) ?? "[]")) +} + +function addToVisited(slug: string) { + const visited = getVisited() + visited.add(slug) + localStorage.setItem(localStorageKey, JSON.stringify([...visited])) +} + async function renderGraph(container: string, slug: string) { + const visited = getVisited() const graph = document.getElementById(container) if (!graph) return removeAllChildren(graph) @@ -106,7 +118,13 @@ async function renderGraph(container: string, slug: string) { // calculate radius const color = (d: NodeData) => { const isCurrent = d.id === slug - return isCurrent ? "var(--secondary)" : "var(--gray)" + if (isCurrent) { + return "var(--secondary)" + } else if (visited.has(d.id)) { + return "var(--tertiary)" + } else { + return "var(--gray)" + } } const drag = (simulation: d3.Simulation) => { @@ -267,9 +285,15 @@ function renderGlobalGraph() { document.addEventListener("nav", async (e: unknown) => { const slug = (e as CustomEventMap["nav"]).detail.url + addToVisited(slug) await renderGraph("graph-container", slug) const containerIcon = document.getElementById("global-graph-icon") containerIcon?.removeEventListener("click", renderGlobalGraph) containerIcon?.addEventListener("click", renderGlobalGraph) }) + +window.addEventListener('resize', async () => { + const slug = document.body.dataset["slug"]! + await renderGraph("graph-container", slug) +}) diff --git a/quartz/components/styles/footer.scss b/quartz/components/styles/footer.scss new file mode 100644 index 00000000..d104e508 --- /dev/null +++ b/quartz/components/styles/footer.scss @@ -0,0 +1,13 @@ +footer { + text-align: left; + opacity: 0.8; + & ul { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-direction: row; + gap: 1rem; + margin-top: -1rem; + } +} diff --git a/quartz/components/styles/graph.scss b/quartz/components/styles/graph.scss index 76323bb2..244f2e4e 100644 --- a/quartz/components/styles/graph.scss +++ b/quartz/components/styles/graph.scss @@ -9,7 +9,6 @@ border: 1px solid var(--lightgray); box-sizing: border-box; height: 250px; - width: 300px; margin: 0.5em 0; position: relative; diff --git a/quartz/components/styles/listPage.scss b/quartz/components/styles/listPage.scss new file mode 100644 index 00000000..a5d0a915 --- /dev/null +++ b/quartz/components/styles/listPage.scss @@ -0,0 +1,36 @@ +ul.section-ul { + list-style: none; + margin-top: 2em; + padding-left: 0; +} + +li.section-li { + margin-bottom: 1em; + + & > .section { + display: flex; + align-items: center; + + @media all and (max-width: 600px) { + & .tags { + display: none; + } + } + + & h3 > a { + font-weight: 700; + margin: 0; + background-color: transparent; + } + + & p { + margin: 0; + padding-right: 1em; + flex-basis: 6em; + } + } + + & .meta { + opacity: 0.6; + } +} diff --git a/quartz/components/styles/popover.scss b/quartz/components/styles/popover.scss index f95dc7b7..5ae09fe4 100644 --- a/quartz/components/styles/popover.scss +++ b/quartz/components/styles/popover.scss @@ -26,6 +26,7 @@ font-weight: initial; line-height: initial; font-size: initial; + font-family: var(--bodyFont); border: 1px solid var(--gray); background-color: var(--light); border-radius: 5px; diff --git a/quartz/components/styles/search.scss b/quartz/components/styles/search.scss index bac584b3..32d57443 100644 --- a/quartz/components/styles/search.scss +++ b/quartz/components/styles/search.scss @@ -102,6 +102,7 @@ & .highlight { color: var(--secondary); + font-weight: 700; } &:hover, &:focus { diff --git a/quartz/plugins/emitters/contentPage.tsx b/quartz/plugins/emitters/contentPage.tsx index 03bc0ff7..576821ad 100644 --- a/quartz/plugins/emitters/contentPage.tsx +++ b/quartz/plugins/emitters/contentPage.tsx @@ -1,90 +1,49 @@ -import { JSResourceToScriptElement, StaticResources } from "../../resources" import { QuartzEmitterPlugin } from "../types" -import { render } from "preact-render-to-string" -import { QuartzComponent } from "../../components/types" -import { resolveToRoot, trimPathSuffix } from "../../path" -import HeaderConstructor from "../../components/Header" import { QuartzComponentProps } from "../../components/types" +import HeaderConstructor from "../../components/Header" import BodyConstructor from "../../components/Body" +import { pageResources, renderPage } from "../../components/renderPage" +import { FullPageLayout } from "../../cfg" -interface Options { - head: QuartzComponent - header: QuartzComponent[], - beforeBody: QuartzComponent[], - content: QuartzComponent, - left: QuartzComponent[], - right: QuartzComponent[], - footer: QuartzComponent[], -} - -export const ContentPage: QuartzEmitterPlugin = (opts) => { +export const ContentPage: QuartzEmitterPlugin = (opts) => { if (!opts) { throw new Error("ContentPage must be initialized with options specifiying the components to use") } - const { head: Head, header, beforeBody, left, right, footer } = opts + const { head: Head, header, beforeBody, pageBody: Content, left, right, footer: Footer } = opts const Header = HeaderConstructor() const Body = BodyConstructor() return { name: "ContentPage", getQuartzComponents() { - return [opts.head, Header, Body, ...opts.header, ...opts.beforeBody, opts.content, ...opts.left, ...opts.right, ...opts.footer] + return [Head, Header, Body, ...header, ...beforeBody, Content, ...left, ...right, Footer] }, async emit(_contentDir, cfg, content, resources, emit): Promise { const fps: string[] = [] const allFiles = content.map(c => c[1].data) for (const [tree, file] of content) { - const baseDir = resolveToRoot(file.data.slug!) - const pageResources: StaticResources = { - css: [baseDir + "/index.css", ...resources.css], - js: [ - { src: baseDir + "/prescript.js", loadTime: "beforeDOMReady", contentType: "external" }, - ...resources.js, - { src: baseDir + "/postscript.js", loadTime: "afterDOMReady", moduleType: 'module', contentType: "external" } - ] - } - + const slug = file.data.slug! + const externalResources = pageResources(slug, resources) const componentData: QuartzComponentProps = { fileData: file.data, - externalResources: pageResources, + externalResources, cfg, children: [], tree, allFiles } - const Content = opts.content - const doc = - - -
-
- {header.map(HeaderComponent => )} -
-
- {beforeBody.map(BodyComponent => )} -
- -
- {left.map(BodyComponent => )} -
-
- -
-
- {right.map(BodyComponent => )} -
- - -
- - {pageResources.js.filter(resource => resource.loadTime === "afterDOMReady").map(res => JSResourceToScriptElement(res))} - + const content = renderPage( + slug, + componentData, + opts, + externalResources + ) const fp = file.data.slug + ".html" await emit({ - content: "\n" + render(doc), + content, slug: file.data.slug!, ext: ".html", }) diff --git a/quartz/plugins/emitters/folderPage.tsx b/quartz/plugins/emitters/folderPage.tsx new file mode 100644 index 00000000..ee8f0b9c --- /dev/null +++ b/quartz/plugins/emitters/folderPage.tsx @@ -0,0 +1,77 @@ +import { QuartzEmitterPlugin } from "../types" +import { QuartzComponentProps } from "../../components/types" +import HeaderConstructor from "../../components/Header" +import BodyConstructor from "../../components/Body" +import { pageResources, renderPage } from "../../components/renderPage" +import { ProcessedContent, defaultProcessedContent } from "../vfile" +import { FullPageLayout } from "../../cfg" +import path from "path" + +export const FolderPage: QuartzEmitterPlugin = (opts) => { + if (!opts) { + throw new Error("ErrorPage must be initialized with options specifiying the components to use") + } + + const { head: Head, header, beforeBody, pageBody: Content, left, right, footer: Footer } = opts + const Header = HeaderConstructor() + const Body = BodyConstructor() + + return { + name: "FolderPage", + getQuartzComponents() { + return [Head, Header, Body, ...header, ...beforeBody, Content, ...left, ...right, Footer] + }, + async emit(_contentDir, cfg, content, resources, emit): Promise { + const fps: string[] = [] + const allFiles = content.map(c => c[1].data) + + const folders: Set = new Set(allFiles.flatMap(data => data.slug ? [path.dirname(data.slug)] : [])) + + // remove special prefixes + folders.delete(".") + folders.delete("tags") + + const folderDescriptions: Record = Object.fromEntries([...folders].map(folder => ([ + folder, defaultProcessedContent({ slug: folder, frontmatter: { title: `Folder: ${folder}`, tags: [] } }) + ]))) + + for (const [tree, file] of content) { + const slug = file.data.slug! + if (folders.has(slug)) { + folderDescriptions[slug] = [tree, file] + } + } + + for (const folder of folders) { + const slug = folder + const externalResources = pageResources(slug, resources) + const [tree, file] = folderDescriptions[folder] + const componentData: QuartzComponentProps = { + fileData: file.data, + externalResources, + cfg, + children: [], + tree, + allFiles + } + + const content = renderPage( + slug, + componentData, + opts, + externalResources + ) + + const fp = file.data.slug + ".html" + await emit({ + content, + slug: file.data.slug!, + ext: ".html", + }) + + fps.push(fp) + } + return fps + } + } +} diff --git a/quartz/plugins/emitters/index.ts b/quartz/plugins/emitters/index.ts index 971bf194..ff684d52 100644 --- a/quartz/plugins/emitters/index.ts +++ b/quartz/plugins/emitters/index.ts @@ -1,4 +1,6 @@ export { ContentPage } from './contentPage' +export { TagPage } from './tagPage' +export { FolderPage } from './folderPage' export { ContentIndex } from './contentIndex' export { AliasRedirects } from './aliases' export { CNAME } from './cname' diff --git a/quartz/plugins/emitters/tagPage.tsx b/quartz/plugins/emitters/tagPage.tsx new file mode 100644 index 00000000..1f697159 --- /dev/null +++ b/quartz/plugins/emitters/tagPage.tsx @@ -0,0 +1,74 @@ +import { QuartzEmitterPlugin } from "../types" +import { QuartzComponentProps } from "../../components/types" +import HeaderConstructor from "../../components/Header" +import BodyConstructor from "../../components/Body" +import { pageResources, renderPage } from "../../components/renderPage" +import { ProcessedContent, defaultProcessedContent } from "../vfile" +import { FullPageLayout } from "../../cfg" + +export const TagPage: QuartzEmitterPlugin = (opts) => { + if (!opts) { + throw new Error("TagPage must be initialized with options specifiying the components to use") + } + + const { head: Head, header, beforeBody, pageBody: Content, left, right, footer: Footer } = opts + const Header = HeaderConstructor() + const Body = BodyConstructor() + + return { + name: "TagPage", + getQuartzComponents() { + return [Head, Header, Body, ...header, ...beforeBody, Content, ...left, ...right, Footer] + }, + async emit(_contentDir, cfg, content, resources, emit): Promise { + const fps: string[] = [] + const allFiles = content.map(c => c[1].data) + + const tags: Set = new Set(allFiles.flatMap(data => data.frontmatter?.tags ?? [])) + const tagDescriptions: Record = Object.fromEntries([...tags].map(tag => ([ + tag, defaultProcessedContent({ slug: `tags/${tag}`, frontmatter: { title: `Tag: ${tag}`, tags: [] } }) + ]))) + + for (const [tree, file] of content) { + const slug = file.data.slug! + if (slug.startsWith("tags/")) { + const tag = slug.slice("tags/".length) + if (tags.has(tag)) { + tagDescriptions[tag] = [tree, file] + } + } + } + + for (const tag of tags) { + const slug = `tags/${tag}` + const externalResources = pageResources(slug, resources) + const [tree, file] = tagDescriptions[tag] + const componentData: QuartzComponentProps = { + fileData: file.data, + externalResources, + cfg, + children: [], + tree, + allFiles + } + + const content = renderPage( + slug, + componentData, + opts, + externalResources + ) + + const fp = file.data.slug + ".html" + await emit({ + content, + slug: file.data.slug!, + ext: ".html", + }) + + fps.push(fp) + } + return fps + } + } +} diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index 0378b1bb..ae4593f1 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -4,8 +4,12 @@ import { StaticResources } from '../resources' import { googleFontHref, joinStyles } from '../theme' import { EmitCallback, PluginTypes } from './types' import styles from '../styles/base.scss' + // @ts-ignore import spaRouterScript from '../components/scripts/spa.inline' +// @ts-ignore +import popoverScript from '../components/scripts/popover.inline' +import popoverStyle from '../components/styles/popover.scss' export type ComponentResources = { css: string[], @@ -57,6 +61,11 @@ export function emitComponentResources(cfg: GlobalConfiguration, resources: Stat ) } + if (cfg.enablePopovers) { + componentResources.afterDOMLoaded.push(popoverScript) + componentResources.css.push(popoverStyle) + } + emit({ slug: "index", ext: ".css", diff --git a/quartz/plugins/vfile.ts b/quartz/plugins/vfile.ts index 9df31929..d3d24d37 100644 --- a/quartz/plugins/vfile.ts +++ b/quartz/plugins/vfile.ts @@ -1,5 +1,12 @@ -import { Node } from 'hast' -import { Data, VFile } from 'vfile/lib' +import { Node, Parent } from 'hast' +import { Data, VFile } from 'vfile' export type QuartzPluginData = Data export type ProcessedContent = [Node, VFile] + +export function defaultProcessedContent(vfileData: Partial): ProcessedContent { + const root: Parent = { type: 'root', children: [] } + const vfile = new VFile("") + vfile.data = vfileData + return [root, vfile] +} diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index fe626017..45e6370c 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -3,9 +3,6 @@ html { scroll-behavior: smooth; - & footer > p { - text-align: center !important; - } } body { From ba6df2d95fbf53007967bf1d4e196d84098b3824 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sat, 1 Jul 2023 13:35:27 -0700 Subject: [PATCH 034/197] rss + sitemap --- package-lock.json | 428 --------------------- package.json | 1 - quartz.config.ts | 13 +- quartz/cfg.ts | 5 + quartz/components/PageTitle.tsx | 27 +- quartz/path.ts | 3 + quartz/plugins/emitters/cname.ts | 25 -- quartz/plugins/emitters/contentIndex.ts | 103 ++++- quartz/plugins/emitters/index.ts | 1 - quartz/plugins/index.ts | 10 +- quartz/plugins/transformers/description.ts | 6 +- 11 files changed, 131 insertions(+), 491 deletions(-) delete mode 100644 quartz/plugins/emitters/cname.ts diff --git a/package-lock.json b/package-lock.json index c250a4bf..92e22eb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.4.0", - "@inquirer/prompts": "^1.0.3", "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", "cli-spinner": "^0.2.10", @@ -411,290 +410,6 @@ "@floating-ui/core": "^1.3.1" } }, - "node_modules/@inquirer/checkbox": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.3.1.tgz", - "integrity": "sha512-3l3aC6gYOPGaVOa9cNe4dZ8t96e3CFifC3Hee1MD+F7qaRxGAuXnhCQiUr4ngj2P7xd9U3DCDbLXNsLKQoHYCg==", - "dependencies": { - "@inquirer/core": "^2.1.0", - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "figures": "^3.2.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/checkbox/node_modules/@inquirer/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", - "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", - "dependencies": { - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.8.0", - "cli-width": "^4.0.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/confirm": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-1.0.11.tgz", - "integrity": "sha512-UWYJ+0dN9rWw0czTPqqKRGLqHsLML9rrQlScn5oOVUtiL2WDTxs95JehP2axKsNkSBMxmFAdA7TdctJkZFJcxA==", - "dependencies": { - "@inquirer/core": "^1.3.0", - "@inquirer/type": "^1.0.5", - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-1.3.0.tgz", - "integrity": "sha512-W7EA48gIMahFLiGW/zF+rgoineqTDK5IQizsOmwvbFfYgiQ8Asetut94THBmB3KnW0nrZL5UPHUK6QzcjEzaCw==", - "dependencies": { - "@inquirer/type": "^1.0.5", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.8.0", - "cli-width": "^4.0.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/editor": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.2.0.tgz", - "integrity": "sha512-NMXLLNadvqIR6TD6mNZRa/PKHTvdaa4ndGGeXl+DwybQ4K7cVSJNRrztixpM1KDEoG8Ape5ightNwq25cyugTg==", - "dependencies": { - "@inquirer/core": "^2.1.0", - "@inquirer/type": "^1.1.0", - "chalk": "^4.1.2", - "external-editor": "^3.0.3" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/editor/node_modules/@inquirer/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", - "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", - "dependencies": { - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.8.0", - "cli-width": "^4.0.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/expand": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.1.1.tgz", - "integrity": "sha512-fXk5NG2FOAiluDWPYfXHuof3sklL/HhZh3NnXfnBZ2IhTCRzXvlXRcQcPlev2sGcZknHn0g6JdKlxjSa+7H2nQ==", - "dependencies": { - "@inquirer/core": "^2.1.0", - "@inquirer/type": "^1.1.0", - "chalk": "^4.1.2", - "figures": "^3.2.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/expand/node_modules/@inquirer/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", - "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", - "dependencies": { - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.8.0", - "cli-width": "^4.0.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/input": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.1.tgz", - "integrity": "sha512-OYwG3dEo1+lMAE6rYB8b1HTg8eSP++jk0pHSjKZu00gTlN5IHW/dliB82nsWe9Bn//93E9LJ1KrhjFMqOzkCFw==", - "dependencies": { - "@inquirer/core": "^2.1.0", - "@inquirer/type": "^1.1.0", - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/input/node_modules/@inquirer/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", - "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", - "dependencies": { - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.8.0", - "cli-width": "^4.0.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/password": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.1.tgz", - "integrity": "sha512-3M03aA04hOA4lRjLviB9uGoNmmd1YDNo4CYSFM9Uh4qlXdgvhke3xPU07k3kVstRIo0Te1hF14RL7vEgHJQ8tA==", - "dependencies": { - "@inquirer/input": "^1.2.1", - "@inquirer/type": "^1.1.0", - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/prompts": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-1.2.3.tgz", - "integrity": "sha512-vcPUWXA/boMJc5IDVx/9+ihf1FupsBK1RThnEXnLTpF6hR1iJCoaBoSpREZRdDp/XcPHe/b+QovehBYJoWsUhg==", - "dependencies": { - "@inquirer/checkbox": "^1.2.8", - "@inquirer/confirm": "^1.0.11", - "@inquirer/core": "^1.3.0", - "@inquirer/editor": "^1.0.11", - "@inquirer/expand": "^1.0.11", - "@inquirer/input": "^1.1.2", - "@inquirer/password": "^1.0.11", - "@inquirer/rawlist": "^1.1.3", - "@inquirer/select": "^1.1.7" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/rawlist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.2.1.tgz", - "integrity": "sha512-t8lMbE3Gqook4PvQYQl9eVJrl/mBy5kCgolwY9El8HLyGZ7Wc3SGIqHnQUlha4qms8HPOdUIBzyPfcAXl5+3SQ==", - "dependencies": { - "@inquirer/core": "^2.1.0", - "@inquirer/type": "^1.1.0", - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/rawlist/node_modules/@inquirer/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", - "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", - "dependencies": { - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.8.0", - "cli-width": "^4.0.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/select": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.2.1.tgz", - "integrity": "sha512-13JDLtlwFoqQUYRdMzz5wP3a4DWccJfNA/8M8MDUhhZ8HeKZ3MPaTMlpxwY+Q0Jgbmt56nf7xUuck0XXPce8Xw==", - "dependencies": { - "@inquirer/core": "^2.1.0", - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "figures": "^3.2.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/select/node_modules/@inquirer/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-2.1.0.tgz", - "integrity": "sha512-Hq9hZ5G/VUaeWkSs283HZwwMbe79lcOI5HWwW1GIM1ohouy2/x489Qf/A1BJYvMUj+QG4LSB5LtVMjn9P3Ge6Q==", - "dependencies": { - "@inquirer/type": "^1.1.0", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "cli-spinners": "^2.8.0", - "cli-width": "^4.0.0", - "figures": "^3.2.0", - "mute-stream": "^1.0.0", - "run-async": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/@inquirer/type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.1.0.tgz", - "integrity": "sha512-XMaorygt2o/mXinZg/OOz6d3JKuV3o4jRc/3KDiVPeKLLkjiO4iJErbLKtKn+Od2ZC2lbiFQkrIuloVpEubisA==", - "engines": { - "node": ">=14.18.0" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1386,20 +1101,6 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1539,11 +1240,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -1578,25 +1274,6 @@ "node": ">=0.10" } }, - "node_modules/cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", - "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", - "engines": { - "node": ">= 12" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2195,14 +1872,6 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2231,30 +1900,6 @@ "node": ">=0.10.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -2298,20 +1943,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3881,14 +3512,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/nlcst-to-string": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-3.1.1.tgz", @@ -3909,14 +3532,6 @@ "node": ">=0.10.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parse-latin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-5.0.1.tgz", @@ -4407,14 +4022,6 @@ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4698,17 +4305,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4751,17 +4347,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", @@ -5023,19 +4608,6 @@ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.4.0.tgz", "integrity": "sha512-i3KR1mQMNwY2wx20ozq2EjISGtQWDIfV56We+yGJ5yDs8jTwQiLLaqHlkBHITlCuJnYlVRmXegxFxZg7gqI++A==" }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", diff --git a/package.json b/package.json index e16c92f8..614bb761 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ }, "dependencies": { "@floating-ui/dom": "^1.4.0", - "@inquirer/prompts": "^1.0.3", "@napi-rs/simple-git": "^0.1.8", "chalk": "^4.1.2", "cli-spinner": "^0.2.10", diff --git a/quartz.config.ts b/quartz.config.ts index 0f2ca8da..f58bc32e 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -5,7 +5,7 @@ import * as Plugin from "./quartz/plugins" const sharedPageComponents = { head: Component.Head(), header: [ - Component.PageTitle({ title: "๐Ÿชด Quartz 4.0" }), + Component.PageTitle(), Component.Spacer(), Component.Search(), Component.Darkmode() @@ -43,7 +43,10 @@ const listPageLayout: PageLayout = { const config: QuartzConfig = { configuration: { + pageTitle: "๐Ÿชด Quartz 4.0", enableSPA: true, + enablePopovers: true, + canonicalUrl: "quartz.jzhao.xyz", ignorePatterns: ["private", "templates"], theme: { typography: { // loaded from Google Fonts @@ -90,7 +93,7 @@ const config: QuartzConfig = { Plugin.Description(), ], filters: [ - Plugin.RemoveDrafts() + Plugin.RemoveDrafts(), ], emitters: [ Plugin.AliasRedirects(), @@ -109,8 +112,10 @@ const config: QuartzConfig = { ...listPageLayout, pageBody: Component.FolderContent(), }), - Plugin.ContentIndex(), // you can exclude this if you don't plan on using popovers, graph view, or backlinks - Plugin.CNAME({ domain: "quartz.jzhao.xyz" }) // set this to your final deployed domain + Plugin.ContentIndex({ + enableSiteMap: true, + enableRSS: true, + }), ] }, } diff --git a/quartz/cfg.ts b/quartz/cfg.ts index bb097c95..1c9ece8f 100644 --- a/quartz/cfg.ts +++ b/quartz/cfg.ts @@ -3,12 +3,17 @@ import { PluginTypes } from "./plugins/types" import { Theme } from "./theme" export interface GlobalConfiguration { + pageTitle: string, /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ enableSPA: boolean, /** Whether to display Wikipedia-style popovers when hovering over links */ enablePopovers: boolean, /** Glob patterns to not search */ ignorePatterns: string[], + /** Base URL to use for CNAME files, sitemaps, and RSS feeds that require an absolute URL. + * Quartz will avoid using this as much as possible and use relative URLs most of the time + */ + canonicalUrl?: string, theme: Theme } diff --git a/quartz/components/PageTitle.tsx b/quartz/components/PageTitle.tsx index e8377ee0..15cd4e47 100644 --- a/quartz/components/PageTitle.tsx +++ b/quartz/components/PageTitle.tsx @@ -1,22 +1,17 @@ import { resolveToRoot } from "../path" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" -interface Options { - title: string +function PageTitle({ fileData, cfg }: QuartzComponentProps) { + const title = cfg?.pageTitle ?? "Untitled Quartz" + const slug = fileData.slug! + const baseDir = resolveToRoot(slug) + return

{title}

} -export default ((opts?: Options) => { - const title = opts?.title ?? "Untitled Quartz" - function PageTitle({ fileData }: QuartzComponentProps) { - const slug = fileData.slug! - const baseDir = resolveToRoot(slug) - return

{title}

- } - PageTitle.css = ` - .page-title { - margin: 0; - } - ` +PageTitle.css = ` +.page-title { + margin: 0; +} +` - return PageTitle -}) satisfies QuartzComponentConstructor +export default (() => PageTitle) satisfies QuartzComponentConstructor diff --git a/quartz/path.ts b/quartz/path.ts index 18d74d73..4755687e 100644 --- a/quartz/path.ts +++ b/quartz/path.ts @@ -27,6 +27,9 @@ export function slugify(s: string): string { // resolve /a/b/c to ../../ export function resolveToRoot(slug: string): string { let fp = trimPathSuffix(slug) + if (fp.endsWith("index")) { + fp = fp.slice(0, -"index".length) + } if (fp === "") { return "." diff --git a/quartz/plugins/emitters/cname.ts b/quartz/plugins/emitters/cname.ts deleted file mode 100644 index c783dfb6..00000000 --- a/quartz/plugins/emitters/cname.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { QuartzEmitterPlugin } from "../types" - -interface Options { - domain: string -} - -export const CNAME: QuartzEmitterPlugin = (opts?: Options) => ({ - name: "CNAME", - getQuartzComponents() { - return [] - }, - async emit(_contentFolder, _cfg, _content, _resources, emit): Promise { - const slug = "CNAME" - - if (opts?.domain) { - await emit({ - content: opts?.domain, - slug, - ext: "", - }) - } - - return ["CNAME"] - } -}) diff --git a/quartz/plugins/emitters/contentIndex.ts b/quartz/plugins/emitters/contentIndex.ts index cd7c9245..f75334a4 100644 --- a/quartz/plugins/emitters/contentIndex.ts +++ b/quartz/plugins/emitters/contentIndex.ts @@ -1,37 +1,120 @@ +import { GlobalConfiguration } from "../../cfg" import { QuartzEmitterPlugin } from "../types" import path from "path" export type ContentIndex = Map export type ContentDetails = { title: string, - links?: string[], - tags?: string[], + links: string[], + tags: string[], content: string, + date?: Date, + description?: string, } -export const ContentIndex: QuartzEmitterPlugin = () => { +interface Options { + enableSiteMap: boolean + enableRSS: boolean +} + +const defaultOptions: Options = { + enableSiteMap: true, + enableRSS: true, +} + +function generateSiteMap(cfg: GlobalConfiguration, idx: ContentIndex): string { + const base = cfg.canonicalUrl ?? "" + const createURLEntry = (slug: string, content: ContentDetails): string => ` + https://${base}/${slug} + ${content.date?.toISOString()} + ` + const urls = Array.from(idx).map(([slug, content]) => createURLEntry(slug, content)).join("") + return `${urls}` +} + +function generateRSSFeed(cfg: GlobalConfiguration, idx: ContentIndex): string { + const base = cfg.canonicalUrl ?? "" + const root = `https://${base}` + + // TODO: ogimage + const createURLEntry = (slug: string, content: ContentDetails): string => ` + ${content.title} + ${root}/${slug} + ${root}/${slug} + ${content.description} + ${content.date?.toUTCString()} + ` + + const items = Array.from(idx).map(([slug, content]) => createURLEntry(slug, content)).join("") + return ` + + ${cfg.pageTitle} + ${root} + Recent content on ${cfg.pageTitle} + Quartz -- quartz.jzhao.xyz + + + ${items} + ` +} + +export const ContentIndex: QuartzEmitterPlugin = (opts) => { + opts = { ...defaultOptions, ...opts } return { name: "ContentIndex", - async emit(_contentDir, _cfg, content, _resources, emit) { - const fp = path.join("static", "contentIndex") + async emit(_contentDir, cfg, content, _resources, emit) { + const emitted: string[] = [] const linkIndex: ContentIndex = new Map() for (const [_tree, file] of content) { - let slug = file.data.slug! + const slug = file.data.slug! + const date = file.data.dates?.modified ?? new Date() linkIndex.set(slug, { title: file.data.frontmatter?.title!, links: file.data.links ?? [], - tags: file.data.frontmatter?.tags, - content: file.data.text ?? "" + tags: file.data.frontmatter?.tags ?? [], + content: file.data.text ?? "", + date: date, + description: file.data.description ?? "" }) } + if (opts?.enableSiteMap) { + await emit({ + content: generateSiteMap(cfg, linkIndex), + slug: "sitemap", + ext: ".xml" + }) + emitted.push("sitemap.xml") + } + + if (opts?.enableRSS) { + await emit({ + content: generateRSSFeed(cfg, linkIndex), + slug: "index", + ext: ".xml" + }) + emitted.push("index.xml") + } + + const fp = path.join("static", "contentIndex") + const simplifiedIndex = Object.fromEntries( + Array.from(linkIndex).map(([slug, content]) => { + // remove description and from content index as nothing downstream + // actually uses it. we only keep it in the index as we need it + // for the RSS feed + delete content.description + delete content.date + return [slug, content] + }) + ) await emit({ - content: JSON.stringify(Object.fromEntries(linkIndex)), + content: JSON.stringify(simplifiedIndex), slug: fp, ext: ".json", }) + emitted.push(`${fp}.json`) - return [`${fp}.json`] + return emitted }, getQuartzComponents: () => [], } diff --git a/quartz/plugins/emitters/index.ts b/quartz/plugins/emitters/index.ts index ff684d52..435771d2 100644 --- a/quartz/plugins/emitters/index.ts +++ b/quartz/plugins/emitters/index.ts @@ -3,4 +3,3 @@ export { TagPage } from './tagPage' export { FolderPage } from './folderPage' export { ContentIndex } from './contentIndex' export { AliasRedirects } from './aliases' -export { CNAME } from './cname' diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index ae4593f1..88158113 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -50,6 +50,11 @@ export function emitComponentResources(cfg: GlobalConfiguration, resources: Stat componentResources.afterDOMLoaded.push(afterDOMLoaded) } } + + if (cfg.enablePopovers) { + componentResources.afterDOMLoaded.push(popoverScript) + componentResources.css.push(popoverStyle) + } if (cfg.enableSPA) { componentResources.afterDOMLoaded.push(spaRouterScript) @@ -61,11 +66,6 @@ export function emitComponentResources(cfg: GlobalConfiguration, resources: Stat ) } - if (cfg.enablePopovers) { - componentResources.afterDOMLoaded.push(popoverScript) - componentResources.css.push(popoverStyle) - } - emit({ slug: "index", ext: ".css", diff --git a/quartz/plugins/transformers/description.ts b/quartz/plugins/transformers/description.ts index 0e41c5bc..cc207697 100644 --- a/quartz/plugins/transformers/description.ts +++ b/quartz/plugins/transformers/description.ts @@ -10,6 +10,10 @@ const defaultOptions: Options = { descriptionLength: 150 } +const escapeHTML = (unsafe: string) => { + return unsafe.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", '''); +} + export const Description: QuartzTransformerPlugin | undefined> = (userOpts) => { const opts = { ...defaultOptions, ...userOpts } return { @@ -19,7 +23,7 @@ export const Description: QuartzTransformerPlugin | undefined> () => { return async (tree: HTMLRoot, file) => { const frontMatterDescription = file.data.frontmatter?.description - const text = toString(tree) + const text = escapeHTML(toString(tree)) const desc = frontMatterDescription ?? text const sentences = desc.replace(/\s+/g, ' ').split('.') From 83c5fa64eaaa03fe7374715f78a9d7c1dde4e972 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Sun, 2 Jul 2023 13:08:29 -0700 Subject: [PATCH 035/197] various polish --- quartz.config.ts | 36 ++++---- quartz/bootstrap-cli.mjs | 2 +- quartz/cfg.ts | 11 +++ quartz/components/ArticleTitle.tsx | 5 +- quartz/components/Footer.tsx | 2 +- quartz/components/Head.tsx | 19 +--- quartz/components/Header.tsx | 1 + quartz/components/PageList.tsx | 5 +- quartz/components/TagList.tsx | 23 ++--- quartz/components/pages/Content.tsx | 4 +- quartz/components/renderPage.tsx | 43 +++++++--- quartz/components/scripts/darkmode.inline.ts | 5 +- quartz/components/scripts/graph.inline.ts | 17 ++-- quartz/components/scripts/plausible.inline.ts | 3 + quartz/components/scripts/popover.inline.ts | 32 +++++-- quartz/components/styles/backlinks.scss | 6 +- quartz/components/styles/footer.scss | 2 + quartz/components/styles/graph.scss | 5 +- quartz/components/styles/listPage.scss | 33 ++++--- quartz/components/styles/popover.scss | 2 +- quartz/components/styles/search.scss | 3 +- quartz/components/types.ts | 2 +- quartz/path.ts | 13 ++- quartz/plugins/emitters/contentIndex.ts | 1 - quartz/plugins/index.ts | 72 ++++++---------- quartz/plugins/transformers/gfm.ts | 5 +- quartz/plugins/transformers/links.ts | 5 +- quartz/processors/emit.ts | 78 ++++++++++++++++- quartz/resources.tsx | 8 +- quartz/styles/base.scss | 86 +++++++++++++------ 30 files changed, 339 insertions(+), 190 deletions(-) create mode 100644 quartz/components/scripts/plausible.inline.ts diff --git a/quartz.config.ts b/quartz.config.ts index f58bc32e..58c1d9cd 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -4,12 +4,7 @@ import * as Plugin from "./quartz/plugins" const sharedPageComponents = { head: Component.Head(), - header: [ - Component.PageTitle(), - Component.Spacer(), - Component.Search(), - Component.Darkmode() - ], + header: [], footer: Component.Footer({ authorName: "Jacky", links: { @@ -25,11 +20,15 @@ const contentPageLayout: PageLayout = { Component.ReadingTime(), Component.TagList(), ], - left: [], + left: [ + Component.PageTitle(), + Component.Search(), + Component.TableOfContents(), + Component.Darkmode() + ], right: [ Component.Graph(), - Component.TableOfContents(), - Component.Backlinks() + Component.Backlinks(), ], } @@ -37,7 +36,11 @@ const listPageLayout: PageLayout = { beforeBody: [ Component.ArticleTitle() ], - left: [], + left: [ + Component.PageTitle(), + Component.Search(), + Component.Darkmode() + ], right: [], } @@ -46,6 +49,9 @@ const config: QuartzConfig = { pageTitle: "๐Ÿชด Quartz 4.0", enableSPA: true, enablePopovers: true, + analytics: { + provider: 'plausible', + }, canonicalUrl: "quartz.jzhao.xyz", ignorePatterns: ["private", "templates"], theme: { @@ -102,16 +108,16 @@ const config: QuartzConfig = { ...contentPageLayout, pageBody: Component.Content(), }), - Plugin.TagPage({ - ...sharedPageComponents, - ...listPageLayout, - pageBody: Component.TagContent(), - }), Plugin.FolderPage({ ...sharedPageComponents, ...listPageLayout, pageBody: Component.FolderContent(), }), + Plugin.TagPage({ + ...sharedPageComponents, + ...listPageLayout, + pageBody: Component.TagContent(), + }), Plugin.ContentIndex({ enableSiteMap: true, enableRSS: true, diff --git a/quartz/bootstrap-cli.mjs b/quartz/bootstrap-cli.mjs index 2824f8e9..3f71b177 100755 --- a/quartz/bootstrap-cli.mjs +++ b/quartz/bootstrap-cli.mjs @@ -64,7 +64,7 @@ yargs(hideBin(process.argv)) packages: "external", plugins: [ sassPlugin({ - type: 'css-text' + type: 'css-text', }), { name: 'inline-script-loader', diff --git a/quartz/cfg.ts b/quartz/cfg.ts index 1c9ece8f..49698ab5 100644 --- a/quartz/cfg.ts +++ b/quartz/cfg.ts @@ -2,12 +2,23 @@ import { QuartzComponent } from "./components/types" import { PluginTypes } from "./plugins/types" import { Theme } from "./theme" +export type Analytics = null + | { + provider: 'plausible' + } + | { + provider: 'google', + tagId: string + } + export interface GlobalConfiguration { pageTitle: string, /** Whether to enable single-page-app style rendering. this prevents flashes of unstyled content and improves smoothness of Quartz */ enableSPA: boolean, /** Whether to display Wikipedia-style popovers when hovering over links */ enablePopovers: boolean, + /** Analytics mode */ + analytics: Analytics /** Glob patterns to not search */ ignorePatterns: string[], /** Base URL to use for CNAME files, sitemaps, and RSS feeds that require an absolute URL. diff --git a/quartz/components/ArticleTitle.tsx b/quartz/components/ArticleTitle.tsx index c25769e2..b8d58c6b 100644 --- a/quartz/components/ArticleTitle.tsx +++ b/quartz/components/ArticleTitle.tsx @@ -2,9 +2,8 @@ import { QuartzComponentConstructor, QuartzComponentProps } from "./types" function ArticleTitle({ fileData }: QuartzComponentProps) { const title = fileData.frontmatter?.title - const displayTitle = fileData.slug === "index" ? undefined : title - if (displayTitle) { - return

{displayTitle}

+ if (title) { + return

{title}

} else { return null } diff --git a/quartz/components/Footer.tsx b/quartz/components/Footer.tsx index 4229f9d2..5fc6d64c 100644 --- a/quartz/components/Footer.tsx +++ b/quartz/components/Footer.tsx @@ -14,7 +14,7 @@ export default ((opts?: Options) => { return <>
-

Made by {name} using Quartz, ยฉ {year}

+

Made by {name} using Quartz, ยฉ {year}

    {Object.entries(links).map(([text, link]) =>
  • {text}
  • )}
diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index a0b62b7a..f8439a05 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -2,15 +2,7 @@ import { resolveToRoot } from "../path" import { JSResourceToScriptElement } from "../resources" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" -interface Options { - prefetchContentIndex: boolean -} - -const defaultOptions: Options = { - prefetchContentIndex: true -} - -export default ((opts?: Options) => { +export default (() => { function Head({ fileData, externalResources }: QuartzComponentProps) { const slug = fileData.slug! const title = fileData.frontmatter?.title ?? "Untitled" @@ -20,10 +12,6 @@ export default ((opts?: Options) => { const iconPath = baseDir + "/static/icon.png" const ogImagePath = baseDir + "/static/og-image.png" - const prefetchContentIndex = opts?.prefetchContentIndex ?? defaultOptions.prefetchContentIndex - const contentIndexPath = baseDir + "/static/contentIndex.json" - const contentIndexScript = `const fetchData = fetch(\`${contentIndexPath}\`).then(data => data.json())` - return {title} @@ -36,9 +24,8 @@ export default ((opts?: Options) => { - - - {prefetchContentIndex && } + + {css.map(href => )} {js.filter(resource => resource.loadTime === "beforeDOMReady").map(res => JSResourceToScriptElement(res, true))} diff --git a/quartz/components/Header.tsx b/quartz/components/Header.tsx index 06ae88bb..0f13ca26 100644 --- a/quartz/components/Header.tsx +++ b/quartz/components/Header.tsx @@ -12,6 +12,7 @@ header { flex-direction: row; align-items: center; margin: 2em 0; + gap: 1.5rem; } header h1 { diff --git a/quartz/components/PageList.tsx b/quartz/components/PageList.tsx index e5d8dfb2..3c39bee9 100644 --- a/quartz/components/PageList.tsx +++ b/quartz/components/PageList.tsx @@ -23,7 +23,7 @@ function byDateAndAlphabetical(f1: QuartzPluginData, f2: QuartzPluginData): numb export function PageList({ fileData, allFiles }: QuartzComponentProps) { const slug = fileData.slug! - return
    + return
      {allFiles.sort(byDateAndAlphabetical).map(page => { const title = page.frontmatter?.title const pageSlug = page.slug! @@ -36,9 +36,8 @@ export function PageList({ fileData, allFiles }: QuartzComponentProps) { -
diff --git a/quartz/components/TagList.tsx b/quartz/components/TagList.tsx index 65286a5a..366889b4 100644 --- a/quartz/components/TagList.tsx +++ b/quartz/components/TagList.tsx @@ -11,7 +11,7 @@ function TagList({ fileData }: QuartzComponentProps) { const display = `#${tag}` const linkDest = baseDir + `/tags/${slugAnchor(tag)}` return
  • - {display} + {display}
  • })} } else { @@ -25,17 +25,18 @@ TagList.css = ` display: flex; padding-left: 0; gap: 0.4rem; +} + +.tags > li { + display: inline-block; + margin: 0; + overflow-wrap: normal; +} - & > li { - display: inline-block; - margin: 0; - - & > a { - border-radius: 8px; - border: var(--lightgray) 1px solid; - padding: 0.2rem 0.5rem; - } - } +.tags > li > a { + border-radius: 8px; + background-color: var(--highlight); + padding: 0.2rem 0.5rem; } ` diff --git a/quartz/components/pages/Content.tsx b/quartz/components/pages/Content.tsx index 7856d6ea..d233845a 100644 --- a/quartz/components/pages/Content.tsx +++ b/quartz/components/pages/Content.tsx @@ -5,7 +5,7 @@ import { toJsxRuntime } from "hast-util-to-jsx-runtime" function Content({ tree }: QuartzComponentProps) { // @ts-ignore (preact makes it angry) const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' }) - return
    {content}
    + return
    {content}
    } -export default (() => Content) satisfies QuartzComponentConstructor \ No newline at end of file +export default (() => Content) satisfies QuartzComponentConstructor diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx index 0e0f4c0c..c70f0925 100644 --- a/quartz/components/renderPage.tsx +++ b/quartz/components/renderPage.tsx @@ -17,10 +17,15 @@ interface RenderComponents { export function pageResources(slug: string, staticResources: StaticResources): StaticResources { const baseDir = resolveToRoot(slug) + + const contentIndexPath = baseDir + "/static/contentIndex.json" + const contentIndexScript = `const fetchData = fetch(\`${contentIndexPath}\`).then(data => data.json())` + return { css: [baseDir + "/index.css", ...staticResources.css], js: [ { src: baseDir + "/prescript.js", loadTime: "beforeDOMReady", contentType: "external" }, + { loadTime: "afterDOMReady", contentType: "inline", spaPreserve: true, script: contentIndexScript }, ...staticResources.js, { src: baseDir + "/postscript.js", loadTime: "afterDOMReady", moduleType: 'module', contentType: "external" } ] @@ -32,28 +37,40 @@ export function renderPage(slug: string, componentData: QuartzComponentProps, co const Header = HeaderConstructor() const Body = BodyConstructor() + const LeftComponent = +
    +
    + {left.map(BodyComponent => )} +
    +
    + + const RightComponent = +
    +
    + {right.map(BodyComponent => )} +
    +
    + const doc =
    -
    - {header.map(HeaderComponent => )} -
    -
    - {beforeBody.map(BodyComponent => )} + -
    - {left.map(BodyComponent => )} -
    -
    + {LeftComponent} +
    +
    -
    - {right.map(BodyComponent => )} -
    + {RightComponent} -
    {pageResources.js.filter(resource => resource.loadTime === "afterDOMReady").map(res => JSResourceToScriptElement(res))} diff --git a/quartz/components/scripts/darkmode.inline.ts b/quartz/components/scripts/darkmode.inline.ts index f00a8733..594bd3a9 100644 --- a/quartz/components/scripts/darkmode.inline.ts +++ b/quartz/components/scripts/darkmode.inline.ts @@ -2,7 +2,7 @@ const userPref = window.matchMedia('(prefers-color-scheme: light)').matches ? 'l const currentTheme = localStorage.getItem('theme') ?? userPref document.documentElement.setAttribute('saved-theme', currentTheme) -window.addEventListener('DOMContentLoaded', () => { +document.addEventListener("nav", () => { const switchTheme = (e: any) => { if (e.target.checked) { document.documentElement.setAttribute('saved-theme', 'dark') @@ -16,7 +16,8 @@ window.addEventListener('DOMContentLoaded', () => { // Darkmode toggle const toggleSwitch = document.querySelector('#darkmode-toggle') as HTMLInputElement - toggleSwitch.addEventListener('change', switchTheme, false) + toggleSwitch.removeEventListener('change', switchTheme) + toggleSwitch.addEventListener('change', switchTheme) if (currentTheme === 'dark') { toggleSwitch.checked = true } diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts index 27e9a817..169b8c45 100644 --- a/quartz/components/scripts/graph.inline.ts +++ b/quartz/components/scripts/graph.inline.ts @@ -266,9 +266,9 @@ async function renderGraph(container: string, slug: string) { }) } -function renderGlobalGraph() { +async function renderGlobalGraph() { const slug = document.body.dataset["slug"]! - renderGraph("global-graph-container", slug) + await renderGraph("global-graph-container", slug) const container = document.getElementById("global-graph-outer") container?.classList.add("active") @@ -293,7 +293,14 @@ document.addEventListener("nav", async (e: unknown) => { containerIcon?.addEventListener("click", renderGlobalGraph) }) -window.addEventListener('resize', async () => { - const slug = document.body.dataset["slug"]! - await renderGraph("graph-container", slug) +let resizeEventDebounce: number | undefined = undefined +window.addEventListener('resize', () => { + if (resizeEventDebounce) { + clearTimeout(resizeEventDebounce) + } + + resizeEventDebounce = window.setTimeout(async () => { + const slug = document.body.dataset["slug"]! + await renderGraph("graph-container", slug) + }, 50) }) diff --git a/quartz/components/scripts/plausible.inline.ts b/quartz/components/scripts/plausible.inline.ts new file mode 100644 index 00000000..60817c29 --- /dev/null +++ b/quartz/components/scripts/plausible.inline.ts @@ -0,0 +1,3 @@ +import Plausible from 'plausible-tracker' +const { trackPageview } = Plausible() +document.addEventListener("nav", () => trackPageview()) diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts index 655831db..b3889955 100644 --- a/quartz/components/scripts/popover.inline.ts +++ b/quartz/components/scripts/popover.inline.ts @@ -1,5 +1,24 @@ import { computePosition, flip, inline, shift } from "@floating-ui/dom" +// from micromorph/src/utils.ts +// https://github.com/natemoo-re/micromorph/blob/main/src/utils.ts#L5 +export function normalizeRelativeURLs( + el: Element | Document, + base: string | URL +) { + const update = (el: Element, attr: string, base: string | URL) => { + el.setAttribute(attr, new URL(el.getAttribute(attr)!, base).pathname) + } + + el.querySelectorAll('[href^="./"], [href^="../"]').forEach((item) => + update(item, 'href', base) + ) + + el.querySelectorAll('[src^="./"], [src^="../"]').forEach((item) => + update(item, 'src', base) + ) +} + document.addEventListener("nav", () => { const links = [...document.getElementsByClassName("internal")] as HTMLLinkElement[] const p = new DOMParser() @@ -41,6 +60,7 @@ document.addEventListener("nav", () => { if (!contents) return const html = p.parseFromString(contents, "text/html") + normalizeRelativeURLs(html, targetUrl) const elts = [...html.getElementsByClassName("popover-hint")] if (elts.length === 0) return @@ -54,11 +74,13 @@ document.addEventListener("nav", () => { setPosition(popoverElement) link.appendChild(popoverElement) link.dataset.fetchedPopover = "true" - - const heading = popoverInner.querySelector(hash) as HTMLElement | null - if (heading) { - // leave ~12px of buffer when scrolling to a heading - popoverInner.scroll({ top: heading.offsetTop - 12, behavior: 'instant' }) + + if (hash !== "") { + const heading = popoverInner.querySelector(hash) as HTMLElement | null + if (heading) { + // leave ~12px of buffer when scrolling to a heading + popoverInner.scroll({ top: heading.offsetTop - 12, behavior: 'instant' }) + } } }) } diff --git a/quartz/components/styles/backlinks.scss b/quartz/components/styles/backlinks.scss index 3344a7b5..80baefc0 100644 --- a/quartz/components/styles/backlinks.scss +++ b/quartz/components/styles/backlinks.scss @@ -7,13 +7,9 @@ & > ul { list-style: none; padding: 0; - margin: 0; + margin: 0.5rem 0; & > li { - margin: 0.5rem 0; - padding: 0.25rem 1rem; - border: var(--lightgray) 1px solid; - border-radius: 5px; & > a { background-color: transparent; } diff --git a/quartz/components/styles/footer.scss b/quartz/components/styles/footer.scss index d104e508..16df545d 100644 --- a/quartz/components/styles/footer.scss +++ b/quartz/components/styles/footer.scss @@ -1,6 +1,8 @@ footer { text-align: left; opacity: 0.8; + margin-bottom: 4rem; + & ul { list-style: none; margin: 0; diff --git a/quartz/components/styles/graph.scss b/quartz/components/styles/graph.scss index 244f2e4e..4533a845 100644 --- a/quartz/components/styles/graph.scss +++ b/quartz/components/styles/graph.scss @@ -11,6 +11,7 @@ height: 250px; margin: 0.5em 0; position: relative; + overflow: hidden; & > #global-graph-icon { color: var(--dark); @@ -30,10 +31,6 @@ background-color: var(--lightgray); } } - - & > #graph-container > svg { - margin-bottom: -5px; - } } & > #global-graph-outer { diff --git a/quartz/components/styles/listPage.scss b/quartz/components/styles/listPage.scss index a5d0a915..18238150 100644 --- a/quartz/components/styles/listPage.scss +++ b/quartz/components/styles/listPage.scss @@ -8,29 +8,36 @@ li.section-li { margin-bottom: 1em; & > .section { - display: flex; - align-items: center; + display: grid; + grid-template-columns: 6em 3fr 1fr; @media all and (max-width: 600px) { - & .tags { + & > .tags { display: none; } } - & h3 > a { - font-weight: 700; - margin: 0; - background-color: transparent; + & > .tags { + justify-self: end; + margin-left: 1rem; } - & p { + & > .desc a { + background-color: transparent; + } + + & > .meta { margin: 0; - padding-right: 1em; flex-basis: 6em; + opacity: 0.6; } } - - & .meta { - opacity: 0.6; - } +} + +// modifications in popover context +.popover .section { + grid-template-columns: 6em 1fr !important; + & > .tags { + display: none; + } } diff --git a/quartz/components/styles/popover.scss b/quartz/components/styles/popover.scss index 5ae09fe4..80bdfad4 100644 --- a/quartz/components/styles/popover.scss +++ b/quartz/components/styles/popover.scss @@ -24,7 +24,7 @@ height: 20rem; padding: 0 1rem 1rem 1rem; font-weight: initial; - line-height: initial; + line-height: normal; font-size: initial; font-family: var(--bodyFont); border: 1px solid var(--gray); diff --git a/quartz/components/styles/search.scss b/quartz/components/styles/search.scss index 32d57443..cbf982a6 100644 --- a/quartz/components/styles/search.scss +++ b/quartz/components/styles/search.scss @@ -1,8 +1,7 @@ .search { min-width: 5rem; - max-width: 12rem; + max-width: 14rem; flex-grow: 0.3; - margin: 0 1.5rem; & > #search-icon { background-color: var(--lightgray); diff --git a/quartz/components/types.ts b/quartz/components/types.ts index c7584b6f..d1c153dd 100644 --- a/quartz/components/types.ts +++ b/quartz/components/types.ts @@ -8,7 +8,7 @@ export type QuartzComponentProps = { externalResources: StaticResources fileData: QuartzPluginData cfg: GlobalConfiguration - children: QuartzComponent[] | JSX.Element[] + children: (QuartzComponent | JSX.Element)[] tree: Node allFiles: QuartzPluginData[] } diff --git a/quartz/path.ts b/quartz/path.ts index 4755687e..81cdb3a3 100644 --- a/quartz/path.ts +++ b/quartz/path.ts @@ -5,7 +5,17 @@ function slugSegment(s: string): string { return s.replace(/\s/g, '-') } +// on the client, 'index' isn't ever rendered so we should clean it up +export function clientSideSlug(fp: string): string { + if (fp.endsWith("index")) { + fp = fp.slice(0, -"index".length) + } + + return fp +} + export function trimPathSuffix(fp: string): string { + fp = clientSideSlug(fp) let [cleanPath, anchor] = fp.split("#", 2) anchor = anchor === undefined ? "" : "#" + anchor @@ -27,9 +37,6 @@ export function slugify(s: string): string { // resolve /a/b/c to ../../ export function resolveToRoot(slug: string): string { let fp = trimPathSuffix(slug) - if (fp.endsWith("index")) { - fp = fp.slice(0, -"index".length) - } if (fp === "") { return "." diff --git a/quartz/plugins/emitters/contentIndex.ts b/quartz/plugins/emitters/contentIndex.ts index f75334a4..cf427569 100644 --- a/quartz/plugins/emitters/contentIndex.ts +++ b/quartz/plugins/emitters/contentIndex.ts @@ -36,7 +36,6 @@ function generateRSSFeed(cfg: GlobalConfiguration, idx: ContentIndex): string { const base = cfg.canonicalUrl ?? "" const root = `https://${base}` - // TODO: ogimage const createURLEntry = (slug: string, content: ContentDetails): string => ` ${content.title} ${root}/${slug} diff --git a/quartz/plugins/index.ts b/quartz/plugins/index.ts index 88158113..c55e4dd7 100644 --- a/quartz/plugins/index.ts +++ b/quartz/plugins/index.ts @@ -1,29 +1,17 @@ import { GlobalConfiguration } from '../cfg' import { QuartzComponent } from '../components/types' import { StaticResources } from '../resources' -import { googleFontHref, joinStyles } from '../theme' +import { joinStyles } from '../theme' import { EmitCallback, PluginTypes } from './types' import styles from '../styles/base.scss' -// @ts-ignore -import spaRouterScript from '../components/scripts/spa.inline' -// @ts-ignore -import popoverScript from '../components/scripts/popover.inline' -import popoverStyle from '../components/styles/popover.scss' - export type ComponentResources = { css: string[], beforeDOMLoaded: string[], afterDOMLoaded: string[] } -function joinScripts(scripts: string[]): string { - // wrap with iife to prevent scope collision - return scripts.map(script => `(function () {${script}})();`).join("\n") -} - -export function emitComponentResources(cfg: GlobalConfiguration, resources: StaticResources, plugins: PluginTypes, emit: EmitCallback) { - const fps: string[] = [] +export function getComponentResources(plugins: PluginTypes): ComponentResources { const allComponents: Set = new Set() for (const emitter of plugins.emitters) { const components = emitter.getQuartzComponents() @@ -50,41 +38,35 @@ export function emitComponentResources(cfg: GlobalConfiguration, resources: Stat componentResources.afterDOMLoaded.push(afterDOMLoaded) } } - - if (cfg.enablePopovers) { - componentResources.afterDOMLoaded.push(popoverScript) - componentResources.css.push(popoverStyle) - } - if (cfg.enableSPA) { - componentResources.afterDOMLoaded.push(spaRouterScript) - } else { - componentResources.afterDOMLoaded.push(` - window.spaNavigate = (url, _) => window.location.assign(url) - const event = new CustomEvent("nav", { detail: { slug: document.body.dataset.slug } }) - document.dispatchEvent(event)` - ) - } + return componentResources +} - emit({ - slug: "index", - ext: ".css", - content: joinStyles(cfg.theme, styles, ...componentResources.css) - }) - emit({ - slug: "prescript", - ext: ".js", - content: joinScripts(componentResources.beforeDOMLoaded) - }) - emit({ - slug: "postscript", - ext: ".js", - content: joinScripts(componentResources.afterDOMLoaded) - }) +function joinScripts(scripts: string[]): string { + // wrap with iife to prevent scope collision + return scripts.map(script => `(function () {${script}})();`).join("\n") +} - fps.push("index.css", "prescript.js", "postscript.js") - resources.css.push(googleFontHref(cfg.theme)) +export async function emitComponentResources(cfg: GlobalConfiguration, res: ComponentResources, emit: EmitCallback): Promise { + const fps = await Promise.all([ + emit({ + slug: "index", + ext: ".css", + content: joinStyles(cfg.theme, styles, ...res.css) + }), + emit({ + slug: "prescript", + ext: ".js", + content: joinScripts(res.beforeDOMLoaded) + }), + emit({ + slug: "postscript", + ext: ".js", + content: joinScripts(res.afterDOMLoaded) + }) + ]) return fps + } export function getStaticResourcesFromPlugins(plugins: PluginTypes) { diff --git a/quartz/plugins/transformers/gfm.ts b/quartz/plugins/transformers/gfm.ts index 54f8ca67..f966e58b 100644 --- a/quartz/plugins/transformers/gfm.ts +++ b/quartz/plugins/transformers/gfm.ts @@ -1,4 +1,3 @@ -import { PluggableList } from "unified" import remarkGfm from "remark-gfm" import smartypants from 'remark-smartypants' import { QuartzTransformerPlugin } from "../types" @@ -20,14 +19,14 @@ export const GitHubFlavoredMarkdown: QuartzTransformerPlugin | return { name: "GitHubFlavoredMarkdown", markdownPlugins() { - return opts.enableSmartyPants ? [remarkGfm] : [remarkGfm, smartypants] + return opts.enableSmartyPants ? [remarkGfm, smartypants] : [remarkGfm] }, htmlPlugins() { if (opts.linkHeadings) { return [rehypeSlug, [rehypeAutolinkHeadings, { behavior: 'append', content: { type: 'text', - value: ' ยง' + value: ' ยง', } }]] } else { diff --git a/quartz/plugins/transformers/links.ts b/quartz/plugins/transformers/links.ts index 13914523..b8a800a7 100644 --- a/quartz/plugins/transformers/links.ts +++ b/quartz/plugins/transformers/links.ts @@ -1,5 +1,5 @@ import { QuartzTransformerPlugin } from "../types" -import { relativeToRoot, slugify, trimPathSuffix } from "../../path" +import { clientSideSlug, relativeToRoot, slugify, trimPathSuffix } from "../../path" import path from "path" import { visit } from 'unist-util-visit' import isAbsoluteUrl from "is-absolute-url" @@ -27,7 +27,7 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = htmlPlugins() { return [() => { return (tree, file) => { - const curSlug = file.data.slug! + const curSlug = clientSideSlug(file.data.slug!) const transformLink = (target: string) => { const targetSlug = slugify(decodeURI(target).trim()) if (opts.markdownLinkResolution === 'relative' && !path.isAbsolute(targetSlug)) { @@ -49,7 +49,6 @@ export const CrawlLinks: QuartzTransformerPlugin | undefined> = let dest = node.properties.href node.properties.className = isAbsoluteUrl(dest) ? "external" : "internal" - // don't process external links or intra-document anchors if (!(isAbsoluteUrl(dest) || dest.startsWith("#"))) { node.properties.href = transformLink(dest) diff --git a/quartz/processors/emit.ts b/quartz/processors/emit.ts index e1438fae..7150f5ec 100644 --- a/quartz/processors/emit.ts +++ b/quartz/processors/emit.ts @@ -1,13 +1,69 @@ import path from "path" import fs from "fs" -import { QuartzConfig } from "../cfg" +import { GlobalConfiguration, QuartzConfig } from "../cfg" import { PerfTimer } from "../perf" -import { emitComponentResources, getStaticResourcesFromPlugins } from "../plugins" +import { ComponentResources, emitComponentResources, getComponentResources, getStaticResourcesFromPlugins } from "../plugins" import { EmitCallback } from "../plugins/types" import { ProcessedContent } from "../plugins/vfile" import { QUARTZ, slugify } from "../path" import { globbyStream } from "globby" import chalk from "chalk" +import { googleFontHref } from '../theme' + +// @ts-ignore +import spaRouterScript from '../components/scripts/spa.inline' +// @ts-ignore +import plausibleScript from '../components/scripts/plausible.inline' +// @ts-ignore +import popoverScript from '../components/scripts/popover.inline' +import popoverStyle from '../components/styles/popover.scss' +import { StaticResources } from "../resources" + +function addGlobalPageResources(cfg: GlobalConfiguration, staticResources: StaticResources, componentResources: ComponentResources) { + // font and other resources + staticResources.css.push(googleFontHref(cfg.theme)) + + // popovers + if (cfg.enablePopovers) { + componentResources.afterDOMLoaded.push(popoverScript) + componentResources.css.push(popoverStyle) + } + + if (cfg.analytics?.provider === "google") { + const tagId = cfg.analytics.tagId + staticResources.js.push({ + src: `https://www.googletagmanager.com/gtag/js?id=${tagId}`, + contentType: 'external', + loadTime: 'afterDOMReady', + }) + componentResources.afterDOMLoaded.push(` + window.dataLayer = window.dataLayer || []; + function gtag() { dataLayer.push(arguments); } + gtag(\`js\`, new Date()); + gtag(\`config\`, \`${tagId}\`, { send_page_view: false }); + + document.addEventListener(\`nav\`, () => { + gtag(\`event\`, \`page_view\`, { + page_title: document.title, + page_location: location.href, + }); + });` + ) + } else if (cfg.analytics?.provider === "plausible") { + componentResources.afterDOMLoaded.push(plausibleScript) + } + + // spa + if (cfg.enableSPA) { + componentResources.afterDOMLoaded.push(spaRouterScript) + } else { + componentResources.afterDOMLoaded.push(` + window.spaNavigate = (url, _) => window.location.assign(url) + const event = new CustomEvent("nav", { detail: { slug: document.body.dataset.slug } }) + document.dispatchEvent(event)` + ) + } +} export async function emitContent(contentFolder: string, output: string, cfg: QuartzConfig, content: ProcessedContent[], verbose: boolean) { const perf = new PerfTimer() @@ -19,9 +75,25 @@ export async function emitContent(contentFolder: string, output: string, cfg: Qu return pathToPage } + // initialize from plugins const staticResources = getStaticResourcesFromPlugins(cfg.plugins) - emitComponentResources(cfg.configuration, staticResources, cfg.plugins, emit) + // component specific scripts and styles + const componentResources = getComponentResources(cfg.plugins) + // important that this goes *after* component scripts + // as the "nav" event gets triggered here and we should make sure + // that everyone else had the chance to register a listener for it + addGlobalPageResources(cfg.configuration, staticResources, componentResources) + + // emit in one go + const emittedResources = await emitComponentResources(cfg.configuration, componentResources, emit) + if (verbose) { + for (const file of emittedResources) { + console.log(`[emit:Resources] ${file}`) + } + } + + // emitter plugins let emittedFiles = 0 for (const emitter of cfg.plugins.emitters) { try { diff --git a/quartz/resources.tsx b/quartz/resources.tsx index 78ae10b6..37807518 100644 --- a/quartz/resources.tsx +++ b/quartz/resources.tsx @@ -3,7 +3,8 @@ import { JSX } from "preact/jsx-runtime" export type JSResource = { loadTime: 'beforeDOMReady' | 'afterDOMReady' - moduleType?: 'module' + moduleType?: 'module', + spaPreserve?: boolean } & ({ src: string contentType: 'external' @@ -14,11 +15,12 @@ export type JSResource = { export function JSResourceToScriptElement(resource: JSResource, preserve?: boolean): JSX.Element { const scriptType = resource.moduleType ?? 'application/javascript' + const spaPreserve = preserve ?? resource.spaPreserve if (resource.contentType === 'external') { - return + return } } diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index 45e6370c..db0299be 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -11,6 +11,9 @@ body { box-sizing: border-box; background-color: var(--light); font-family: var(--bodyFont); + --pageWidth: 800px; + --sidePanelWidth: 400px; + --topSpacing: 6rem; } .text-highlight { @@ -27,7 +30,7 @@ p, ul, text, a, tr, td, li, ol, ul, .katex { a { font-weight: 600; text-decoration: none; - transition: all 0.2s ease; + transition: color 0.2s ease; color: var(--secondary); &:hover { @@ -43,34 +46,48 @@ a { } .page { - margin: 6rem 35vw 6rem 20vw; - max-width: 1000px; - position: relative; + & > .page-header { + max-width: var(--pageWidth); + margin: var(--topSpacing) auto 0 auto; + } - & .left, & .right { - position: fixed; - height: 100vh; - overflow-y: scroll; - box-sizing: border-box; + & > #quartz-body { + width: 100%; display: flex; - flex-direction: column; - top: 0; - gap: 2rem; - padding: 6rem; - } - - & .left { - left: 0; - padding-left: 10vw; - width: 20vw; - } - & .right { - right: 0; - padding-right: 10vw; - width: 35vw; - } + & .left, & .right { + flex: 1; + width: calc(calc(100vw - var(--pageWidth)) / 2); + } + & .left-inner, & .right-inner { + display: flex; + flex-direction: column; + gap: 2rem; + top: 0; + width: var(--sidePanelWidth); + margin-top: calc(var(--topSpacing)); + box-sizing: border-box; + padding: 0 4rem; + position: fixed; + } + + & .left-inner { + left: calc(calc(100vw - var(--pageWidth)) / 2 - var(--sidePanelWidth)); + } + + & .right-inner { + right: calc(calc(100vw - var(--pageWidth)) / 2 - var(--sidePanelWidth)); + } + + & .center { + width: var(--pageWidth); + margin: 0 auto; + } + } +} + +.page { @media all and (max-width: 1200px) { margin: 25px 5vw; & .left, & .right { @@ -89,9 +106,26 @@ a { & > h1 { font-size: 2rem; } + + // darkmode diagrams + & svg { + stroke: var(--dark); + } + + & ul:has(input[type='checkbox']) { + list-style-type: none; + padding-left: 0; + } } } +input[type="checkbox"] { + transform: translateY(2px); + color: var(--secondary); + border-color: var(--lightgray); + background-color: var(--light); +} + blockquote { margin: 1rem 0; border-left: 3px solid var(--secondary); @@ -120,7 +154,7 @@ thead { } h1, h2, h3, h4, h5, h6 { - &[id] > a { + &[id] > a[href^="#"] { margin: 0 0.5rem; opacity: 0; transition: opacity 0.2s ease; From 79aff12b3fee1b175b2bf9aad1df7da69d53fc5a Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Tue, 4 Jul 2023 10:08:32 -0700 Subject: [PATCH 036/197] fix indexing causing main thread freeze, various polish --- package-lock.json | 9 ++ package.json | 1 + quartz.config.ts | 4 +- quartz/components/DesktopOnly.tsx | 20 +++ quartz/components/Graph.tsx | 18 +-- quartz/components/Head.tsx | 4 +- quartz/components/MobileOnly.tsx | 20 +++ quartz/components/PageList.tsx | 2 +- quartz/components/ReadingTime.tsx | 3 +- quartz/components/TableOfContents.tsx | 2 +- quartz/components/TagList.tsx | 1 + quartz/components/index.ts | 6 +- quartz/components/pages/FolderContent.tsx | 10 +- quartz/components/pages/TagContent.tsx | 9 +- quartz/components/renderPage.tsx | 2 +- quartz/components/scripts/graph.inline.ts | 18 +-- quartz/components/scripts/popover.inline.ts | 130 ++++++++++---------- quartz/components/scripts/search.inline.ts | 8 +- quartz/components/styles/darkmode.scss | 1 + quartz/components/styles/graph.scss | 2 +- quartz/components/styles/listPage.scss | 6 +- quartz/components/styles/popover.scss | 4 +- quartz/components/styles/search.scss | 4 +- quartz/path.ts | 8 +- quartz/plugins/emitters/contentIndex.ts | 7 +- quartz/plugins/emitters/folderPage.tsx | 3 +- quartz/plugins/emitters/tagPage.tsx | 3 +- quartz/plugins/index.ts | 26 ++-- quartz/processors/emit.ts | 10 +- quartz/resources.tsx | 2 +- quartz/styles/base.scss | 40 +++--- quartz/styles/variables.scss | 5 + quartz/theme.ts | 8 +- 33 files changed, 255 insertions(+), 141 deletions(-) create mode 100644 quartz/components/DesktopOnly.tsx create mode 100644 quartz/components/MobileOnly.tsx create mode 100644 quartz/styles/variables.scss diff --git a/package-lock.json b/package-lock.json index 92e22eb0..fb8f23c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "mdast-util-find-and-replace": "^2.2.2", "mdast-util-to-string": "^3.2.0", "micromorph": "^0.4.5", + "plausible-tracker": "^0.3.8", "preact": "^10.14.1", "preact-render-to-string": "^6.0.3", "pretty-time": "^1.1.0", @@ -3619,6 +3620,14 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/plausible-tracker": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/plausible-tracker/-/plausible-tracker-0.3.8.tgz", + "integrity": "sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg==", + "engines": { + "node": ">=10" + } + }, "node_modules/preact": { "version": "10.15.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", diff --git a/package.json b/package.json index 614bb761..689548d8 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "mdast-util-find-and-replace": "^2.2.2", "mdast-util-to-string": "^3.2.0", "micromorph": "^0.4.5", + "plausible-tracker": "^0.3.8", "preact": "^10.14.1", "preact-render-to-string": "^6.0.3", "pretty-time": "^1.1.0", diff --git a/quartz.config.ts b/quartz.config.ts index 58c1d9cd..18f2533e 100644 --- a/quartz.config.ts +++ b/quartz.config.ts @@ -23,8 +23,8 @@ const contentPageLayout: PageLayout = { left: [ Component.PageTitle(), Component.Search(), - Component.TableOfContents(), - Component.Darkmode() + Component.Darkmode(), + Component.DesktopOnly(Component.TableOfContents()), ], right: [ Component.Graph(), diff --git a/quartz/components/DesktopOnly.tsx b/quartz/components/DesktopOnly.tsx new file mode 100644 index 00000000..a1c5dae9 --- /dev/null +++ b/quartz/components/DesktopOnly.tsx @@ -0,0 +1,20 @@ +import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types" + +export default ((component?: QuartzComponent) => { + if (component) { + const Component = component + function DesktopOnly(props: QuartzComponentProps) { + return
    + +
    + } + + DesktopOnly.displayName = component.displayName + DesktopOnly.afterDOMLoaded = component?.afterDOMLoaded + DesktopOnly.beforeDOMLoaded = component?.beforeDOMLoaded + DesktopOnly.css = component?.css + return DesktopOnly + } else { + return () => <> + } +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/Graph.tsx b/quartz/components/Graph.tsx index 01461882..e7f1df23 100644 --- a/quartz/components/Graph.tsx +++ b/quartz/components/Graph.tsx @@ -25,23 +25,23 @@ const defaultOptions: GraphOptions = { drag: true, zoom: true, depth: 1, - scale: 1.2, - repelForce: 2, - centerForce: 1, + scale: 1.1, + repelForce: 0.5, + centerForce: 0.3, linkDistance: 30, fontSize: 0.6, - opacityScale: 3 + opacityScale: 1 }, globalGraph: { drag: true, zoom: true, depth: -1, - scale: 1.2, - repelForce: 1, - centerForce: 1, + scale: 0.9, + repelForce: 0.5, + centerForce: 0.3, linkDistance: 30, - fontSize: 0.5, - opacityScale: 3 + fontSize: 0.6, + opacityScale: 1 } } diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index f8439a05..bfc7bae2 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -1,10 +1,10 @@ -import { resolveToRoot } from "../path" +import { clientSideSlug, resolveToRoot } from "../path" import { JSResourceToScriptElement } from "../resources" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" export default (() => { function Head({ fileData, externalResources }: QuartzComponentProps) { - const slug = fileData.slug! + const slug = clientSideSlug(fileData.slug!) const title = fileData.frontmatter?.title ?? "Untitled" const description = fileData.description ?? "No description provided" const { css, js } = externalResources diff --git a/quartz/components/MobileOnly.tsx b/quartz/components/MobileOnly.tsx new file mode 100644 index 00000000..b75fd76a --- /dev/null +++ b/quartz/components/MobileOnly.tsx @@ -0,0 +1,20 @@ +import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types" + +export default ((component?: QuartzComponent) => { + if (component) { + const Component = component + function MobileOnly(props: QuartzComponentProps) { + return
    + +
    + } + + MobileOnly.displayName = component.displayName + MobileOnly.afterDOMLoaded = component?.afterDOMLoaded + MobileOnly.beforeDOMLoaded = component?.beforeDOMLoaded + MobileOnly.css = component?.css + return MobileOnly + } else { + return () => <> + } +}) satisfies QuartzComponentConstructor diff --git a/quartz/components/PageList.tsx b/quartz/components/PageList.tsx index 3c39bee9..b92720de 100644 --- a/quartz/components/PageList.tsx +++ b/quartz/components/PageList.tsx @@ -23,7 +23,7 @@ function byDateAndAlphabetical(f1: QuartzPluginData, f2: QuartzPluginData): numb export function PageList({ fileData, allFiles }: QuartzComponentProps) { const slug = fileData.slug! - return