From a757521313fb2c623d4dfda95eb97d3189bfe253 Mon Sep 17 00:00:00 2001
From: Jacky Zhao
Date: Sun, 28 May 2023 17:44:08 -0700
Subject: [PATCH] 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 a0d219e..f2c1097 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 efc2bd4..0000000
--- 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 182026f..690975f 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 e69de29..0000000
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index ac5e8de..0000000
--- 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 bbd3be7..0000000
--- 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 058b8ba..26b0547 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*
+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 e69de29..0000000
diff --git a/assets/js/callouts.js b/assets/js/callouts.js
deleted file mode 100644
index 080bbb4..0000000
--- 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 10e02c6..0000000
--- 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 325e16d..0000000
--- 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 8168d77..0000000
--- 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 709a3b3..0000000
--- 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 ce0c73b..0000000
--- 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 101d1c0..0000000
--- 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 c29ab77..0000000
--- 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 fca2851..0000000
--- 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 bd434c7..0000000
--- 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 e1650fc..0000000
--- 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 9d2019a..0000000
--- 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 d0f452e..0000000
--- 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 85eb8bc..0000000
--- 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 7989e24..0000000
--- 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 b384743..0000000
--- 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 fc0108a..0000000
--- 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 61967d7..0000000
--- 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 6267f5c..0000000
--- 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 dbe9893..0000000
--- 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 5ef8b63..0000000
--- 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 a6f916a..0000000
--- 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 631c071..0000000
--- 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 2d3acfb..0000000
--- 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 266bfd7..0000000
--- 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 b9ce33e..0000000
--- 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 2effa23..0000000
--- 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 f406881..0000000
--- 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 f5817b4..0000000
--- 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 79e700f..0000000
--- 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 0515128..0000000
--- 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 f84f5ce..0000000
--- 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 ca8c1b1..0000000
--- 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 5607e63..0000000
--- a/layouts/404.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-{{ partial "head.html" . }}
-
-
-
- {{partial "darkmode.html" .}}
-
-
-
-
diff --git a/layouts/_default/_markup/render-codeblock-mermaid.html b/layouts/_default/_markup/render-codeblock-mermaid.html
deleted file mode 100644
index 5964155..0000000
--- 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 dbcf732..0000000
--- 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 -}}
-
-{{- else -}}
-{{$fixedUrl := (cond (hasPrefix $src "/") $src (print "/" $src)) | urlize}}
-
-{{- end -}}
diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html
deleted file mode 100644
index be36d2e..0000000
--- 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 8754b1f..0000000
--- 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 f88b85f..0000000
--- 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 36beb83..0000000
--- a/layouts/_default/single.html
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-{{ partial "head.html" . }}
-
-
-{{partial "search.html" .}}
-
-
- {{partial "header.html" .}}
-
- {{if .Title}}{{ .Title }}
{{end}}
-
- {{ i18n "last_updated" }} {{ partial "date-fmt.html" .}}
- {{ partial "github.html" . }}
-
-
- {{partial "toc.html" .}}
- {{partial "textprocessing.html" . }}
-
- {{partial "footer.html" .}}
-
-
-
diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html
deleted file mode 100644
index 01ec325..0000000
--- 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}}
-
-
- {{partial "contact.html" .}}
-
-
-
diff --git a/layouts/_default/term.html b/layouts/_default/term.html
deleted file mode 100644
index 6bda201..0000000
--- 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 c7871e9..0000000
--- 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 ae6ea1a..0000000
--- a/layouts/partials/backlinks.html
+++ /dev/null
@@ -1,30 +0,0 @@
-{{ i18n "backlinks" }}
-
- {{$url := urls.Parse .Site.BaseURL }}
- {{$host := strings.TrimRight "/" $url.Path }}
- {{$curPage := strings.TrimPrefix $host (strings.TrimRight "/" .Page.RelPermalink)}}
- {{$linkIndex := getJSON "/assets/indices/linkIndex.json"}}
- {{$inbound := index $linkIndex.index.backlinks $curPage}}
- {{$contentTable := getJSON "/assets/indices/contentIndex.json"}}
- {{if $inbound}}
- {{$backlinks := dict "SENTINEL" "SENTINEL"}}
- {{range $k, $v := $inbound}}
- {{$cleanedInbound := replace $v.source " " "-"}}
- {{$ctx := $v.text}}
- {{$backlinks = merge $backlinks (dict $cleanedInbound $ctx)}}
- {{end}}
- {{- range $lnk, $ctx := $backlinks -}}
- {{$l := printf "%s%s/" $host $lnk}}
- {{$l = cond (eq $l "//") "/" $l}}
- {{with (index $contentTable $lnk)}}
- -
- {{index (index . "title")}}
-
- {{end}}
- {{- end -}}
- {{else}}
- -
- {{ i18n "no_backlinks" }}
-
- {{end}}
-
diff --git a/layouts/partials/contact.html b/layouts/partials/contact.html
deleted file mode 100644
index 3de7d2c..0000000
--- 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 }}
-
-
diff --git a/layouts/partials/darkmode.html b/layouts/partials/darkmode.html
deleted file mode 100644
index a708f13..0000000
--- 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 6104226..0000000
--- 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 cab44cb..0000000
--- 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 5b73fa4..0000000
--- 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 836dc79..0000000
--- 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 3e25c65..0000000
--- 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 14d7ab4..0000000
--- 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 1925a0c..0000000
--- 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) }}
-
-
-
-
{{ i18n "search" }}
-
-
- {{partial "darkmode.html" .}}
-
-
diff --git a/layouts/partials/katex.html b/layouts/partials/katex.html
deleted file mode 100644
index 8a2f40b..0000000
--- 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 09d348b..0000000
--- 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 1d2a477..0000000
--- a/layouts/partials/page-list.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
- {{- range . -}}
- -
-
-
- {{partial "date-fmt.html" .}}
-
-
-
-
-
-
- {{- end -}}
-
diff --git a/layouts/partials/recent.html b/layouts/partials/recent.html
deleted file mode 100644
index aadf97d..0000000
--- 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 b5692e1..0000000
--- 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 c918247..0000000
--- 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 bd0cb54..0000000
--- 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 0000000..5f7fa85
--- /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 0000000..15b4a57
--- /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 0000000..0f66ea2
--- /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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