diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..6ab5fe3
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+export GUILE_AUTO_COMPILE=0
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index a52ae4e..d4d993b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,4 +11,7 @@ coverage/
*.lcov
# Node Modules dir
-node_modules/
\ No newline at end of file
+node_modules/
+
+# Test snapshots
+tests/__snapshots__/
\ No newline at end of file
diff --git a/README.md b/README.md
index a7def57..1232194 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,9 @@ I need for [my Lume site](https://urutau-ltd.org/).
[Lume TOC](https://lume.land/plugins/toc/) was beyond unusable for me and I'd
rather maintain a fork to keep doing things my way.
+Also tests are Deno runtime dependent and the build system doesn't use deno
+tasks but `maak` instead. You'll need either `nix` or `guix` for that.
+
### I don't care, I still want to use it
Install it via JSR with:
diff --git a/deno.json b/deno.json
index dfe858f..93456a4 100644
--- a/deno.json
+++ b/deno.json
@@ -1,15 +1,13 @@
{
"name": "@funcproglinux/markdown-it-toc-revived",
- "version": "1.0.4",
+ "version": "1.0.5",
"license": "AGPL-3.0-or-later",
"exports": "./mod.ts",
"nodeModulesDir": "auto",
"imports": {
"@std/assert": "jsr:@std/assert@^1.0.19",
"@std/html": "jsr:@std/html@^1.0.7",
- "@types/markdown-it": "npm:@types/markdown-it@^14.2.0",
-
- "markdown-it": "npm:markdown-it@^14.3.0",
+ "markdown-it": "npm:markdown-it@^15.0.0",
"markdown-it-anchor": "npm:markdown-it-anchor@^9.2.1"
},
"publish": {
diff --git a/deno.lock b/deno.lock
index 80be736..c98f986 100644
--- a/deno.lock
+++ b/deno.lock
@@ -2,27 +2,264 @@
"version": "5",
"specifiers": {
"jsr:@std/assert@^1.0.19": "1.0.19",
+ "jsr:@std/cli@1.0.32": "1.0.32",
+ "jsr:@std/cli@^1.0.32": "1.0.32",
+ "jsr:@std/collections@^1.1.3": "1.3.0",
+ "jsr:@std/crypto@1.1.0": "1.1.0",
+ "jsr:@std/encoding@^1.0.11": "1.0.11",
+ "jsr:@std/fmt@1.0.10": "1.0.10",
+ "jsr:@std/fmt@^1.0.10": "1.0.10",
+ "jsr:@std/front-matter@1.0.9": "1.0.9",
+ "jsr:@std/fs@1.0.24": "1.0.24",
+ "jsr:@std/fs@^1.0.24": "1.0.24",
"jsr:@std/html@^1.0.7": "1.0.7",
+ "jsr:@std/http@1.1.3": "1.1.3",
"jsr:@std/internal@^1.0.12": "1.0.14",
- "npm:@types/markdown-it@^14.2.0": "14.2.0",
- "npm:markdown-it-anchor@^9.2.1": "9.2.1_@types+markdown-it@14.2.0_markdown-it@14.3.0",
- "npm:markdown-it@^14.3.0": "14.3.0"
+ "jsr:@std/internal@^1.0.14": "1.0.14",
+ "jsr:@std/json@^1.0.2": "1.1.0",
+ "jsr:@std/jsonc@1.0.2": "1.0.2",
+ "jsr:@std/media-types@^1.1.0": "1.1.0",
+ "jsr:@std/net@^1.0.6": "1.0.6",
+ "jsr:@std/path@1.1.6": "1.1.6",
+ "jsr:@std/path@^1.1.5": "1.1.6",
+ "jsr:@std/path@^1.1.6": "1.1.6",
+ "jsr:@std/semver@1.0.8": "1.0.8",
+ "jsr:@std/streams@^1.1.2": "1.1.2",
+ "jsr:@std/toml@1.0.11": "1.0.11",
+ "jsr:@std/toml@^1.0.3": "1.0.11",
+ "jsr:@std/yaml@1.2.0": "1.2.0",
+ "jsr:@std/yaml@^1.0.5": "1.2.0",
+ "npm:esbuild@0.28.2": "0.28.2",
+ "npm:lightningcss-wasm@1.33.0": "1.33.0",
+ "npm:markdown-it-anchor@^9.2.1": "9.2.1_@types+markdown-it@14.2.0_markdown-it@15.0.0",
+ "npm:markdown-it-attrs@5.0.1": "5.0.1_markdown-it@15.0.0",
+ "npm:markdown-it-deflist@4.0.0": "4.0.0",
+ "npm:markdown-it@15": "15.0.0",
+ "npm:markdown-it@15.0.0": "15.0.0"
},
"jsr": {
"@std/assert@1.0.19": {
"integrity": "eaada96ee120cb980bc47e040f82814d786fe8162ecc53c91d8df60b8755991e",
"dependencies": [
- "jsr:@std/internal"
+ "jsr:@std/internal@^1.0.12"
+ ]
+ },
+ "@std/cli@1.0.32": {
+ "integrity": "188b3a100d6202d64e3f5bd3d799c7fa4f6d77f92cc65eb7f641c1fa0aa92a66"
+ },
+ "@std/collections@1.3.0": {
+ "integrity": "eb36b43d784477ea0b476483ac034a14bdd182aff921c812ecf662a1fcef9498"
+ },
+ "@std/crypto@1.1.0": {
+ "integrity": "b8d6d0a6377a32b213af2661ed7bf1062d94feac0c57def5526a8e74a95c3ec8"
+ },
+ "@std/encoding@1.0.11": {
+ "integrity": "e7cef2f0b3153bccc17431e7c864a1de03a4b6d9647389c43e08aaa775d37385"
+ },
+ "@std/fmt@1.0.10": {
+ "integrity": "90dfba288802ac6de82fb31d0917eb9e4450b9925b954d5e51fc29ac07419db5"
+ },
+ "@std/front-matter@1.0.9": {
+ "integrity": "ee6201d06674cbef137dda2252f62477450b48249e7d8d9ab57a30f85ff6f051",
+ "dependencies": [
+ "jsr:@std/toml@^1.0.3",
+ "jsr:@std/yaml@^1.0.5"
+ ]
+ },
+ "@std/fs@1.0.24": {
+ "integrity": "f3061b45b81673a2bece689da041df32d174be064c89eb6397fb5718d3fb7877",
+ "dependencies": [
+ "jsr:@std/path@^1.1.5"
]
},
"@std/html@1.0.7": {
"integrity": "175c818905a6e75743c69c251395e273d82698e58cfe7dd76268d70e28b8d8fe"
},
+ "@std/http@1.1.3": {
+ "integrity": "73a98e05ff58aa18bea562d286172e6c815b1eddd4fcab194beda19e3683b88c",
+ "dependencies": [
+ "jsr:@std/cli@^1.0.32",
+ "jsr:@std/encoding",
+ "jsr:@std/fmt@^1.0.10",
+ "jsr:@std/fs@^1.0.24",
+ "jsr:@std/html",
+ "jsr:@std/media-types",
+ "jsr:@std/net",
+ "jsr:@std/path@^1.1.6",
+ "jsr:@std/streams"
+ ]
+ },
"@std/internal@1.0.14": {
"integrity": "291516b3d4c35024d6ffbc0a9df5bf4c64116e05b50012cf846710152d2ffdf7"
+ },
+ "@std/json@1.1.0": {
+ "integrity": "93330d3ed4054d6b1ffe54b075432c80a5f671be77277b978931e018014cb1cc"
+ },
+ "@std/jsonc@1.0.2": {
+ "integrity": "909605dae3af22bd75b1cbda8d64a32cf1fd2cf6efa3f9e224aba6d22c0f44c7",
+ "dependencies": [
+ "jsr:@std/json"
+ ]
+ },
+ "@std/media-types@1.1.0": {
+ "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4"
+ },
+ "@std/net@1.0.6": {
+ "integrity": "110735f93e95bb9feb95790a8b1d1bf69ec0dc74f3f97a00a76ea5efea25500c"
+ },
+ "@std/path@1.1.6": {
+ "integrity": "c68485c2a4dfbb5ae3cc74fae4e8c4e5d874cf8a8ed12927917235c758b46cbe",
+ "dependencies": [
+ "jsr:@std/internal@^1.0.14"
+ ]
+ },
+ "@std/semver@1.0.8": {
+ "integrity": "dc830e8b8b6a380c895d53fbfd1258dc253704ca57bbe1629ac65fd7830179b7"
+ },
+ "@std/streams@1.1.2": {
+ "integrity": "0249bf9b78a999f57032ca4d8e7ccaa57579090242640b35ddc948fbb745d3af"
+ },
+ "@std/toml@1.0.11": {
+ "integrity": "e084988b872ca4bad6aedfb7350f6eeed0e8ba88e9ee5e1590621c5b5bb8f715",
+ "dependencies": [
+ "jsr:@std/collections"
+ ]
+ },
+ "@std/yaml@1.2.0": {
+ "integrity": "20beb41e4983ba3437dbefac62b14061ab058e8a187596f19d28ff9035f6e6cf"
}
},
"npm": {
+ "@esbuild/aix-ppc64@0.28.2": {
+ "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==",
+ "os": ["aix"],
+ "cpu": ["ppc64"]
+ },
+ "@esbuild/android-arm64@0.28.2": {
+ "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==",
+ "os": ["android"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/android-arm@0.28.2": {
+ "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==",
+ "os": ["android"],
+ "cpu": ["arm"]
+ },
+ "@esbuild/android-x64@0.28.2": {
+ "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==",
+ "os": ["android"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/darwin-arm64@0.28.2": {
+ "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==",
+ "os": ["darwin"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/darwin-x64@0.28.2": {
+ "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==",
+ "os": ["darwin"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/freebsd-arm64@0.28.2": {
+ "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==",
+ "os": ["freebsd"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/freebsd-x64@0.28.2": {
+ "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==",
+ "os": ["freebsd"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/linux-arm64@0.28.2": {
+ "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==",
+ "os": ["linux"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/linux-arm@0.28.2": {
+ "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==",
+ "os": ["linux"],
+ "cpu": ["arm"]
+ },
+ "@esbuild/linux-ia32@0.28.2": {
+ "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==",
+ "os": ["linux"],
+ "cpu": ["ia32"]
+ },
+ "@esbuild/linux-loong64@0.28.2": {
+ "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==",
+ "os": ["linux"],
+ "cpu": ["loong64"]
+ },
+ "@esbuild/linux-mips64el@0.28.2": {
+ "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==",
+ "os": ["linux"],
+ "cpu": ["mips64el"]
+ },
+ "@esbuild/linux-ppc64@0.28.2": {
+ "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==",
+ "os": ["linux"],
+ "cpu": ["ppc64"]
+ },
+ "@esbuild/linux-riscv64@0.28.2": {
+ "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==",
+ "os": ["linux"],
+ "cpu": ["riscv64"]
+ },
+ "@esbuild/linux-s390x@0.28.2": {
+ "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==",
+ "os": ["linux"],
+ "cpu": ["s390x"]
+ },
+ "@esbuild/linux-x64@0.28.2": {
+ "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==",
+ "os": ["linux"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/netbsd-arm64@0.28.2": {
+ "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==",
+ "os": ["netbsd"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/netbsd-x64@0.28.2": {
+ "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==",
+ "os": ["netbsd"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/openbsd-arm64@0.28.2": {
+ "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==",
+ "os": ["openbsd"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/openbsd-x64@0.28.2": {
+ "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==",
+ "os": ["openbsd"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/openharmony-arm64@0.28.2": {
+ "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==",
+ "os": ["openharmony"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/sunos-x64@0.28.2": {
+ "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==",
+ "os": ["sunos"],
+ "cpu": ["x64"]
+ },
+ "@esbuild/win32-arm64@0.28.2": {
+ "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==",
+ "os": ["win32"],
+ "cpu": ["arm64"]
+ },
+ "@esbuild/win32-ia32@0.28.2": {
+ "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==",
+ "os": ["win32"],
+ "cpu": ["ia32"]
+ },
+ "@esbuild/win32-x64@0.28.2": {
+ "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==",
+ "os": ["win32"],
+ "cpu": ["x64"]
+ },
"@types/linkify-it@5.0.0": {
"integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="
},
@@ -36,27 +273,72 @@
"@types/mdurl@2.0.0": {
"integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="
},
- "argparse@2.0.1": {
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "argparse@3.0.0": {
+ "integrity": "sha512-BOp5NMrHqKxmq/OLr+clzzrRxgOKSLkcjmkWuChp7Irqwn4s74WjOBPIgWfA/HMcBnVkZ5XEuf9uUqzlpfCQ6A=="
+ },
+ "entities@8.0.0": {
+ "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA=="
+ },
+ "esbuild@0.28.2": {
+ "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==",
+ "optionalDependencies": [
+ "@esbuild/aix-ppc64",
+ "@esbuild/android-arm",
+ "@esbuild/android-arm64",
+ "@esbuild/android-x64",
+ "@esbuild/darwin-arm64",
+ "@esbuild/darwin-x64",
+ "@esbuild/freebsd-arm64",
+ "@esbuild/freebsd-x64",
+ "@esbuild/linux-arm",
+ "@esbuild/linux-arm64",
+ "@esbuild/linux-ia32",
+ "@esbuild/linux-loong64",
+ "@esbuild/linux-mips64el",
+ "@esbuild/linux-ppc64",
+ "@esbuild/linux-riscv64",
+ "@esbuild/linux-s390x",
+ "@esbuild/linux-x64",
+ "@esbuild/netbsd-arm64",
+ "@esbuild/netbsd-x64",
+ "@esbuild/openbsd-arm64",
+ "@esbuild/openbsd-x64",
+ "@esbuild/openharmony-arm64",
+ "@esbuild/sunos-x64",
+ "@esbuild/win32-arm64",
+ "@esbuild/win32-ia32",
+ "@esbuild/win32-x64"
+ ],
+ "scripts": true,
+ "bin": true
},
- "entities@4.5.0": {
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
+ "lightningcss-wasm@1.33.0": {
+ "integrity": "sha512-OLAtqEyInBSVWjPrTjpLzcZUMUHO0q+2PFBXKr86nxZOu0P38givj/ZMtRaZ0d38pMTb9wQx+LtaLtHclv+sEA=="
},
- "linkify-it@5.0.2": {
- "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==",
+ "linkify-it@6.1.0": {
+ "integrity": "sha512-wJ/TwpSDTLepCrQoYWYIExIKg5Zchex2Nn5yk2mFnB+6PtdkHtyLx742md9csRjjOnGkKIS/RrbY7l8D6gT9Vw==",
"dependencies": [
"uc.micro"
]
},
- "markdown-it-anchor@9.2.1_@types+markdown-it@14.2.0_markdown-it@14.3.0": {
+ "markdown-it-anchor@9.2.1_@types+markdown-it@14.2.0_markdown-it@15.0.0": {
"integrity": "sha512-p6APiLJDFAW2GEvaavDvhIBn7jrX2jLv77NkBGgNacFTurbORYc4pyYySg/mI6mpR6cHQuAtzKtmqgQr4K8dsQ==",
"dependencies": [
"@types/markdown-it",
"markdown-it"
]
},
- "markdown-it@14.3.0": {
- "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==",
+ "markdown-it-attrs@5.0.1_markdown-it@15.0.0": {
+ "integrity": "sha512-dTP49/FLERwbgqmfIG5LwnC99qecIJYalKQbl3pY+7Hajk+Z+cazeEZaKwofpM9KFxvfRVF0UN9GYxKKAakfNg==",
+ "dependencies": [
+ "markdown-it"
+ ]
+ },
+ "markdown-it-deflist@4.0.0": {
+ "integrity": "sha512-06186ZWDwNLg638THD70MxBeFrDMF0+nL7IWU/qwCGHGOcUIm4MTYXbfjpv0ooWnVjkSnAjW8msKaOQmNRfY6Q=="
+ },
+ "markdown-it@15.0.0": {
+ "integrity": "sha512-Lf8ajvVNdRpzSNB4VegxNy7gjs8gU35l4b4+ET49LrQC5PKYwLZ72u60LeJ9gv3qiaesuYjJWCyVeQmv/QWKQw==",
"dependencies": [
"argparse",
"entities",
@@ -73,17 +355,145 @@
"punycode.js@2.3.1": {
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="
},
- "uc.micro@2.1.0": {
- "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
+ "uc.micro@3.0.0": {
+ "integrity": "sha512-U3PppEkleoTnIfi8BozMx3yju3qc/L6SwqWo2Sw+54PX+PX0q9I+r1Um5HCmqD7n9VDX5/v3vQH/AjA6deDdtw=="
}
},
+ "remote": {
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/build/deno-wasm/deno-wasm-dynamic.js": "fd05e83a855aa68b09396dc47a7638ef526c39917971715ac37e0fc3227db886",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/build/deno-wasm/deno-wasm.js": "ccde5219e42040b8f7a8b653acc6c8cca197c29f98d6b75f74c48111e34bcbea",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/build/deno-wasm/deno-wasm_bg-wasm.js": "52c57905a74047d1574f0b96e301ef1d5974cd962705615555b5e46b5ac420e4",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/build/deno-wasm/deno-wasm_bg.wasm": "b5fbd7ede316f7c13e4a7b927a053a35b475a9acce7c7cae864e91d9b8dd24c7",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/build/deno-wasm/env.js": "17da784c11b192c591dbf7df21ec6f65f63f45ca9a713e4ca100f3c886b4023f",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/build/deno-wasm/wbg.js": "b5b6de12bc010fa23438c8a8276067b9044a405da516d0bbe4ae61b7c6d61a22",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/deno-dom-wasm.ts": "34f0654b452568fbd95b8d1b2a493de19710ac9ceeb6b82f541d09c29613572d",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/api.ts": "0ff5790f0a3eeecb4e00b7d8fbfa319b165962cf6d0182a65ba90f158d74f7d7",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/constructor-lock.ts": "0e7b297e8b9cf921a3b0d3a692ec5fb462c5afc47ec554292e20090b9e16b40a",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/deserialize.ts": "514953418b7ae558ed7361ad9be21013f46cba2f58bd7f4acc90cf1e89f9c8cf",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/document-fragment.ts": "0b915d094830d43b330dc2fb8012b990f2c815773c6cdcd4a9fdff99fe47412e",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/document.ts": "ad584ac4ce6dce03f0ff6ef4b7db86fd598f9c7824da1387f7f2acd7d6948e4a",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/dom-parser.ts": "ab5e8382700bc3936ac67e8d11b7bb9c6999a994ac8b070b7cae94e2d2ecee5a",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/element.ts": "9726ebf139b97ae96671d38da720988cfd6481ff9068ba13f3b0d00e72f0c8c0",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/elements/html-template-element.ts": "1707dfb4cbb145f3bcb94426d7cdedbaa336620d0afed30e99f50fe87ba24a98",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/html-collection.ts": "dcf328e883877f7748d3e20fb6319e739f297a6e24f4b00ec5b1a2f390cfa3c6",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/node-list.ts": "be9793475d82539da8b97a17b6b5538cc723538c10cc5820a23e5e4b2248845d",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/node.ts": "53ada9e4b2ae21f10f5941ff257ed4585920ae392020544648f349c05d15d30c",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/selectors/custom-api.ts": "852696bd58e534bc41bd3be9e2250b60b67cd95fd28ed16b1deff1d548531a71",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/selectors/nwsapi-types.ts": "c43b36c36acc5d32caabaa54fda8c9d239b2b0fcbce9a28efb93c84aa1021698",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/selectors/nwsapi.js": "985d7d8fc1eabbb88946b47a1c44c1b2d4aa79ff23c21424219f1528fa27a2ff",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/selectors/selectors.ts": "83eab57be2290fb48e3130533448c93c6c61239f2a2f3b85f1917f80ca0fdc75",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/selectors/sizzle-types.ts": "78149e2502409989ce861ed636b813b059e16bc267bb543e7c2b26ef43e4798b",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/selectors/sizzle.js": "c3aed60c1045a106d8e546ac2f85cc82e65f62d9af2f8f515210b9212286682a",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/string-cache.ts": "8e935804f7bac244cc70cec90a28c9f6d30fea14c61c2c4ea48fca274376d786",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/utils-types.ts": "96db30e3e4a75b194201bb9fa30988215da7f91b380fca6a5143e51ece2a8436",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/dom/utils.ts": "bc429635e9204051ba1ecc1b212031b5ee7c6bcd95120c91bef696804aa67e74",
+ "https://cdn.jsdelivr.net/gh/b-fuze/deno-dom@0.1.56/src/parser.ts": "e06b2300d693e6ae7564e53dfa5c9a9e97fdb8c044c39c52c8b93b5d60860be3",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/archetypes.ts": "7d143dda9c38f506d3d5567722f3d375947d7ec74b48ca067c391ebe42eaf93b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/cache.ts": "bec945853a7111babf1fb465090d84dbf4176af0ad465b63b51031134ad6ea2a",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/components.ts": "652ffa0be1091636eea3f95574f250a8ef22a7241d6f48df71e9420e3b145563",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/data_loader.ts": "a5f206eefc5041d1882b85a874e1d1f9b82f409eb586b62278b2f51e181da673",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/debugbar.ts": "b7fc66a6462c8c6267577b2bec572b8134cdbb88271e463c141da16e478a175e",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/events.ts": "e4fd1786eb7dd4a041d7d922779b9edf1ee89e51fd17ba5e756f380879ccb557",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/file.ts": "4fc912f7934ed8d24164d4c056ef0d6687d9f07c0c2c5fedefe332a98cd46772",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/formats.ts": "e65130e5c5f2e49435619479710c812199b480a9e145fdc6b2bac11cfe6ea08e",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/fs.ts": "3176c120d63b0adfd269050ff01408804d692f31227658b2427a708f95cd0f6c",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/loaders/binary.ts": "9cec5daf121e95e3de453463a34183fc90aa8183c6c94d1e1c53da4ea4cf26cd",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/loaders/json.ts": "5c8faa9fa86ae2c462f0420a4ea616cbf4b04be3d4e5f70198603033489a3905",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/loaders/module.ts": "dc8b578586502c58cb1fb6a8d219b406adb4e050e473c5c9211ba034732c9960",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/loaders/text.ts": "6cd4e3ce1a97f668fdd3fea957e71b51c7bc488e094e82b43bb089854a4bebc8",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/loaders/toml.ts": "8d3083b58e335eff9f11c0f3b1bfafe7e3bb49b1ddbabcffee6b45b09adcca68",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/loaders/yaml.ts": "a978f03562df13e995e3d10f69d3206a9e1575fe2cbd460916a748ec7d4137e7",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/logger.ts": "44591cf380eb3271c0ca0612da3d741621210d65cdc7099d8500f08aa2aafe7b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/processors.ts": "c4829d8918a93da150e154b0ea624018cfe9bbd66e92757aebe1a8c1ca66ec8b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/renderer.ts": "29179b87c1385f4ab3ff369630d9fb5d99b442b2ffb62e6aa9b86b8ee0619479",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/scopes.ts": "dbdf93d7a9cead84833779e974f190b1379356ec7c0ccd34aa92f917c2cdd2f9",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/scripts.ts": "286969b120d2290ba57a7fdd9b37e587aacf4e4162d92f51f1f1e9e18c864f30",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/searcher.ts": "f117ac194ab3f7901c2699c60fb155dd12d37f54a89121b5f6fc385f9e092379",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/server.ts": "3f73d4a886c29d2af5144e9475655f8bfa13a73d4f193eeb013ae4dd8394c3b3",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/site.ts": "359ac71dc5c87cc4750cf0839614810bfb0a5cdc8cd482a5dab87766c7ae612f",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/source.ts": "00f948a0262363553588eb3147c7ca1f7d48bf86e856f4bd4820ca0db710cabb",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/cdn.ts": "4309cb725106091d5d92a91f1599a6d5eacaaa5303fe7835ea27d55f97144e03",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/cli_options.ts": "6c6eb9ded1775b8d2654d3e218c09b11b26efa3dc6f3b74592bcd74a53447bd0",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/concurrent.ts": "f0172230b25d83aca497c64d92a08d9a373b9ffd13cf57c273a51d8a3a3a2a9e",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/date.ts": "3eb0b0e2ea15a95cdfe737be70cd4f48cbe49401928cb04c25a230f411ab2478",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/digest.ts": "edc8fc07f34fa3c748fea98704361d88e2449e8e91c0f2800fdab38bfad24bae",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/dom.ts": "8337af56c8d447b5ad1b021a0981f9cec912dba820b2ba346820258b80b5f12a",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/env.ts": "0f2d7ab9c1c39727803e1b22abeb1d6d9798ec4e76cf85d213a01f5db42de978",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/format.ts": "40a6f38eabd646eaf07c05b2c994ef5e7a69fe9594e194ea5dca847033b7b416",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/generator.ts": "1e664e9fd4c469e38a0acf5c94fd49dac4f38cb6334563ea4b7fc498b5958877",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/hmr.ts": "59ff6374c7d4711b31885ef509bbaf534d475756d2618e09c0189e63b61a9444",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/log.ts": "46c7096372dda547bc6b3b6c1eb4abdb8832862471032728593e52015589ef0a",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/merge_data.ts": "ee04ac54ff336ebc9acdce9f4f0e043ed368177c2f09da605692a36214fcb49b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/net.ts": "d0d58c95668effc13669015c219295532f67e4a02396286308c772871b615a9b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/object.ts": "c4dee88cf159718dab07fd2c32cf87fa2fe6191d80de3ac7e4ce2b5df0790a2b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/page_content.ts": "bbadb588f9d9fcf1a2af156ce4b68974dfad39b65c3c8d42a6f1895b194c7eec",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/page_date.ts": "5ea81b631d3c3dc0ee532829261632786e3253f24b9e1b3d4fbffe7d3e701845",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/page_url.ts": "bca0a02fbe6c00aa92ab24e7a5631be1ea217b2a3fa0f5c9c1a345456dedaebf",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/path.ts": "73db7b3bf8df81b7af4085a9fef4d5648ac083a4e826ae98c0dcb96b0fa64e6b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/read.ts": "32010c32c2d99be0fd6ba2566f04a30c8b16f5d0c9eaee18ca80e472d5ab2644",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/utils/tokens.ts": "7bb3731b4ee3232f38a6aec9c5364d7492b2ea4fcfe7321115a9af25a1ff2038",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/watcher.ts": "8c986e5546dea6c6dbc5ff593f2b734973588d465c3a2f5f4b1eacc0f1b72f5b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/writer.ts": "1c25444a80f9b328979451e8e5c4d6154a6d66f7181d70136b041c547cbf3952",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/cli.ts": "18c71319d8d7712a5896df0f8f4f5a8bdf4b9a3860c677b490a72a4434e6898b",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/colors.ts": "eae71a8d83eb15ab20c140b94987a1c789e1ece31d99b3ec2841506eaff854bc",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/crypto.ts": "ee2052ca083ad5c5b89220a9ae1ba6c38cbcefa3a8cd8771c81e7e1469eeffae",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/dom.ts": "08bdf42363093cae0e0a3f6efb3c500cfc8a7a6ab09d73fa69d212a6c907d547",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/esbuild.ts": "6f54b993c41ebe16d91c7d106f8a41b57bf9f4aad0025222ba37221927e61870",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/front_matter.ts": "f5e5780d4a0502d50cde1f42a4aa7830756dc9bd0251ba7448cecd1eaa60878f",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/fs.ts": "622088d0a6846c8ba26da2e805a50d10d994647c6593362edff9b9dc0bea1e55",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/http.ts": "9ac1e4130a1de55b5ff4343cc0ee1d660eb3bdb0dfdc2dd1680bfe1ad904bce2",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/jsonc.ts": "abe9c7b88ded304adac6e1eec70a858ae5dcce95ca53d91bde425a2edf3a653d",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/lightningcss.ts": "3693059a5b5b4b3946ec00fd9346ad20b41543f763e45e970eae6457fa372943",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/markdown_it.ts": "6b9b8e9346810990cbbfedff65a8af37b5fe56880d68bfdbd1a1e31cfc93efd4",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/module.ts": "efb42611b158c42d86dac524fe9228a662709d397c0e835198451b15e6b832b4",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/path.ts": "222428da77a11a963236fdf6501aa3396ab313aefea9bba79b35c6073eb18366",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/semver.ts": "4089dbcbad21636cb3d743eb61b3727674c133fba17556f0738b799f1a5a9441",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/toml.ts": "61831fd046e8df6b35ccdacc7fc3b3ae7c0a2450b2f368cf933e518d243b3881",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/vento.ts": "a13fe85a6592a13e9f2a861fe73612315bbd24fe227152272a1cb76635c296a3",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/deps/yaml.ts": "e9a23af8531f36fc4350902845a9df553fd65b74925c8e96da828a8ee583c379",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/middlewares/not_found.ts": "6836ef5f8ecd4852d6bc89d4e6396b31700d2ef48d76a5f4390a1d26ba6bec1f",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/mod.ts": "c7864bfc76593c46f1a091aa78366b9567db2cf204e410c731f2382530900cfe",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/json.ts": "b7680d0593775bed69f7d5c83c861e490a95159efe7800c3eeed45fa6caad42f",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/markdown.ts": "2a6f40e67e188ebb8522faf7f959a41531479faef4e981cd2b64fd6e8960f9dd",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/modules.ts": "abbbe43cb6f237d36f02934c0d0fcffe59648d555b490229ebe6979081331957",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/paginate.ts": "29ff5d5b749f986d08e19ec509b1b2c61cb91b7a6fb9347b7aea51faf7efbdaa",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/search.ts": "d89a0fb5f11c33d75a3e1865db5df85dd9a7eec14ec33348da23a4dfbbccb157",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/toml.ts": "808f34d42bce68f6da4f526157772186fc2919d109dfd8b2a7cacba39569c2d8",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/url.ts": "15f2e80b6fcbf86f8795a3676b8d533bab003ac016ff127e58165a6ac3bffc1a",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/vento.ts": "5970a4bda08a1706bdd81fe8f82b0a424df783f4e25983b67de112dcca024834",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/plugins/yaml.ts": "1f57185f048716552c9786d1d160bc1537ec9e09b35efd64b9be92dbacb9f680",
+ "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/types.ts": "79e135b4a9e2d7aa69d6049ed1b5d3438e02b6ca06c7a9092910636aba341821",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/core/environment.ts": "1da293f6a837590ce95a829638b0ffdefd6b18ac5de54b6a55a284febf6d382f",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/core/errors.ts": "8606b682b465d598a394feea135dd2f84033b5ef2a61a23d116ccb782a0a547a",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/core/js.ts": "83084240150d7e8b83e43ec8fcf78564a8ba8599c3d517976efbb11b208903b2",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/core/reserved.ts": "e3ccafb4e5524b9c51fa14fa0e4bf17fd9bdd791848f17afa2aeb97835c486d1",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/core/tokenizer.ts": "460faa3de0e561e5046c46528c8bcbfc46b9de576af7ec8c4a8954a61a80ec76",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/loaders/file.ts": "83f579ac39838642bb45c6ddf48c05c08134cdd95fa7364d004fb443e972196a",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/mod.ts": "26081287509a87d81c51917795ff94ea80056c43599af8140bb5f666f0aaa767",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/auto_trim.ts": "5df5091763543493dba1160f805652c67892d3ecf06293bbfecdac71ed3c7d90",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/default.ts": "bab4f1f3e38a6ea3673d6aaa8409ca79ec241daa07a18582b4f2549cc5532200",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/echo.ts": "26109b7d47d33621dd764136be665052a48b3e68aeda2bd961504702f14c829f",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/empty.ts": "59b9ac2e6e30db7cf505c1ade3169af0010d08bb96176ff25f10eb4ac13e217e",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/escape.ts": "1db6eb7b22f88bbf94d21636c9b156ec4868e10bbcfa7dc5eae7113c36ef7b8a",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/export.ts": "40308665aeee8edeab4618d1838c1843c03cba8a7803ed9a27fceadf7a10bbef",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/for.ts": "a893a3de2c5cab43d5018cb80718ea46377c172d550e7a8ead076f00c58d59bf",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/function.ts": "472bdbe0bffb7d38c59003b02510cf85a78a35927219bc6a02ac2d4fde8b6597",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/if.ts": "db13776a5b9e7988f65c27943c344bec7463c5f3162a06cc4da1a313d7109195",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/import.ts": "b6fb6cc922c0897d15918d10766bbbd51069336780acdc8bbf23922ed870a1b3",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/include.ts": "7b39ae093e4c25f0de5f0b174c00c06c30bf7092b55f00a58a64968fa8ceabde",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/js.ts": "f5a7fd8cc48cb1b1dc0b396e3d1fee4664cf28932dc5f5f301e38243e0e987dc",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/layout.ts": "9c90bb58cc5302af48b97320f8eb128b37bb29f6128d7a75c8dd7b6625b870e1",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/mod.ts": "2bd756b503b1d100014fa02f92e2e8d07d894c6297358232a685c4a1527908c7",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/set.ts": "cbe42b771a04203b6fc1c178e655fa2536ab90ae67e52c083cf7c71f37c62711",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/trim.ts": "8d33271327b09ffd8f569ebde85125b1324fa9538a54d6072ac97a9fb5d24264",
+ "https://cdn.jsdelivr.net/gh/ventojs/vento@2.4.0/plugins/unescape.ts": "1c56f0310c7757880df7684fc6b7bf9efd27fdb6b929b89626802f5a99cb93ee"
+ },
"workspace": {
"dependencies": [
"jsr:@std/assert@^1.0.19",
"jsr:@std/html@^1.0.7",
- "npm:@types/markdown-it@^14.2.0",
"npm:markdown-it-anchor@^9.2.1",
- "npm:markdown-it@^14.3.0"
+ "npm:markdown-it@15"
]
}
}
diff --git a/maak.scm b/maak.scm
new file mode 100644
index 0000000..5b58c78
--- /dev/null
+++ b/maak.scm
@@ -0,0 +1,66 @@
+(define-module (maak)
+ #:declarative? #t
+ #:use-module (maak maak))
+
+(define %deno "deno")
+
+(define (run-deno . args)
+ "Deno arguments helper"
+ ($ (cons %deno args)))
+
+(define (fmt)
+ "Format sources with deno fmt"
+ (log-info "Formatting source...")
+ (run-deno "fmt"))
+
+(define (fmt-check)
+ "Verify formatting without writing."
+ (run-deno "fmt" "--check"))
+
+(define (lint)
+ "Run deno lint."
+ (run-deno "lint"))
+
+(define (check)
+ "Type-check sources and JSDoc code blocks."
+ (run-deno "check" "--doc"))
+
+(define (test)
+ "Run the markdown-it unit tests."
+ (run-deno "test" "-A" "tests/mod_test.ts"))
+
+(define (test-lume)
+ "Run the Lume integration snapshots."
+ (run-deno "test" "-A" "tests/lume_test.ts"))
+
+(define (snap)
+ "Regenerate Lume snapshots."
+ (run-deno "test" "-A" "-u" "tests/lume_test.ts"))
+
+(define (ci)
+ "Full pipeline with coverage."
+ (fmt-check)
+ (lint)
+ (check)
+ (run-deno "test" "-A" "--coverage=coverage")
+ (run-deno "coverage" "coverage"))
+
+(define (publish-dry)
+ "Validate the package without uploading."
+ (run-deno "publish" "--dry-run"))
+
+(define (publish)
+ "Publish to JSR after the full pipeline."
+ (default)
+ (run-deno "publish"))
+
+(define (clean)
+ "Remove coverage output."
+ (delete-file-recursively "coverage"))
+
+(define (default)
+ "fmt-check + lint + check + test."
+ (fmt-check)
+ (lint)
+ (check)
+ (test))
diff --git a/mod.ts b/mod.ts
index 1b7733d..4f250b9 100644
--- a/mod.ts
+++ b/mod.ts
@@ -219,13 +219,13 @@ const renderList = (nodes: TocNode[], o: Resolved): string => {
* @throws {TypeError} See `resolve()` at the internal API.
*
* @example
- * ```ts
+ * ```ts ignore
* // Markdown: `[[toc]]` alone on a line.
* md.use(toc({ level: [2, 3], listType: "ul" }));
* ```
*
* @example
- * ```ts
+ * ```ts ignore
* const env = {};
* md.renderer.render(md.parse(src, env), {}, env);
* env.toc; // TocNode[]
diff --git a/tests/fixtures/bad-levels.md b/tests/fixtures/bad-levels.md
new file mode 100644
index 0000000..c065c81
--- /dev/null
+++ b/tests/fixtures/bad-levels.md
@@ -0,0 +1,5 @@
+${toc}
+
+## One
+
+#### Four
diff --git a/tests/fixtures/basic.md b/tests/fixtures/basic.md
new file mode 100644
index 0000000..a7802c9
--- /dev/null
+++ b/tests/fixtures/basic.md
@@ -0,0 +1,9 @@
+${toc}
+
+# Title
+
+## First
+
+### Nested
+
+## Second
diff --git a/tests/fixtures/code-blocks.md b/tests/fixtures/code-blocks.md
new file mode 100644
index 0000000..12cbc8a
--- /dev/null
+++ b/tests/fixtures/code-blocks.md
@@ -0,0 +1,7 @@
+${toc}
+
+## Real
+
+```
+## Not A Heading
+```
diff --git a/tests/fixtures/dupes.md b/tests/fixtures/dupes.md
new file mode 100644
index 0000000..a5e3d85
--- /dev/null
+++ b/tests/fixtures/dupes.md
@@ -0,0 +1,5 @@
+${toc}
+
+## Dupe
+
+## Dupe
diff --git a/tests/fixtures/empty.md b/tests/fixtures/empty.md
new file mode 100644
index 0000000..9191aad
--- /dev/null
+++ b/tests/fixtures/empty.md
@@ -0,0 +1 @@
+${toc}
diff --git a/tests/fixtures/heading-markup.md b/tests/fixtures/heading-markup.md
new file mode 100644
index 0000000..82f7075
--- /dev/null
+++ b/tests/fixtures/heading-markup.md
@@ -0,0 +1,5 @@
+${toc}
+
+## **Bold** y `Code`
+
+## Less < and More >
diff --git a/tests/fixtures/indented-details-urutau.md b/tests/fixtures/indented-details-urutau.md
new file mode 100644
index 0000000..4cd2053
--- /dev/null
+++ b/tests/fixtures/indented-details-urutau.md
@@ -0,0 +1,8 @@
+
+ Índice:
+
+ ${toc}
+
+
+
+## Título Urutaú
diff --git a/tests/fixtures/unicode.md b/tests/fixtures/unicode.md
new file mode 100644
index 0000000..ed15c93
--- /dev/null
+++ b/tests/fixtures/unicode.md
@@ -0,0 +1,3 @@
+${toc}
+
+## Ñandú año
diff --git a/tests/lume_tests.ts b/tests/lume_tests.ts
new file mode 100644
index 0000000..f260d83
--- /dev/null
+++ b/tests/lume_tests.ts
@@ -0,0 +1,18 @@
+import lume from "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/mod.ts";
+import { EmptyWriter } from "https://cdn.jsdelivr.net/gh/lumeland/lume@3.3.1/core/writer.ts";
+import { toc } from "../mod.ts";
+
+Deno.test("toc en lume", async (t: Deno.TestContext): Promise => {
+ const site = lume({ cwd: import.meta.dirname, src: "fixtures" }, {
+ markdown: {
+ options: { html: true },
+ plugins: [toc({ level: [2, 3], listType: "ul" })],
+ },
+ });
+ site.writer = new EmptyWriter(); // no escribe a disco
+ await site.build();
+
+ for (const page of site.pages) {
+ await t.assertSnapshot([page.outputPath, page.content]);
+ }
+});
diff --git a/tests/mod_test.ts b/tests/mod_test.ts
index 1680655..fd6ab07 100644
--- a/tests/mod_test.ts
+++ b/tests/mod_test.ts
@@ -5,13 +5,12 @@ import {
assertStringIncludes,
assertThrows,
} from "@std/assert";
-import MarkdownIt from "markdown-it";
+import MarkdownIt, { type MarkdownIt as MD } from "markdown-it";
import anchor from "markdown-it-anchor";
import { defaultSlugify, toc } from "../mod.ts";
import { TocNode, TocOptions } from "../types.ts";
-const mk = (o?: TocOptions): MarkdownIt =>
- new MarkdownIt({ html: true }).use(toc(o));
+const mk = (o?: TocOptions): MD => new MarkdownIt({ html: true }).use(toc(o));
Deno.test("placeholder variants", () => {
for (const p of ["${toc}", "[[toc]]", "[toc]", "[[_toc_]]", "[_TOC_]"]) {
@@ -57,21 +56,25 @@ Deno.test("level number is a minimum", () => {
});
Deno.test("reuses markdown-it-anchor ids even when registered first", () => {
- const md: MarkdownIt = new MarkdownIt()
+ const md: MD = new MarkdownIt()
.use(toc())
.use(anchor, { slugify: (s: string) => "x-" + s.toLowerCase() });
- const html = md.render("[[toc]]\n\n# Hello\n");
+ const html: string = md.render("[[toc]]\n\n# Hello\n");
assertMatch(html, /href="#x-hello"/);
assertMatch(html, / {
- const md: MarkdownIt = new MarkdownIt().use(toc()).use(
+ const md: MD = new MarkdownIt().use(toc()).use(
anchor,
);
const html: string = md.render("[[toc]]\n\n# A\n\n# A\n");
- const ids = [...html.matchAll(/ m[1]);
- const hrefs = [...html.matchAll(/href="#([^"]+)"/g)].map((m) => m[1]);
+ const ids: string[] = [...html.matchAll(/
+ m[1]
+ );
+ const hrefs: string[] = [...html.matchAll(/href="#([^"]+)"/g)].map((m) =>
+ m[1]
+ );
assertEquals(hrefs, ids);
});
@@ -137,7 +140,7 @@ Deno.test("two placeholders both render", () => {
});
Deno.test("reentrancy: parse A, parse B, render A", () => {
- const md: MarkdownIt = mk();
+ const md: MD = mk();
const a = md.parse("[[toc]]\n\n# AAA\n", {});
md.parse("[[toc]]\n\n# BBB\n", {});
assertMatch(md.renderer.render(a, md.options, {}), /AAA/);
@@ -181,7 +184,7 @@ Deno.test("defaultSlugify", () => {
});
Deno.test("permalink injection does not leak whitespace into labels", () => {
- const md: MarkdownIt = new MarkdownIt()
+ const md: MD = new MarkdownIt()
.use(toc())
.use(anchor, {
permalink: anchor.permalink.linkInsideHeader({
diff --git a/types.ts b/types.ts
index 6fe15bf..26335b3 100644
--- a/types.ts
+++ b/types.ts
@@ -112,8 +112,8 @@ export interface TocOptions {
* yourself with the provided helper or you own the XSS, your choice, hacker
*
* @example
- * ```ts
- * format: (text, escape) => escape(text) + " (top)"
+ * ```ts ignore
+ * format: (text , escape) => escape(text) + " (top)"
* ```
*/
format?: (text: string, escape: (s: string) => string) => string;