Просмотр исходного кода

fix(docs): Fix MDX parsing errors in generated docs

- Convert HTML comment to MDX comment in migration docs
- Replace <tsconfig-setup> tag with plain text to avoid JSX parsing
- Fix typescript-docs-renderer to wrap generic type wrappers (Partial<,
  Array<, etc.) in backticks before <DocsLink> components
- Fix trailing > after </DocsLink> to be wrapped in backticks
- Regenerate affected API reference docs
David Höck 1 день назад
Родитель
Сommit
e246dfd01d

+ 3 - 3
docs/docs/guides/extending-the-dashboard/migration/index.mdx

@@ -51,9 +51,9 @@ Then paste the following prompt in full:
 
 <div style={{ width: '100%', height: '500px', overflow: 'auto', marginBottom: '20px' }}>
 
-<!-- Note: the following code block should not be edited. It is auto-generated from the files in the 
+{/* Note: the following code block should not be edited. It is auto-generated from the files in the
      `.claude/skills/vendure-dashboard-migration` dir, by running the npm script `generate-migration-prompt` from
-     the `./docs` dir. -->
+     the `./docs` dir. */}
 ````md
 ## Instructions
 
@@ -61,7 +61,7 @@ Then paste the following prompt in full:
 2. Read and understand the overall rules for migration
     - the "General" section below
     - the "Common Tasks" section below
-3. Check the tsconfig setup <tsconfig-setup>. This may or may not already be set up.
+3. Check the tsconfig setup (see "TSConfig setup" section). This may or may not already be set up.
     - the "TSConfig setup" section below
 4. Identify each part of the Admin UI extensions that needs to be
    migrated, and use the data from the appropriate sections to guide

+ 1 - 1
docs/docs/reference/admin-ui-api/directives/if-multichannel-directive.mdx

@@ -20,7 +20,7 @@ class IfMultichannelDirective extends IfDirectiveBase<[]> {
     constructor(_viewContainer: ViewContainerRef, templateRef: TemplateRef<any>, dataService: DataService)
 }
 ```
-* Extends: IfDirectiveBase<[]>
+* Extends: `IfDirectiveBase<[]>`
 
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/directives/if-permissions-directive.mdx

@@ -22,7 +22,7 @@ class IfPermissionsDirective extends IfDirectiveBase<Array<Permission[] | null>>
     constructor(_viewContainer: ViewContainerRef, templateRef: TemplateRef<any>, changeDetectorRef: ChangeDetectorRef, permissionsService: PermissionsService)
 }
 ```
-* Extends: IfDirectiveBase<Array<<DocsLink href="/reference/typescript-api/common/permission#permission">`Permission`</DocsLink>[] | null>>
+* Extends: IfDirectiveBase<`Array<`<DocsLink href="/reference/typescript-api/common/permission#permission">`Permission`</DocsLink>[] | null>>
 
 
 

+ 1 - 1
docs/docs/reference/admin-ui-api/ui-devkit/admin-ui-extension.mdx

@@ -24,7 +24,7 @@ interface AdminUiExtension extends Partial<TranslationExtension>,
     exclude?: string[];
 }
 ```
-* Extends: Partial<<DocsLink href="/reference/admin-ui-api/ui-devkit/admin-ui-extension#translationextension">`TranslationExtension`</DocsLink>>, Partial<<DocsLink href="/reference/admin-ui-api/ui-devkit/admin-ui-extension#staticassetextension">`StaticAssetExtension`</DocsLink>>, Partial<<DocsLink href="/reference/admin-ui-api/ui-devkit/admin-ui-extension#globalstylesextension">`GlobalStylesExtension`</DocsLink>>
+* Extends: `Partial<`<DocsLink href="/reference/admin-ui-api/ui-devkit/admin-ui-extension#translationextension">`TranslationExtension`</DocsLink>`>`, `Partial<`<DocsLink href="/reference/admin-ui-api/ui-devkit/admin-ui-extension#staticassetextension">`StaticAssetExtension`</DocsLink>`>`, `Partial<`<DocsLink href="/reference/admin-ui-api/ui-devkit/admin-ui-extension#globalstylesextension">`GlobalStylesExtension`</DocsLink>`>`
 
 
 

+ 1 - 1
docs/docs/reference/core-plugins/email-plugin/email-plugin-options.mdx

@@ -115,7 +115,7 @@ interface EmailPluginDevModeOptions extends Omit<EmailPluginOptions, 'transport'
     route: string;
 }
 ```
