Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Support for MDX v3 #481

Closed
wants to merge 10 commits into from
Closed

Add Support for MDX v3 #481

wants to merge 10 commits into from

Conversation

jaswrks
Copy link
Contributor

@jaswrks jaswrks commented Nov 26, 2023

@JounQin Thank you. I've smoke tested this just a bit. Seems to do the trick.

  • Updated ./package.json for each of the two packages.
  • Updated Configuration import from unified-engine.

Thanks in advance for anyone able to have a look at this with more experienced eyes than mine.


close #480

Copy link

changeset-bot bot commented Nov 26, 2023

⚠️ No Changeset found

Latest commit: a429538

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@jaswrks jaswrks mentioned this pull request Nov 26, 2023
4 tasks
Copy link
Contributor

📊 Package size report   No changes

File Before After
Total (Includes all files) 1.3 MB 1.3 MB
Tarball size 131.6 kB 131.6 kB
Unchanged files
File Size
.babelrc 35 B
.changeset/config.json 372 B
.changeset/README.md 510 B
.codesandbox/ci.json 76 B
.editorconfig 161 B
.eslintrc.js 591 B
.gitattributes 35 B
.github/FUNDING.yml 204 B
.github/workflows/ci.yml 941 B
.github/workflows/codeql.yml 836 B
.github/workflows/pkg-size.yml 496 B
.github/workflows/release.yml 914 B
.lintstagedrc.js 50 B
.simple-git-hooks.js 51 B
CHANGELOG.md 283 B
CONTRIBUTING.md 931 B
LICENSE 1.1 kB
package.json 2.5 kB
packages/eslint-mdx/CHANGELOG.md 22.9 kB
packages/eslint-mdx/package.json 1.2 kB
packages/eslint-mdx/README.md 10.4 kB
packages/eslint-mdx/shim.d.ts 1.4 kB
packages/eslint-mdx/src/helpers.ts 4.3 kB
packages/eslint-mdx/src/index.ts 121 B
packages/eslint-mdx/src/meta.ts 182 B
packages/eslint-mdx/src/parser.ts 2.3 kB
packages/eslint-mdx/src/sync.ts 384 B
packages/eslint-mdx/src/tokens.ts 6.7 kB
packages/eslint-mdx/src/types.ts 1.0 kB
packages/eslint-mdx/src/worker.ts 21.0 kB
packages/eslint-mdx/tsconfig.json 131 B
packages/eslint-plugin-mdx/CHANGELOG.md 24.4 kB
packages/eslint-plugin-mdx/package.json 1.0 kB
packages/eslint-plugin-mdx/README.md 10.4 kB
packages/eslint-plugin-mdx/src/configs/base.ts 305 B
packages/eslint-plugin-mdx/src/configs/code-blocks.ts 1.0 kB
packages/eslint-plugin-mdx/src/configs/flat.ts 705 B
packages/eslint-plugin-mdx/src/configs/index.ts 439 B
packages/eslint-plugin-mdx/src/configs/overrides.ts 725 B
packages/eslint-plugin-mdx/src/configs/recommended.ts 806 B
packages/eslint-plugin-mdx/src/helpers.ts 620 B
packages/eslint-plugin-mdx/src/index.ts 128 B
packages/eslint-plugin-mdx/src/meta.ts 182 B
packages/eslint-plugin-mdx/src/processors/helpers.ts 633 B
packages/eslint-plugin-mdx/src/processors/index.ts 198 B
packages/eslint-plugin-mdx/src/processors/options.ts 1.8 kB
packages/eslint-plugin-mdx/src/processors/remark.ts 1.9 kB
packages/eslint-plugin-mdx/src/processors/types.ts 241 B
packages/eslint-plugin-mdx/src/rules/.eslintrc 124 B
packages/eslint-plugin-mdx/src/rules/index.ts 138 B
packages/eslint-plugin-mdx/src/rules/remark.ts 3.5 kB
packages/eslint-plugin-mdx/src/rules/types.ts 415 B
packages/eslint-plugin-mdx/tsconfig.json 131 B
README.md 10.4 kB
test/__snapshots__/fixtures.test.ts.snap 32.6 kB
test/__snapshots__/flat-config.test.ts.snap 823 B
test/__snapshots__/parser.test.ts.snap 1.1 MB
test/fixtures.test.ts 1.8 kB
test/fixtures/287.mdx 204 B
test/fixtures/292.mdx 191 B
test/fixtures/334.mdx 70 B
test/fixtures/336.mdx 178 B
test/fixtures/367.mdx 87 B
test/fixtures/371.mdx 75 B
test/fixtures/380.mdx 11.0 kB
test/fixtures/391.mdx 62 B
test/fixtures/429.mdx 52 B
test/fixtures/435.mdx 134 B
test/fixtures/445.mdx 188 B
test/fixtures/450.mdx 418 B
test/fixtures/acorn.mdx 860 B
test/fixtures/adjacent.mdx 50 B
test/fixtures/async/.remarkrc 67 B
test/fixtures/async/test.md 15 B
test/fixtures/basic.mdx 405 B
test/fixtures/basic.tsx 77 B
test/fixtures/blank-lines.mdx 768 B
test/fixtures/code-blocks.md 511 B
test/fixtures/comments.mdx 162 B
test/fixtures/details.mdx 881 B
test/fixtures/dir.mdx/.gitkeep 0 B
test/fixtures/esm/.remarkrc.mjs 103 B
test/fixtures/esm/test.md 15 B
test/fixtures/flat-config/code-blocks.mdx 76 B
test/fixtures/jsx-in-list.mdx 810 B
test/fixtures/leading-spaces.mdx 42 B
test/fixtures/markdown.md 5 B
test/fixtures/no-unescaped-entities.mdx 99 B
test/fixtures/no-unused-expressions.mdx 90 B
test/fixtures/processor.mdx 13 B
test/fixtures/remark.md 171 B
test/fixtures/remark.mdx 169 B
test/fixtures/style/.remarkrc 228 B
test/fixtures/style/nested.md 10 B
test/fixtures/style/plugin1.cjs 26 B
test/fixtures/style/plugin2.mjs 24 B
test/fixtures/unicorn.jsx 119 B
test/fixtures/unicorn.mdx 118 B
test/flat-config.test.ts 1.0 kB
test/helpers.test.ts 874 B
test/helpers.ts 548 B
test/parser.test.ts 4.0 kB
test/remark.test.ts 2.8 kB
tsconfig.base.json 235 B
tsconfig.json 309 B
tsconfig.lib.json 180 B

