diff --git a/deno.lock b/deno.lock
index 2a021e66..df42e60f 100644
--- a/deno.lock
+++ b/deno.lock
@@ -1,11 +1,186 @@
{
"version": "4",
"specifiers": {
- "npm:github-slugger@2": "2.0.0"
+ "jsr:@deno/gfm@0.10": "0.10.0",
+ "jsr:@denosaurs/emoji@0.3": "0.3.1",
+ "jsr:@std/async@^1.0.8": "1.0.9",
+ "jsr:@std/collections@^1.0.9": "1.0.9",
+ "jsr:@std/front-matter@^1.0.5": "1.0.5",
+ "jsr:@std/path@^1.0.8": "1.0.8",
+ "jsr:@std/toml@^1.0.1": "1.0.2",
+ "jsr:@std/yaml@^1.0.5": "1.0.5",
+ "npm:github-slugger@2": "2.0.0",
+ "npm:he@^1.2.0": "1.2.0",
+ "npm:katex@0.16": "0.16.11",
+ "npm:marked-alert@2": "2.1.2_marked@12.0.2",
+ "npm:marked-footnote@^1.2.0": "1.2.4_marked@12.0.2",
+ "npm:marked-gfm-heading-id@^3.1.0": "3.2.0_marked@12.0.2",
+ "npm:marked@12": "12.0.2",
+ "npm:prismjs@^1.29.0": "1.29.0",
+ "npm:sanitize-html@^2.13.0": "2.13.1"
+ },
+ "jsr": {
+ "@deno/gfm@0.10.0": {
+ "integrity": "51708205e3559a4aeb6afb29d07c5bfafe7941f91bb360351ef6621de9a39527",
+ "dependencies": [
+ "jsr:@denosaurs/emoji",
+ "npm:github-slugger",
+ "npm:he",
+ "npm:katex",
+ "npm:marked",
+ "npm:marked-alert",
+ "npm:marked-footnote",
+ "npm:marked-gfm-heading-id",
+ "npm:prismjs",
+ "npm:sanitize-html"
+ ]
+ },
+ "@denosaurs/emoji@0.3.1": {
+ "integrity": "b0aed5f55dec99e83da7c9637fe0a36d1d6252b7c99deaaa3fc5dea3fcf3da8b"
+ },
+ "@std/async@1.0.9": {
+ "integrity": "c6472fd0623b3f3daae023cdf7ca5535e1b721dfbf376562c0c12b3fb4867f91"
+ },
+ "@std/collections@1.0.9": {
+ "integrity": "4f58104ead08a04a2199374247f07befe50ba01d9cca8cbb23ab9a0419921e71"
+ },
+ "@std/front-matter@1.0.5": {
+ "integrity": "abddc64030a33eb5bc524b8c73e7c417cea09177aaeb4abf75a56b540c4b6e60",
+ "dependencies": [
+ "jsr:@std/toml",
+ "jsr:@std/yaml"
+ ]
+ },
+ "@std/path@1.0.8": {
+ "integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be"
+ },
+ "@std/toml@1.0.2": {
+ "integrity": "5892ba489c5b512265a384238a8fe8dddbbb9498b4b210ef1b9f0336a423a39b",
+ "dependencies": [
+ "jsr:@std/collections"
+ ]
+ },
+ "@std/yaml@1.0.5": {
+ "integrity": "71ba3d334305ee2149391931508b2c293a8490f94a337eef3a09cade1a2a2742"
+ }
},
"npm": {
+ "commander@8.3.0": {
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
+ },
+ "deepmerge@4.3.1": {
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
+ },
+ "dom-serializer@2.0.0": {
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dependencies": [
+ "domelementtype",
+ "domhandler",
+ "entities"
+ ]
+ },
+ "domelementtype@2.3.0": {
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ },
+ "domhandler@5.0.3": {
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dependencies": [
+ "domelementtype"
+ ]
+ },
+ "domutils@3.1.0": {
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dependencies": [
+ "dom-serializer",
+ "domelementtype",
+ "domhandler"
+ ]
+ },
+ "entities@4.5.0": {
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
+ },
+ "escape-string-regexp@4.0.0": {
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ },
"github-slugger@2.0.0": {
"integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="
+ },
+ "he@1.2.0": {
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
+ },
+ "htmlparser2@8.0.2": {
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "dependencies": [
+ "domelementtype",
+ "domhandler",
+ "domutils",
+ "entities"
+ ]
+ },
+ "is-plain-object@5.0.0": {
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
+ },
+ "katex@0.16.11": {
+ "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==",
+ "dependencies": [
+ "commander"
+ ]
+ },
+ "marked-alert@2.1.2_marked@12.0.2": {
+ "integrity": "sha512-EFNRZ08d8L/iEIPLTlQMDjvwIsj03gxWCczYTht6DCiHJIZhMk4NK5gtPY9UqAYb09eV5VGT+jD4lp396E0I+w==",
+ "dependencies": [
+ "marked"
+ ]
+ },
+ "marked-footnote@1.2.4_marked@12.0.2": {
+ "integrity": "sha512-DB2Kl+wFh6YwZd70qABMY6WUkG1UuyqoNTFoDfGyG79Pz24neYtLBkB+45a7o72V7gkfvbC3CGzIYFobxfMT1Q==",
+ "dependencies": [
+ "marked"
+ ]
+ },
+ "marked-gfm-heading-id@3.2.0_marked@12.0.2": {
+ "integrity": "sha512-Xfxpr5lXLDLY10XqzSCA9l2dDaiabQUgtYM9hw8yunyVsB/xYBRpiic6BOiY/EAJw1ik1eWr1ET1HKOAPZBhXg==",
+ "dependencies": [
+ "github-slugger",
+ "marked"
+ ]
+ },
+ "marked@12.0.2": {
+ "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q=="
+ },
+ "nanoid@3.3.7": {
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
+ },
+ "parse-srcset@1.0.2": {
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q=="
+ },
+ "picocolors@1.1.1": {
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
+ },
+ "postcss@8.4.49": {
+ "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+ "dependencies": [
+ "nanoid",
+ "picocolors",
+ "source-map-js"
+ ]
+ },
+ "prismjs@1.29.0": {
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
+ },
+ "sanitize-html@2.13.1": {
+ "integrity": "sha512-ZXtKq89oue4RP7abL9wp/9URJcqQNABB5GGJ2acW1sdO8JTVl92f4ygD7Yc9Ze09VAZhnt2zegeU0tbNsdcLYg==",
+ "dependencies": [
+ "deepmerge",
+ "escape-string-regexp",
+ "htmlparser2",
+ "is-plain-object",
+ "parse-srcset",
+ "postcss"
+ ]
+ },
+ "source-map-js@1.2.1": {
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
}
},
"workspace": {
diff --git a/frontend/docs/about-slow-types.md b/frontend/docs/about-slow-types.md
index 3ea8141b..444223ef 100644
--- a/frontend/docs/about-slow-types.md
+++ b/frontend/docs/about-slow-types.md
@@ -413,7 +413,7 @@ to `jsr publish` or `deno publish`.
When using Deno, one can supress slow type diagnostics from being surfaced in
`deno lint` by adding an exclude for the `no-slow-types` rule. This can be done
by specifying `--rules-exclude=no-slow-types` when running `deno lint`, or by
-adding the following to your `deno.json` configuration file:
+adding the following to your `deno.json(c)` configuration file:
```json
{
diff --git a/frontend/docs/introduction.md b/frontend/docs/introduction.md
index dbfaea1c..2c7ff745 100644
--- a/frontend/docs/introduction.md
+++ b/frontend/docs/introduction.md
@@ -80,7 +80,7 @@ like the name, version, and entrypoint(s). The
modules should be importable by users of your package.
```json
-// jsr.json / deno.json
+// jsr.json / deno.json(c)
{
"name": "@luca/greet",
"version": "1.0.0",
diff --git a/frontend/docs/migrate-x-to-jsr.md b/frontend/docs/migrate-x-to-jsr.md
index 6391ed84..b284c0d4 100644
--- a/frontend/docs/migrate-x-to-jsr.md
+++ b/frontend/docs/migrate-x-to-jsr.md
@@ -50,8 +50,8 @@ build for your platform with:
deno upgrade --canary
```
-Then, from within your package folder (probably the one with your `deno.json` or
-`mod.ts`), execute the following command:
+Then, from within your package folder (probably the one with your `deno.json(c)`
+or `mod.ts`), execute the following command:
```bash
deno run -Ar jsr:@deno/x-to-jsr
@@ -99,7 +99,7 @@ _Vendor dependencies_
You can also
[vendor your dependencies](https://docs.deno.com/runtime/manual/basics/vendoring/)
-by adding `"vendor": true` to your `deno.json` file. This will download local
+by adding `"vendor": true` to your `deno.json(c)` file. This will download local
versions of your HTTPS dependencies to a `vendor` directory when the project is
ran.
diff --git a/frontend/docs/native-imports.md b/frontend/docs/native-imports.md
index 8f7f3de8..6dc2da74 100644
--- a/frontend/docs/native-imports.md
+++ b/frontend/docs/native-imports.md
@@ -54,7 +54,7 @@ constraints in your code, you can use
to map the `jsr:` scheme to a different prefix.
In **Deno** you can do this by adding a line to the `"imports"` section in your
-`deno.json`. You can do this manually, or by using the `deno add` command:
+`deno.json(c)`. You can do this manually, or by using the `deno add` command:
```diff
{
@@ -64,7 +64,7 @@ In **Deno** you can do this by adding a line to the `"imports"` section in your
}
```
-You can then import packages using the alias defined in the `deno.json`:
+You can then import packages using the alias defined in the `deno.json(c)`:
```ts
import { camelCase } from "@luca/cases";
diff --git a/frontend/docs/npm-compatibility.md b/frontend/docs/npm-compatibility.md
index 3d1691e4..3a3fc880 100644
--- a/frontend/docs/npm-compatibility.md
+++ b/frontend/docs/npm-compatibility.md
@@ -172,7 +172,7 @@ are generated by JSR, and contain all source code reachable from the entrypoint
of the package. This source code is transpiled to JavaScript, and TypeScript
type declarations (`.d.ts` files) are generated for all TypeScript files. The
tarball also contains a `package.json` file that contains the `exports` field
-from the original `jsr.json` / `deno.json` file.
+from the original `jsr.json` / `deno.json(c)` file.
Yanked versions of packages are not advertised in the package version manifest
of the npm registry endpoint. Tarballs for yanked versions are still available
diff --git a/frontend/docs/package-configuration.md b/frontend/docs/package-configuration.md
index 3d1dae77..3baba0ae 100644
--- a/frontend/docs/package-configuration.md
+++ b/frontend/docs/package-configuration.md
@@ -9,7 +9,7 @@ file can instead be placed in the
[`deno.json`](https://docs.deno.com/runtime/manual/getting_started/configuration_file).
```json
-// jsr.json / deno.json
+// jsr.json / deno.json(c)
{
"name": "@luca/greet",
"version": "1.0.0",
@@ -36,7 +36,7 @@ your package. The `exports` field can either be specified as a single string, or
as an object mapping entrypoint names to paths in your package.
```json
-// jsr.json / deno.json
+// jsr.json / deno.json(c)
{
"name": "@luca/greet",
"version": "1.0.0",
@@ -58,7 +58,7 @@ you only have a single entrypoint in your package. It is semantically equivalent
to specifying a default entrypoint in the object form.
```diff
-// deno.json
+// deno.json(c)
{
"name": "@luca/greet",
"version": "1.0.0",
@@ -72,9 +72,9 @@ to specifying a default entrypoint in the object form.
### `include` and `exclude`
You can also use the `include` and `exclude` options to include and exclude
-files during publishing. When using a `deno.json`, you can use `publish.include`
-and `publish.exclude` to include and exclude files only for publishing, rather
-than for all Deno subcommands.
+files during publishing. When using a `deno.json(c)`, you can use
+`publish.include` and `publish.exclude` to include and exclude files only for
+publishing, rather than for all Deno subcommands.
[Learn more about filtering files](/docs/publishing-packages#filtering-files).
## JSON Schema
diff --git a/frontend/docs/publishing-packages.md b/frontend/docs/publishing-packages.md
index 0b8078f5..4f647ded 100644
--- a/frontend/docs/publishing-packages.md
+++ b/frontend/docs/publishing-packages.md
@@ -101,7 +101,7 @@ export * from "./greet.ts";
### Importing npm packages
You may import npm packages specified in the `"dependencies"` of a
-`package.json`, ones specified in an import map or `deno.json`, or ones
+`package.json`, ones specified in an import map or `deno.json(c)`, or ones
specified in source code using `npm:` specifiers.
```json
@@ -123,7 +123,7 @@ import * as express from "npm:express@4";
### Importing JSR packages
You may import JSR packages specified in the `"dependencies"` of a
-`package.json`, ones specified in an import map or `deno.json`, or ones
+`package.json`, ones specified in an import map or `deno.json(c)`, or ones
specified in source code using `jsr:` specifiers.
[Learn more about using packages.](/docs/using-packages)
@@ -161,13 +161,13 @@ export function readJsonFile(path: string) {
You may use a dependency manifest like a `package.json`, or an
[import map](https://docs.deno.com/runtime/manual/basics/import_maps) (like the
-`deno.json` file) to simplify your imports. During publishing, `jsr publish` /
-`deno publish` will automatically rewrite the specifiers in your source code to
-fully qualified specifiers that do not require an import map / `package.json`
+`deno.json(c)` file) to simplify your imports. During publishing, `jsr publish`
+/ `deno publish` will automatically rewrite the specifiers in your source code
+to fully qualified specifiers that do not require an import map / `package.json`
anymore.
```json
-// import_map.json / deno.json
+// import_map.json / deno.json(c)
{
"imports": {
"@luca/greet": "jsr:@luca/greet@1",
@@ -201,10 +201,10 @@ consumers of your package.
After you have written your code, you must add a config file to your package.
This file contains package metadata like the name, version, and entrypoint(s).
This file should be named `jsr.json`. Deno users can also include the required
-JSR properties in their `deno.json` to avoid having to create another file.
+JSR properties in their `deno.json(c)` to avoid having to create another file.
```json
-// jsr.json / deno.json
+// jsr.json / deno.json(c)
{
"name": "@luca/greet",
"version": "1.0.0",
@@ -346,16 +346,16 @@ jobs:
This workflow will run every time you push to the `main` branch of your
repository. It will publish your package to JSR, and will automatically use the
-correct version number based on the version in your `jsr.json` file.
-`jsr publish` will not attempt to publish if the version specified in your
-`jsr.json` file is already published to JSR.
+correct version number based on the version in your `jsr.json`/`deno.json(c)`
+file. `jsr publish` will not attempt to publish if the version specified in your
+`jsr.json`/`deno.json(c)` file is already published to JSR.
## Filtering files
`jsr publish` will ignore files that are listed in a `.gitignore` file in the
root of your package. Additionally, you can specify the `include` and `exclude`
-fields in your `jsr.json` / `deno.json` file to include, ignore, or un-gitignore
-specific files.
+fields in your `jsr.json` / `deno.json(c)` file to include, ignore, or
+un-gitignore specific files.
For example, to only selectively include certain files, you can specify a glob
that matches all files by using the `include` option:
@@ -398,13 +398,13 @@ You may also exclude certain files via the `exclude` option:
}
```
-When using Deno, the `include` and `exclude` options in `deno.json` are used for
-many other Deno subcommands as well, such as `deno test`, `deno lint` and
+When using Deno, the `include` and `exclude` options in `deno.json(c)` are used
+for many other Deno subcommands as well, such as `deno test`, `deno lint` and
`deno fmt`. You can use `publish.include` and `publish.exclude` in your
-`deno.json` file to specify options that only apply to `deno publish`.
+`deno.json(c)` file to specify options that only apply to `deno publish`.
```json
-// deno.json
+// deno.json(c)
{
"name": "@luca/greet",
"version": "1.0.0",
@@ -431,7 +431,7 @@ be ignored when publishing.
This may however be inconvenient if you want to publish the `dist/` directory,
because you have `"exports"` pointing to it (or a subdirectory of it). In this
case, you can un-ignore the `dist/` directory by using a negation in the
-`exclude` field in your `jsr.json` / `deno.json` file.
+`exclude` field in your `jsr.json` / `deno.json(c)` file.
```json
// jsr.json
diff --git a/frontend/docs/troubleshooting.md b/frontend/docs/troubleshooting.md
index 4adf704f..8544ecc2 100644
--- a/frontend/docs/troubleshooting.md
+++ b/frontend/docs/troubleshooting.md
@@ -16,7 +16,7 @@ The package being published contains a symlink or hardlink. JSR does not support
symlinks or hardlinks in packages. You can fix this error by removing the
symlink or hardlink from your package, or by
[excluding it](/docs/publishing-packages#ignoring-files) in your `jsr.json` /
-`deno.json`.
+`deno.json(c)`.
To find the symlink or hardlink, run the following command in your package
directory:
@@ -37,7 +37,7 @@ The package tarball contains an entry that is not a regular file or directory.
JSR only supports regular files and directories in package tarballs. You can fix
this error by removing the invalid entry from your package tarball or
[excluding it](/docs/publishing-packages#ignoring-files) in your `jsr.json` /
-`deno.json`.
+`deno.json(c)`.
### `invalidPath`
@@ -51,7 +51,7 @@ troublesome in URLs, and paths where multiple casings of the same path exist.
You can fix this error by changing the path of the file or directory in your
package to a path that JSR allows, removing the file or directory from your
package, or [excluding it](/docs/publishing-packages#ignoring-files) in your
-`jsr.json` / `deno.json`.
+`jsr.json` / `deno.json(c)`.
Path rules are as follows:
diff --git a/frontend/docs/using-packages.md b/frontend/docs/using-packages.md
index 5d527161..f5e5bebd 100644
--- a/frontend/docs/using-packages.md
+++ b/frontend/docs/using-packages.md
@@ -29,7 +29,7 @@ pnpm dlx jsr add @luca/cases
If you're using Deno, the `deno add` command will add an
[import map](https://docs.deno.com/runtime/manual/basics/import_maps) entry for
-the JSR module you specified in a `deno.json` file. That entry will look
+the JSR module you specified in a `deno.json(c)` file. That entry will look
something like this:
```json
diff --git a/frontend/docs/with/deno.md b/frontend/docs/with/deno.md
index e10d0ef5..8df7ee66 100644
--- a/frontend/docs/with/deno.md
+++ b/frontend/docs/with/deno.md
@@ -12,7 +12,7 @@ specifiers.
Deno supports web standard
[import maps](https://docs.deno.com/runtime/manual/basics/import_maps), the
`deno.json` configuration file can act as an import map with the `"imports"`
-field. You can add JSR imports manually to `deno.json`, or you can add them
+field. You can add JSR imports manually to `deno.json(c)`, or you can add them
using the `deno add` command.
In this example, we add the most recent version of
@@ -22,8 +22,8 @@ In this example, we add the most recent version of
deno add jsr:@luca/flag
```
-After executing this command, you will have an import map entry in `deno.json`
-that looks something like this:
+After executing this command, you will have an import map entry in
+`deno.json(c)` that looks something like this:
```json
{
diff --git a/frontend/routes/package/publish.tsx b/frontend/routes/package/publish.tsx
index a1a5518f..5d0f1624 100644
--- a/frontend/routes/package/publish.tsx
+++ b/frontend/routes/package/publish.tsx
@@ -57,8 +57,8 @@ export default define.page