-* Extends: Omit<<DocsLink href="/reference/core-plugins/email-plugin/email-plugin-options#emailpluginoptions">`EmailPluginOptions`</DocsLink>, 'transport'>
+* Extends: `Omit<`<DocsLink href="/reference/core-plugins/email-plugin/email-plugin-options#emailpluginoptions">`EmailPluginOptions`</DocsLink>, 'transport'>
 
 
 

+ 1 - 1
docs/docs/reference/dashboard/components/vendure-image.mdx

@@ -53,7 +53,7 @@ interface VendureImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
     ref?: React.Ref<HTMLImageElement>;
 }
 ```
-* Extends: React.ImgHTMLAttributes<HTMLImageElement>
+* Extends: `React.ImgHTMLAttributes<HTMLImageElement>`
 
 
 

+ 1 - 1
docs/docs/reference/dashboard/page-layout/page.mdx

@@ -60,7 +60,7 @@ interface PageProps extends ComponentProps<'div'> {
     submitHandler?: any;
 }
 ```
-* Extends: ComponentProps<'div'>
+* Extends: `ComponentProps<'div'>`
 
 
 

+ 1 - 1
docs/docs/reference/typescript-api/configuration/runtime-vendure-config.mdx

@@ -25,7 +25,7 @@ interface RuntimeVendureConfig extends Required<VendureConfig> {
     systemOptions: Required<SystemOptions>;
 }
 ```
-* Extends: Required<<DocsLink href="/reference/typescript-api/configuration/vendure-config#vendureconfig">`VendureConfig`</DocsLink>>
+* Extends: `Required<`<DocsLink href="/reference/typescript-api/configuration/vendure-config#vendureconfig">`VendureConfig`</DocsLink>`>`
 
 
 

+ 1 - 1
docs/docs/reference/typescript-api/data-access/get-entity-or-throw-options.mdx

@@ -14,7 +14,7 @@ interface GetEntityOrThrowOptions<T = any> extends FindOneOptions<T> {
     includeSoftDeleted?: boolean;
 }
 ```
-* Extends: FindOneOptions<T>
+* Extends: `FindOneOptions<T>`
 
 
 

+ 2 - 2
docs/package-lock.json

@@ -1,12 +1,12 @@
 {
     "name": "@vendure/docs",
-    "version": "0.0.0-202601211435",
+    "version": "0.0.0-202601211543",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "@vendure/docs",
-            "version": "0.0.0-202601211435",
+            "version": "0.0.0-202601211543",
             "dependencies": {
                 "@vendure-io/docs-provider": "^0.5.0"
             },

+ 1 - 1
docs/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@vendure/docs",
-    "version": "0.0.0-202601211435",
+    "version": "0.0.0-202601211543",
     "type": "module",
     "main": "dist/index.js",
     "types": "dist/index.d.ts",

+ 10 - 0
scripts/docs/typescript-docs-renderer.ts

@@ -502,6 +502,16 @@ export class TypescriptDocsRenderer {
             const strippedIndex = val.replace(/\/_index$/, '');
             typeText = typeText.replace(re, `<DocsLink href="${docsUrl}/${strippedIndex}">\`${key}\`</DocsLink>`);
         }
+        // Wrap generic type wrappers (like Partial<, Array<) in backticks when they precede <DocsLink
+        // to prevent MDX from interpreting consecutive < characters as nested JSX
+        typeText = typeText.replace(/(\w+<)(<DocsLink)/g, '`$1`$2');
+        // Wrap any trailing generic type closing brackets in backticks to prevent MDX issues
+        typeText = typeText.replace(/(<\/DocsLink>)(>+)/g, '$1`$2`');
+        // If no DocsLink was added (type not in knownTypeMap) but the type contains
+        // angle brackets, wrap the entire type in backticks
+        if (!typeText.includes('<DocsLink') && typeText.includes('<')) {
+            typeText = '`' + typeText + '`';
+        }
         return typeText;
     }