🤖 This report was automatically generated by pkg-size-action

@JounQin
Copy link
Member

JounQin commented Nov 26, 2023

CI broken, it seems more changes are required, I'll take a look tomorrow.

@JounQin
Copy link
Member

JounQin commented Nov 30, 2023

@ChristianMurphy
Copy link
Member

Any advice about how to migrate like Root from remark-mdx?

@JounQin have you tried Root from mdast?
The one in remark-mdx was likely an alias for the one in mdast which was accidentally exported.

@JounQin
Copy link
Member

JounQin commented Nov 30, 2023

Any advice about how to migrate like Root from remark-mdx?

@JounQin have you tried Root from mdast? The one in remark-mdx was likely an alias for the one in mdast which was accidentally exported.

@ChristianMurphy

It won't work because we need the followings:

image

@ChristianMurphy
Copy link
Member

@JounQin it will work if mdast-util-mdx-expression is included in the ambient types.

See https://www.npmjs.com/package/mdast-util-mdx-expression/v/2.0.0?activeTab=code index.d.ts at around line 120.
It registers the new types on to the root element.

This is how all the mdast parsers register new content types, using content maps, which can be automatically extended parsers so that mdast includes the new child types.

@wooorm
Copy link
Member

wooorm commented Nov 30, 2023

See also the readmes, e.g.: https://mdxjs.com/packages/remark-mdx/#types

@JounQin
Copy link
Member

JounQin commented Nov 30, 2023

OK, it seems we need:

/// <reference types="remark-mdx" />

import type { Root } from 'mdast'

I'll try it this night. (Previously, I'm not aware that referencing remark-mdx is required).

@JounQin
Copy link
Member

JounQin commented Dec 1, 2023

packages/eslint-mdx/src/tokens.ts:47:7 - error TS2367: This comparison appears to be unintentional because the types '"root" | "paragraph" | "heading" | "thematicBreak" | "blockquote" | "list" | "table" | "html" | "code" | "yaml" | "definition" | "footnoteDefinition" | "listItem" | "tableRow" | ... 12 more ... | "footnoteReference"' and '"mdxFlowExpression"' have no overlap.

47       node.type !== 'mdxFlowExpression' &&
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I'm still seeing this... @ChristianMurphy @wooorm

I tried:

/// <reference types="remark-mdx" />

import type { Root } from 'mdast'

Or

/// <reference types="mdast-util-mdx-expression" />

import type { Root } from 'mdast'

@wooorm
Copy link
Member

wooorm commented Dec 1, 2023

You are missing @types/mdast as a dependency, and in the last example mdast-util-mdx-expression.
Make sure to specify all the types you include as dependencies, otherwise yarn will fail / pick old versions that don’t work together.

@JounQin
Copy link
Member

JounQin commented Dec 1, 2023

@wooorm There are some remark-lint plugins are still requiring @types/mdast@v3 like remark-lint-file-extension which has not been upgraded yet.

@wooorm
Copy link
Member

wooorm commented Dec 1, 2023

Correct

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Incompatible w/ MDX v3?
4 participants