diff --git a/.changeset/chubby-nails-look.md b/.changeset/chubby-nails-look.md
deleted file mode 100644
index a142b5a6a8..0000000000
--- a/.changeset/chubby-nails-look.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'myst-to-typst': patch
-'myst-cli': patch
-'mystmd': patch
----
-
-Fix \left| and \right| delimeters (rely on upstream fix in tex-to-typst)
diff --git a/.changeset/citation-html-stop.md b/.changeset/citation-html-stop.md
deleted file mode 100644
index ce2f6e4d11..0000000000
--- a/.changeset/citation-html-stop.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"markdown-it-myst": patch
----
-
-Stop citation label parsing at `<` so following HTML and autolinks are preserved
diff --git a/.changeset/fine-meals-fall.md b/.changeset/fine-meals-fall.md
deleted file mode 100644
index b888d39a98..0000000000
--- a/.changeset/fine-meals-fall.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-"myst-cli": patch
-"myst-execute": patch
----
-
-Only copy thebe JS when necessary
diff --git a/.changeset/index-redirect-head-end.md b/.changeset/index-redirect-head-end.md
deleted file mode 100644
index cdeec6c66e..0000000000
--- a/.changeset/index-redirect-head-end.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'myst-cli': patch
-'mystmd': patch
----
-
-Append the index-redirect script to the end of `
` instead of the beginning, so other site `` content (e.g. preloads, meta tags) is not affected by the script's placement.
diff --git a/.changeset/legal-flowers-drum.md b/.changeset/legal-flowers-drum.md
deleted file mode 100644
index 58a526b146..0000000000
--- a/.changeset/legal-flowers-drum.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'myst-to-typst': patch
----
-
-Add passthrough `card` wrapping the card content such that custom styling can be applied by the `typst` template
diff --git a/.changeset/lemon-houses-retire.md b/.changeset/lemon-houses-retire.md
deleted file mode 100644
index b6adc72d79..0000000000
--- a/.changeset/lemon-houses-retire.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'myst-execute': minor
-'myst-frontmatter': minor
-'myst-config': minor
-'myst-cli': minor
----
-
-Add static_files option to project frontmatter for copying files into build output with stable URLs
diff --git a/.changeset/polite-eels-do.md b/.changeset/polite-eels-do.md
new file mode 100644
index 0000000000..4bf77e608d
--- /dev/null
+++ b/.changeset/polite-eels-do.md
@@ -0,0 +1,5 @@
+---
+'myst-spec': patch
+---
+
+Drop JSON Schema pipeline in favour of exported TypeScript
diff --git a/.changeset/proud-items-smash.md b/.changeset/proud-items-smash.md
new file mode 100644
index 0000000000..c386ba2199
--- /dev/null
+++ b/.changeset/proud-items-smash.md
@@ -0,0 +1,5 @@
+---
+'myst-spec': patch
+---
+
+Remove old docs for myst-spec
diff --git a/.changeset/proud-mangos-begin.md b/.changeset/proud-mangos-begin.md
new file mode 100644
index 0000000000..488c94e840
--- /dev/null
+++ b/.changeset/proud-mangos-begin.md
@@ -0,0 +1,6 @@
+---
+'myst-transforms': patch
+'mystmd': patch
+---
+
+Allow `grid` directives to be used in `figure` directives
diff --git a/.changeset/public-worms-kiss.md b/.changeset/public-worms-kiss.md
deleted file mode 100644
index 5d06524b06..0000000000
--- a/.changeset/public-worms-kiss.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'myst-migrate': patch
-'myst-cli': patch
-'mystmd': patch
----
-
-Allow for myst.yaml as well as myst.yml.
diff --git a/.changeset/salty-oranges-teach.md b/.changeset/salty-oranges-teach.md
deleted file mode 100644
index 9ae2d3e02f..0000000000
--- a/.changeset/salty-oranges-teach.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"myst-execute": patch
----
-
-Choose a random port on execution
diff --git a/.changeset/tangy-mirrors-double.md b/.changeset/tangy-mirrors-double.md
new file mode 100644
index 0000000000..3122ca2fa6
--- /dev/null
+++ b/.changeset/tangy-mirrors-double.md
@@ -0,0 +1,6 @@
+---
+'markdown-it-myst': patch
+'myst-execute': patch
+---
+
+Fix dependencies / types
diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml
index c5e92a14e4..e31e8cd2a4 100644
--- a/.github/actions/install/action.yml
+++ b/.github/actions/install/action.yml
@@ -20,7 +20,7 @@ runs:
# Even though we use bun for test runners, the mystmd bundle uses node,
# so we need to install node and test against multiple versions.
- name: Setup Node.js
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v6
with:
node-version: ${{ inputs.node }}
- name: Setup Bun
@@ -28,7 +28,7 @@ runs:
with:
bun-version: ${{ inputs.bun-version }}
- name: Install python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.10'
cache: 'pip'
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2c48c28dc9..e5c3071302 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -10,7 +10,7 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
@@ -36,7 +36,7 @@ jobs:
name: Testing with bun and node ${{ matrix.node }}
steps:
- name: Checkout Repo
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
@@ -52,11 +52,11 @@ jobs:
name: Running test docs build
steps:
- name: Checkout Repo
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
- - uses: actions/setup-python@v5
+ - uses: actions/setup-python@v6
with:
python-version: "3.x"
- name: Install myst
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index e4954478b3..69005d1831 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -16,7 +16,7 @@ jobs:
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout Repo
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
diff --git a/.github/workflows/enforce-label.yml b/.github/workflows/enforce-label.yml
index 500be8f63b..aa36fda578 100644
--- a/.github/workflows/enforce-label.yml
+++ b/.github/workflows/enforce-label.yml
@@ -11,7 +11,7 @@ jobs:
steps:
# As this is a pull_request_target, we'll get `main` here
- name: Checkout contents
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Add labels
uses: actions/labeler@v6
diff --git a/.github/workflows/publish-github-release.yml b/.github/workflows/publish-github-release.yml
index ef53d49eb6..7e6f419b77 100644
--- a/.github/workflows/publish-github-release.yml
+++ b/.github/workflows/publish-github-release.yml
@@ -20,7 +20,7 @@ jobs:
contents: write
steps:
- name: Checkout Repo
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
# Get the date of the latest GitHub release
- name: Get previous release tag
@@ -36,7 +36,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml
index 1e89a43d7e..98fa81040d 100644
--- a/.github/workflows/python-ci.yml
+++ b/.github/workflows/python-ci.yml
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
@@ -31,7 +31,7 @@ jobs:
- name: Build Python package
run: pipx run hatch -- build
working-directory: packages/mystmd-py
- - uses: actions/upload-artifact@v4
+ - uses: actions/upload-artifact@v7
with:
name: package
path: packages/mystmd-py/dist/mystmd*.whl
@@ -43,11 +43,11 @@ jobs:
needs: [build-package]
steps:
- name: Checkout Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
- - uses: actions/download-artifact@v4
+ - uses: actions/download-artifact@v8
with:
name: package
- name: Install myst from package
@@ -63,11 +63,11 @@ jobs:
needs: [build-package]
steps:
- name: Checkout Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
- - uses: actions/download-artifact@v4
+ - uses: actions/download-artifact@v8
with:
name: package
- name: Run myst and expect failure
@@ -82,11 +82,11 @@ jobs:
needs: [build-package]
steps:
- name: Checkout Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
- - uses: actions/download-artifact@v4
+ - uses: actions/download-artifact@v8
with:
name: package
- name: Run myst with nodeenv and expect success
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index aa36100f01..18e1e9563e 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -25,7 +25,7 @@ jobs:
published: ${{ steps.changesets.outputs.published }}
steps:
- name: Checkout Repo
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
@@ -52,12 +52,12 @@ jobs:
python -m build
working-directory: packages/mystmd-py
- name: Store the Python packages
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: python-package-distributions
path: packages/mystmd-py/dist/
- name: Store the JS packages
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: js-package-distributions
path: packages/mystmd/dist/
@@ -75,7 +75,7 @@ jobs:
id-token: write
steps:
- name: Download all the dists
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v8
with:
name: python-package-distributions
path: dist/
@@ -89,7 +89,7 @@ jobs:
tag_name: ${{ steps.get_tag.outputs.tag_name }}
steps:
- name: Checkout Repo
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Get tag name from package.json
id: get_tag
run: |
diff --git a/bun.lock b/bun.lock
index d03c0ae379..faa87ae355 100644
--- a/bun.lock
+++ b/bun.lock
@@ -82,10 +82,11 @@
},
"packages/markdown-it-myst": {
"name": "markdown-it-myst",
- "version": "1.0.16",
+ "version": "1.0.17",
"dependencies": {
"js-yaml": "^4.1.0",
"vfile": "^5.3.7",
+ "vfile-message": "^3.0.0",
},
"devDependencies": {
"markdown-it-footnote": "^4.0.0",
@@ -97,7 +98,7 @@
},
"packages/myst-cli": {
"name": "myst-cli",
- "version": "1.9.1",
+ "version": "1.10.1",
"dependencies": {
"@jupyterlab/services": "^7.3.0",
"@reduxjs/toolkit": "^2.1.0",
@@ -127,9 +128,9 @@
"meca": "^1.0.8",
"mime-types": "^2.1.35",
"myst-cli-utils": "^2.0.14",
- "myst-common": "^1.9.5",
- "myst-config": "^1.9.5",
- "myst-execute": "^0.3.5",
+ "myst-common": "^1.10.0",
+ "myst-config": "^1.10.0",
+ "myst-execute": "^0.4.0",
"myst-ext-button": "^0.0.1",
"myst-ext-card": "^1.0.9",
"myst-ext-exercise": "^1.0.9",
@@ -138,20 +139,20 @@
"myst-ext-proof": "^1.0.12",
"myst-ext-reactive": "^1.0.9",
"myst-ext-tabs": "^1.0.9",
- "myst-frontmatter": "^1.9.5",
- "myst-migrate": "^1.9.1",
- "myst-parser": "^1.7.2",
+ "myst-frontmatter": "^1.10.0",
+ "myst-migrate": "^1.10.1",
+ "myst-parser": "^1.7.3",
"myst-spec": "^0.0.5",
- "myst-spec-ext": "^1.9.5",
+ "myst-spec-ext": "^1.10.0",
"myst-templates": "^1.0.27",
"myst-to-docx": "^1.0.16",
"myst-to-ipynb": "^1.0.15",
"myst-to-jats": "^1.0.35",
"myst-to-md": "^1.0.16",
"myst-to-tex": "^1.0.46",
- "myst-to-typst": "^0.0.37",
+ "myst-to-typst": "^0.0.38",
"myst-toc": "^0.1.4",
- "myst-transforms": "^1.3.49",
+ "myst-transforms": "^1.3.50",
"nanoid": "^5.1.6",
"nbtx": "^0.4.0",
"node-fetch": "^3.3.1",
@@ -203,10 +204,10 @@
},
"packages/myst-common": {
"name": "myst-common",
- "version": "1.9.5",
+ "version": "1.10.0",
"dependencies": {
"mdast": "^3.0.0",
- "myst-frontmatter": "^1.9.5",
+ "myst-frontmatter": "^1.10.0",
"myst-spec": "^0.0.5",
"nanoid": "^5.1.6",
"unified": "^10.1.2",
@@ -219,16 +220,16 @@
"devDependencies": {
"@jupyterlab/nbformat": "^3.5.2",
"@lumino/coreutils": "^2.0.0",
- "myst-spec-ext": "^1.9.5",
+ "myst-spec-ext": "^1.10.0",
"unist-builder": "3.0.0",
},
},
"packages/myst-config": {
"name": "myst-config",
- "version": "1.9.5",
+ "version": "1.10.0",
"dependencies": {
- "myst-common": "^1.9.5",
- "myst-frontmatter": "^1.9.5",
+ "myst-common": "^1.10.0",
+ "myst-frontmatter": "^1.10.0",
"simple-validators": "^1.2.0",
},
"devDependencies": {
@@ -237,14 +238,14 @@
},
"packages/myst-directives": {
"name": "myst-directives",
- "version": "1.7.2",
+ "version": "1.7.3",
"dependencies": {
"classnames": "^2.3.2",
"csv-parse": "^5.5.5",
"js-yaml": "^4.1.0",
"json5": "^1.0.2",
- "myst-common": "^1.9.5",
- "myst-spec-ext": "^1.9.5",
+ "myst-common": "^1.10.0",
+ "myst-spec-ext": "^1.10.0",
"nanoid": "^5.1.6",
"unist-util-select": "^4.0.3",
"vfile": "^5.3.7",
@@ -252,14 +253,14 @@
},
"packages/myst-execute": {
"name": "myst-execute",
- "version": "0.3.5",
+ "version": "0.4.0",
"dependencies": {
"@jupyterlab/nbformat": "^3.5.2",
"@jupyterlab/services": "^7.3.0",
"chalk": "^5.2.0",
"get-port": "^6.1.2",
"myst-cli-utils": "^2.0.13",
- "myst-common": "^1.9.3",
+ "myst-common": "^1.10.0",
"node-fetch": "^3.3.0",
"unist-util-select": "^4.0.3",
"vfile": "^5.3.7",
@@ -353,7 +354,7 @@
},
"packages/myst-frontmatter": {
"name": "myst-frontmatter",
- "version": "1.9.5",
+ "version": "1.10.0",
"dependencies": {
"credit-roles": "^2.1.0",
"doi-utils": "^2.0.5",
@@ -372,7 +373,7 @@
},
"packages/myst-migrate": {
"name": "myst-migrate",
- "version": "1.9.1",
+ "version": "1.10.1",
"dependencies": {
"unist-util-select": "^4.0.3",
"unist-util-visit": "^4.1.2",
@@ -385,7 +386,7 @@
},
"packages/myst-parser": {
"name": "myst-parser",
- "version": "1.7.2",
+ "version": "1.7.3",
"dependencies": {
"@types/markdown-it": "^13.0.0",
"he": "^1.2.0",
@@ -395,12 +396,11 @@
"markdown-it-dollarmath": "^0.5.0",
"markdown-it-footnote": "^4.0.0",
"markdown-it-front-matter": "^0.2.3",
- "markdown-it-myst": "1.0.16",
- "markdown-it-myst-extras": "0.3.0",
+ "markdown-it-myst": "1.0.17",
"markdown-it-task-lists": "^2.1.1",
- "myst-common": "^1.9.5",
- "myst-directives": "^1.7.2",
- "myst-roles": "^1.7.2",
+ "myst-common": "^1.10.0",
+ "myst-directives": "^1.7.3",
+ "myst-roles": "^1.7.3",
"myst-spec": "^0.0.5",
"unified": "^10.1.1",
"unist-builder": "^3.0.0",
@@ -416,32 +416,29 @@
"@types/js-yaml": "^4.0.5",
"@types/mdast": "^3.0.10",
"js-yaml": "^4.1.0",
- "myst-to-html": "^1.7.2",
- "myst-transforms": "^1.3.49",
+ "myst-to-html": "^1.7.3",
+ "myst-transforms": "^1.3.50",
"rehype-stringify": "^9.0.3",
},
},
"packages/myst-roles": {
"name": "myst-roles",
- "version": "1.7.2",
+ "version": "1.7.3",
"dependencies": {
- "myst-common": "^1.9.5",
- "myst-spec-ext": "^1.9.5",
+ "myst-common": "^1.10.0",
+ "myst-spec-ext": "^1.10.0",
},
},
"packages/myst-spec": {
"name": "myst-spec",
"version": "0.0.5",
"devDependencies": {
- "ajv": "^8.17.1",
- "ajv-formats": "^3.0.1",
- "js-yaml": "^4.1.0",
- "json-schema-to-typescript": "^15.0.4",
+ "copyfiles": "^2.4.1",
},
},
"packages/myst-spec-ext": {
"name": "myst-spec-ext",
- "version": "1.9.5",
+ "version": "1.10.0",
"dependencies": {
"myst-spec": "^0.0.5",
},
@@ -482,7 +479,7 @@
},
"packages/myst-to-html": {
"name": "myst-to-html",
- "version": "1.7.2",
+ "version": "1.7.3",
"dependencies": {
"@types/markdown-it": "^13.0.1",
"classnames": "^2.3.2",
@@ -492,7 +489,7 @@
"mdast": "^3.0.0",
"mdast-util-find-and-replace": "^2.1.0",
"mdast-util-to-hast": "^12.3.0",
- "myst-common": "^1.9.5",
+ "myst-common": "^1.10.0",
"rehype-format": "^4.0.1",
"rehype-parse": "^8.0.4",
"rehype-remark": "^9.1.2",
@@ -589,11 +586,11 @@
},
"packages/myst-to-typst": {
"name": "myst-to-typst",
- "version": "0.0.37",
+ "version": "0.0.38",
"dependencies": {
- "myst-common": "^1.9.4",
- "myst-frontmatter": "^1.9.4",
- "myst-spec-ext": "^1.9.4",
+ "myst-common": "^1.10.0",
+ "myst-frontmatter": "^1.10.0",
+ "myst-spec-ext": "^1.10.0",
"tex-to-typst": "^0.0.20",
"unist-util-select": "^4.0.3",
"vfile-reporter": "^7.0.4",
@@ -608,7 +605,7 @@
},
"packages/myst-transforms": {
"name": "myst-transforms",
- "version": "1.3.49",
+ "version": "1.3.50",
"dependencies": {
"doi-utils": "^2.0.5",
"hast-util-from-html": "^2.0.1",
@@ -617,11 +614,11 @@
"js-yaml": "^4.1.0",
"katex": "^0.15.2",
"mdast-util-find-and-replace": "^2.1.0",
- "myst-common": "^1.9.5",
- "myst-frontmatter": "^1.9.5",
+ "myst-common": "^1.10.0",
+ "myst-frontmatter": "^1.10.0",
"myst-spec": "^0.0.5",
- "myst-spec-ext": "^1.9.5",
- "myst-to-html": "1.7.2",
+ "myst-spec-ext": "^1.10.0",
+ "myst-to-html": "1.7.3",
"rehype-parse": "^8.0.4",
"rehype-remark": "^9.1.2",
"unified": "^10.0.0",
@@ -641,7 +638,7 @@
},
"packages/mystmd": {
"name": "mystmd",
- "version": "1.9.1",
+ "version": "1.10.1",
"bin": {
"myst": "./dist/myst.cjs",
},
@@ -687,8 +684,6 @@
"packages": {
"@aashutoshrathi/word-wrap": ["@aashutoshrathi/word-wrap@1.2.6", "", {}, "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA=="],
- "@apidevtools/json-schema-ref-parser": ["@apidevtools/json-schema-ref-parser@11.9.3", "", { "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", "js-yaml": "^4.1.0" } }, "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ=="],
-
"@babel/parser": ["@babel/parser@7.24.4", "", { "bin": { "parser": "bin/babel-parser.js" } }, "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg=="],
"@babel/runtime": ["@babel/runtime@7.28.4", "", {}, "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="],
@@ -817,8 +812,6 @@
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
- "@jsdevtools/ono": ["@jsdevtools/ono@7.1.3", "", {}, "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="],
-
"@jupyter/ydoc": ["@jupyter/ydoc@3.1.0", "", { "dependencies": { "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0", "@lumino/coreutils": "^1.11.0 || ^2.0.0", "@lumino/disposable": "^1.10.0 || ^2.0.0", "@lumino/signaling": "^1.10.0 || ^2.0.0", "y-protocols": "^1.0.5", "yjs": "^13.5.40" } }, "sha512-+hLNUBZr8Zz8NiuaoYKINDURDJHbjFGxg8EcSU52y+rBe412TsoFxfPSng4eP7w3cZFrVlm7D+8K0nAMHxj0ZQ=="],
"@jupyterlab/coreutils": ["@jupyterlab/coreutils@6.4.8", "", { "dependencies": { "@lumino/coreutils": "^2.2.1", "@lumino/disposable": "^2.1.4", "@lumino/signaling": "^2.1.4", "minimist": "~1.2.0", "path-browserify": "^1.0.0", "url-parse": "~1.5.4" } }, "sha512-y7NGkh31fJaRMDGPfi6uwUeP3eCJrwNSVqmEo0bN9qxiJsysRGOBKPAFuFUS3IKD/au79EwyKHgxhBZxLwiqBQ=="],
@@ -977,8 +970,6 @@
"@types/linkify-it": ["@types/linkify-it@3.0.2", "", {}, "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA=="],
- "@types/lodash": ["@types/lodash@4.17.21", "", {}, "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ=="],
-
"@types/markdown-it": ["@types/markdown-it@13.0.9", "", { "dependencies": { "@types/linkify-it": "^3", "@types/mdurl": "^1" } }, "sha512-1XPwR0+MgXLWfTn9gCsZ55AHOKW1WN+P9vr0PaQh5aerR9LLQXUbjfEAFhjmEmyoYFWAyuN2Mqkn40MZ4ukjBw=="],
"@types/mdast": ["@types/mdast@3.0.12", "", { "dependencies": { "@types/unist": "^2" } }, "sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg=="],
@@ -1295,6 +1286,8 @@
"cookie-signature": ["cookie-signature@1.0.6", "", {}, "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="],
+ "copyfiles": ["copyfiles@2.4.1", "", { "dependencies": { "glob": "^7.0.5", "minimatch": "^3.0.3", "mkdirp": "^1.0.4", "noms": "0.0.0", "through2": "^2.0.1", "untildify": "^4.0.0", "yargs": "^16.1.0" }, "bin": { "copyfiles": "copyfiles", "copyup": "copyfiles" } }, "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg=="],
+
"core-js": ["core-js@3.31.1", "", {}, "sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ=="],
"core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="],
@@ -1801,8 +1794,6 @@
"json-schema-merge-allof": ["json-schema-merge-allof@0.8.1", "", { "dependencies": { "compute-lcm": "^1.1.2", "json-schema-compare": "^0.2.2", "lodash": "^4.17.20" } }, "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w=="],
- "json-schema-to-typescript": ["json-schema-to-typescript@15.0.4", "", { "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.5.5", "@types/json-schema": "^7.0.15", "@types/lodash": "^4.17.7", "is-glob": "^4.0.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "minimist": "^1.2.8", "prettier": "^3.2.5", "tinyglobby": "^0.2.9" }, "bin": { "json2ts": "dist/src/cli.js" } }, "sha512-Su9oK8DR4xCmDsLlyvadkXzX6+GGXJpbhwoLtOGArAG61dvbW4YQmSEno2y66ahpIdmLMg6YUf/QHLgiwvkrHQ=="],
-
"json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="],
"json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="],
@@ -1891,8 +1882,6 @@
"markdown-it-myst": ["markdown-it-myst@workspace:packages/markdown-it-myst"],
- "markdown-it-myst-extras": ["markdown-it-myst-extras@0.3.0", "", { "peerDependencies": { "markdown-it": "^12 || ^13" } }, "sha512-678qviK97MEzSM9Hr0jlX5nBPzMcKZo6Ixgh4nEf/WYpii8LXQ72FametoXkzyDy77qNKDE3vlqYhqfbbCGHrw=="],
-
"markdown-it-task-lists": ["markdown-it-task-lists@2.1.1", "", {}, "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA=="],
"markdown-table": ["markdown-table@3.0.3", "", {}, "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw=="],
@@ -1997,6 +1986,8 @@
"minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="],
+ "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
+
"module-definition": ["module-definition@3.4.0", "", { "dependencies": { "ast-module-types": "^3.0.0", "node-source-walk": "^4.0.0" }, "bin": "bin/cli.js" }, "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA=="],
"module-lookup-amd": ["module-lookup-amd@7.0.1", "", { "dependencies": { "commander": "^2.8.1", "debug": "^4.1.0", "glob": "^7.1.6", "requirejs": "^2.3.5", "requirejs-config-file": "^4.0.0" }, "bin": { "lookup-amd": "bin/cli.js" } }, "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ=="],
@@ -2091,6 +2082,8 @@
"node-source-walk": ["node-source-walk@5.0.2", "", { "dependencies": { "@babel/parser": "^7.21.4" } }, "sha512-Y4jr/8SRS5hzEdZ7SGuvZGwfORvNsSsNRwDXx5WisiqzsVfeftDvRgfeqWNgZvWSJbgubTRVRYBzK6UO+ErqjA=="],
+ "noms": ["noms@0.0.0", "", { "dependencies": { "inherits": "^2.0.1", "readable-stream": "~1.0.31" } }, "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow=="],
+
"normalize-package-data": ["normalize-package-data@2.5.0", "", { "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="],
"normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
@@ -2449,6 +2442,8 @@
"text-table": ["text-table@0.2.0", "", {}, "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="],
+ "through2": ["through2@2.0.5", "", { "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="],
+
"tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="],
"tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="],
@@ -2639,6 +2634,8 @@
"xml-js": ["xml-js@1.6.11", "", { "dependencies": { "sax": "^1.2.4" }, "bin": "bin/cli.js" }, "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g=="],
+ "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="],
+
"y-protocols": ["y-protocols@1.0.6", "", { "dependencies": { "lib0": "^0.2.85" }, "peerDependencies": { "yjs": "^13.0.0" } }, "sha512-vHRF2L6iT3rwj1jub/K5tYcTT/mEYDUppgNPXwp8fmLpui9f7Yeq3OEtTLVF012j39QnV+KEQpNqoN7CWU7Y9Q=="],
"y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="],
@@ -2755,6 +2752,10 @@
"concurrently/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="],
+ "copyfiles/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
+
+ "copyfiles/yargs": ["yargs@16.2.0", "", { "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="],
+
"cross-spawn/semver": ["semver@5.7.2", "", { "bin": "bin/semver" }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
"cross-spawn/which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": "bin/which" }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="],
@@ -2905,6 +2906,8 @@
"myst-execute/which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="],
+ "noms/readable-stream": ["readable-stream@1.0.34", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x" } }, "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg=="],
+
"normalize-package-data/semver": ["semver@5.7.2", "", { "bin": "bin/semver" }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
"npm-run-all/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="],
@@ -3071,6 +3074,12 @@
"concurrently/chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
+ "copyfiles/yargs/cliui": ["cliui@7.0.4", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="],
+
+ "copyfiles/yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
+
+ "copyfiles/yargs/yargs-parser": ["yargs-parser@20.2.9", "", {}, "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="],
+
"default-browser/execa/cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
"default-browser/execa/get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="],
@@ -3183,6 +3192,10 @@
"myst-execute/which/isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="],
+ "noms/readable-stream/isarray": ["isarray@0.0.1", "", {}, "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="],
+
+ "noms/readable-stream/string_decoder": ["string_decoder@0.10.31", "", {}, "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="],
+
"npm-run-all/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="],
"npm-run-all/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="],
@@ -3265,6 +3278,14 @@
"concurrently/chalk/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
+ "copyfiles/yargs/cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
+
+ "copyfiles/yargs/cliui/wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
+
+ "copyfiles/yargs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
+
+ "copyfiles/yargs/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
+
"default-browser/execa/cross-spawn/path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
"default-browser/execa/cross-spawn/shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
@@ -3327,6 +3348,12 @@
"@manypkg/find-root/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="],
+ "copyfiles/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
+
+ "copyfiles/yargs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
+
+ "copyfiles/yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
+
"default-browser/execa/cross-spawn/shebang-command/shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
"intersphinx/myst-cli-utils/chalk/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
@@ -3334,5 +3361,7 @@
"precinct/detective-typescript/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys/eslint-visitor-keys": ["eslint-visitor-keys@2.1.0", "", {}, "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="],
"run-applescript/execa/cross-spawn/shebang-command/shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
+
+ "copyfiles/yargs/cliui/wrap-ansi/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
}
}
diff --git a/docs/accessibility-and-performance.md b/docs/accessibility-and-performance.md
index bd7a7956d8..a19ef11f37 100644
--- a/docs/accessibility-and-performance.md
+++ b/docs/accessibility-and-performance.md
@@ -44,6 +44,17 @@ The MyST themes ship with these accessibility behaviors:
In April 2026 we completed a focused round of work to [align with WCAG 2.1 AA](https://github.com/jupyter-book/mystmd/issues/2802). We know there is always ongoing work to be done to improve accessibility and welcome both guidance and contributions, see [](#a11y:contribute).
+(a11y:monitor)=
+### How we monitor accessibility
+
+On every push to `main`, `myst-theme` runs an automated accessibility audit in CI.
+It builds the current themes and runs [`berkeley-cdss/myst-a11y`](https://github.com/berkeley-cdss/myst-a11y) (which wraps [axe-core](https://github.com/dequelabs/axe-core)) against the [reference pages](https://myst-theme.netlify.app), checking WCAG 2.0 and 2.1 (A & AA).
+
+Results are surfaced in a tracking issue with the [`a11y-audit` label](https://github.com/jupyter-book/myst-theme/labels/a11y-audit).
+It summarizes the current issue counts broken down by rule (such as color-contrast, label, and image-alt) and by page.
+If an issue with that label is already open, it will be updated on each new workflow run.
+If there is no open issue, then a new one is created.
+
### Cell outputs are not under MyST's control
Many libraries emit interactive JavaScript or images as part of executing code (e.g., Plotly, ipywidgets, etc).
@@ -57,12 +68,13 @@ The fix will most likely need to happen in that upstream tool rather than in the
Open accessibility work is tracked under the [`a11y` label in `myst-theme`](https://github.com/jupyter-book/myst-theme/labels/a11y).
There's a thread for broader discussion and tracking in the [Accessibility Improvements tracking issue](https://github.com/jupyter-book/myst-theme/issues/238).
+(a11y:check-your-site)=
### How can I check the accessibility of my own site?
A few tools that others in the community have found useful:
- The [Jupyter Accessibility Working Group](https://jupyter-accessibility.readthedocs.io) has a collection of accessibility resources for the broader Jupyter community.
-- [berkeley-cdss/myst-a11y](https://github.com/berkeley-cdss/myst-a11y) is a GitHub Action built for MyST sites. It runs [axe-core](https://github.com/dequelabs/axe-core) checks against WCAG 2.0 and 2.1 (A and AA) on every push and reports results as a tracking issue. See [data-8/textbook](https://github.com/data-8/textbook/blob/main/.github/workflows/a11y.yml) for a working example.
+- [berkeley-cdss/myst-a11y](https://github.com/berkeley-cdss/myst-a11y) is a GitHub Action built for MyST sites. It runs [axe-core](https://github.com/dequelabs/axe-core) checks against WCAG 2.0 and 2.1 (A and AA) on every push and reports results as a tracking issue. This is the same action MyST runs on its own themes, see [](#a11y:monitor). For a working example, see [data-8/textbook](https://github.com/data-8/textbook/blob/main/.github/workflows/a11y.yml).
- [Lighthouse](https://github.com/GoogleChrome/lighthouse) is built into Chrome DevTools and is useful for a quick audit of a single page.
- [JupyCheck](https://jupycheck.vercel.app/) checks accessibility of source notebooks in Jupyter interfaces. This is useful if you also want readers to launch Jupyter sessions from your MyST site.
diff --git a/docs/figures.md b/docs/figures.md
index ae668333bb..8b48e37993 100644
--- a/docs/figures.md
+++ b/docs/figures.md
@@ -33,6 +33,10 @@ For example, {myst:directive}`image.width`, {myst:directive}`alignment = 4) {
+ return false;
+ }
+
+ if (state.src[pos] !== '%') {
+ return false;
+ }
+
+ if (silent) {
+ return true;
+ }
+
+ const token = state.push('myst_line_comment', '', 0);
+ token.attrSet('class', 'myst-line-comment');
+ token.content = state.src.slice(pos + 1, maximum).replace(/\s+$/gm, ''); // rstrip
+ token.markup = '%';
+
+ // search end of block while appending lines to `token.content`
+ let nextLine: number;
+ for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {
+ pos = state.bMarks[nextLine] + state.tShift[nextLine];
+ maximum = state.eMarks[nextLine];
+ if (state.src[pos] !== '%') {
+ break;
+ }
+ token.content += '\n' + state.src.slice(pos + 1, maximum).replace(/\s+$/gm, ''); // rstrip
+ }
+ state.line = nextLine;
+ token.map = [startLine, nextLine];
+
+ return true;
+}
+
+function parse_block_break(
+ state: StateBlock,
+ startLine: number,
+ endLine: number,
+ silent: boolean,
+): boolean {
+ let pos = state.bMarks[startLine] + state.tShift[startLine];
+ const maximum = state.eMarks[startLine];
+
+ // if it's indented more than 3 spaces, it should be a code block
+ if (state.sCount[startLine] - state.blkIndent >= 4) {
+ return false;
+ }
+
+ const marker = state.src.charCodeAt(pos);
+ pos += 1;
+
+ // Check block marker /* + */
+ if (marker !== 0x2b) {
+ return false;
+ }
+
+ // markers can be mixed with spaces, but there should be at least 3 of them
+
+ let cnt = 1;
+ while (pos < maximum) {
+ const ch = state.src.charCodeAt(pos);
+ if (ch !== marker && !state.md.utils.isSpace(ch)) {
+ break;
+ }
+ if (ch === marker) {
+ cnt += 1;
+ }
+ pos += 1;
+ }
+
+ if (cnt < 3) {
+ return false;
+ }
+
+ if (silent) {
+ return true;
+ }
+
+ state.line = startLine + 1;
+
+ const token = state.push('myst_block_break', 'hr', 0);
+ token.attrSet('class', 'myst-block');
+ token.content = state.src.slice(pos, maximum).trim();
+ token.map = [startLine, state.line];
+ token.markup = state.md.utils.fromCodePoint(marker).repeat(cnt);
+
+ return true;
+}
+
+const TARGET_PATTERN = /^\((?