@thallylabs/migrate 0.2.46 → 0.2.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- import { h as MigrationCapture } from './url-run-D-E4dr2h.js';
2
- export { a as MigrationAsset, f as MigrationBundle, i as MigrationCaptureProvider, j as MigrationCaptureState, k as MigrationCapturedAsset, g as MigrationDocsConfig, l as MigrationEvidence, m as MigrationFetchRequest, n as MigrationFetchResponse, d as MigrationFetcher, o as MigrationJournalAsset, b as MigrationNavigationGroup, p as MigrationNavigationOccurrence, q as MigrationNavigationTab, M as MigrationPage, e as MigrationPlatform, c as MigrationWarning, R as RenderedMigrationFile, U as UrlMigrationCheckpoint, r as UrlMigrationCheckpointDelta, s as UrlMigrationIssue, t as UrlMigrationRecord, u as UrlMigrationRun, v as UrlMigrationRunOptions, w as UrlMigrationValidation, x as classifyMigrationResponse, z as renderMigrationFiles, A as runUrlMigration, B as validateUrlMigration } from './url-run-D-E4dr2h.js';
1
+ import { h as MigrationCapture } from './url-run-0BYlnvvB.js';
2
+ export { a as MigrationAsset, f as MigrationBundle, i as MigrationCaptureProvider, j as MigrationCaptureState, k as MigrationCapturedAsset, g as MigrationDocsConfig, l as MigrationEvidence, m as MigrationFetchRequest, n as MigrationFetchResponse, d as MigrationFetcher, o as MigrationJournalAsset, b as MigrationNavigationGroup, p as MigrationNavigationOccurrence, q as MigrationNavigationTab, M as MigrationPage, e as MigrationPlatform, c as MigrationWarning, R as RenderedMigrationFile, U as UrlMigrationCheckpoint, r as UrlMigrationCheckpointDelta, s as UrlMigrationIssue, t as UrlMigrationRecord, u as UrlMigrationRun, v as UrlMigrationRunOptions, w as UrlMigrationValidation, x as classifyMigrationResponse, z as renderMigrationFiles, A as runUrlMigration, B as validateUrlMigration } from './url-run-0BYlnvvB.js';
3
3
 
4
4
  interface UrlMigrationScope {
5
5
  scopePath: string;
@@ -2397,6 +2397,50 @@ function salvageFrontmatterLines(matter) {
2397
2397
  }
2398
2398
  return data;
2399
2399
  }
2400
+ var KEY_LINE = /^[A-Za-z_][\w-]*:(?:\s|$)/;
2401
+ var QUOTED_KEY_LINE = /^[A-Za-z_][\w-]*:[ \t]*(["'])/;
2402
+ function closingQuote(line, from, quote) {
2403
+ for (let index = from; index < line.length; index++) {
2404
+ if (quote === '"' && line[index] === "\\") index++;
2405
+ else if (line[index] === quote) {
2406
+ if (quote === "'" && line[index + 1] === "'") index++;
2407
+ else return index;
2408
+ }
2409
+ }
2410
+ return -1;
2411
+ }
2412
+ function foldQuotedLineBreaks(matter) {
2413
+ const lines = matter.split(/\r?\n/);
2414
+ const folded = [];
2415
+ let changed = false;
2416
+ for (let start = 0; start < lines.length; start++) {
2417
+ const opening = QUOTED_KEY_LINE.exec(lines[start]);
2418
+ if (!opening || closingQuote(lines[start], opening[0].length, opening[1]) !== -1) {
2419
+ folded.push(lines[start]);
2420
+ continue;
2421
+ }
2422
+ const quote = opening[1];
2423
+ let value = lines[start].slice(opening[0].length).trimEnd();
2424
+ let end = start + 1;
2425
+ for (; end < lines.length; end++) {
2426
+ const line = lines[end];
2427
+ if (line.trim() === "" || KEY_LINE.test(line)) return void 0;
2428
+ const close = closingQuote(line, 0, quote);
2429
+ if (close === -1) {
2430
+ value += ` ${line.trim()}`;
2431
+ continue;
2432
+ }
2433
+ if (!/^\s*(?:#.*)?$/.test(line.slice(close + 1))) return void 0;
2434
+ value += ` ${line.slice(0, close).trimStart()}`;
2435
+ break;
2436
+ }
2437
+ if (end === lines.length) return void 0;
2438
+ folded.push(`${lines[start].slice(0, opening[0].length - 1)}${quote}${value}${quote}`);
2439
+ changed = true;
2440
+ start = end;
2441
+ }
2442
+ return changed ? folded.join("\n") : void 0;
2443
+ }
2400
2444
  function parseFrontmatter(raw) {
2401
2445
  const source = raw.charCodeAt(0) === 65279 ? raw.slice(1) : raw;
2402
2446
  const opening = /^---([^\r\n]*)\r?\n/.exec(source);
@@ -2418,6 +2462,14 @@ function parseFrontmatter(raw) {
2418
2462
  data: parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {}
2419
2463
  };
2420
2464
  } catch (err) {
2465
+ const foldedMatter = foldQuotedLineBreaks(matter);
2466
+ if (foldedMatter !== void 0) {
2467
+ try {
2468
+ const parsed = parseYaml2(foldedMatter);
2469
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return { content, data: parsed };
2470
+ } catch {
2471
+ }
2472
+ }
2421
2473
  return {
2422
2474
  content,
2423
2475
  data: salvageFrontmatterLines(matter),
@@ -2525,6 +2577,7 @@ function normalizeMintlifyCodeFences(body, warn) {
2525
2577
  }
2526
2578
 
2527
2579
  // src/mdx.ts
2580
+ var MDX_COMPILE_OPTIONS = { outputFormat: "program", remarkPlugins: [remarkGfm2] };
2528
2581
  function titleFromId(id) {
2529
2582
  const value = id.split("/").at(-1) ?? id;
2530
2583
  if (value === "introduction") return "Introduction";
@@ -2803,6 +2856,7 @@ function mintlifyHeadingSlug(text2) {
2803
2856
  let id = "";
2804
2857
  let afterDash = false;
2805
2858
  let endsWithDash = false;
2859
+ let softDash = false;
2806
2860
  chars.forEach((char, index) => {
2807
2861
  const before = chars[index - 1];
2808
2862
  const after = chars[index + 1];
@@ -2810,7 +2864,9 @@ function mintlifyHeadingSlug(text2) {
2810
2864
  if (isWord(char)) {
2811
2865
  id += char;
2812
2866
  afterDash = false;
2867
+ softDash = false;
2813
2868
  } else if (/[\s-]/.test(char) || char === "." && (isWord(after) || after === ",") || char === "(" && isWord(before) && (isWord(after) || after === "{") || char === ")" && after !== void 0 && !/\s/.test(after)) {
2869
+ softDash = /[\s-]/.test(char) ? false : id !== "" && !afterDash || softDash;
2814
2870
  if (id && !afterDash) id += "-";
2815
2871
  afterDash = true;
2816
2872
  endsWithDash = true;
@@ -2818,24 +2874,28 @@ function mintlifyHeadingSlug(text2) {
2818
2874
  afterDash = false;
2819
2875
  }
2820
2876
  });
2821
- return endsWithDash ? id.replace(/-$/, "") : id;
2877
+ return endsWithDash || softDash ? id.replace(/-$/, "") : id;
2822
2878
  }
2823
2879
  function thallyHeadingSlug(text2) {
2824
2880
  return text2.normalize("NFC").toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu, "-").replace(/(^-|-$)/g, "");
2825
2881
  }
2882
+ var LINK_DESTINATION = String.raw`\]\((?:[^()]|\([^()]*\))*\)`;
2883
+ var TYPESET_PROTECTED = new RegExp(`(\`[^\`]*\`|<[^>]*>|${LINK_DESTINATION})`);
2826
2884
  function typesetQuotes(text2) {
2827
2885
  const opensClosed = text2.startsWith('"') && !text2.trimEnd().endsWith('"');
2828
- return text2.split(/(`[^`]*`|<[^>]*>|\]\([^)]*\))/).map((part, index) => {
2886
+ return text2.split(TYPESET_PROTECTED).map((part, index) => {
2829
2887
  if (index % 2) return part;
2830
2888
  return part.replace(/(^|[\s([{\u2014\u2013])"/g, (match, before) => opensClosed && index === 0 && before === "" ? match : `${before}\u201C`).replace(/"/g, "\u201D").replace(/(^|[\s([{\u2014\u2013\u201c])'(?=\S)(?!&lt;|<)/g, "$1\u2018").replace(/'/g, "\u2019");
2831
2889
  }).join("");
2832
2890
  }
2833
2891
  function typesetEllipses(text2) {
2834
- return text2.split(/(`[^`]*`|<[^>]*>|\]\([^)]*\))/).map((part, index) => index % 2 ? part : part.replace(/\.{3}/g, "\u2026")).join("");
2892
+ return text2.split(TYPESET_PROTECTED).map((part, index) => index % 2 ? part : part.replace(/\.{3}/g, "\u2026")).join("");
2835
2893
  }
2894
+ var LINK_HOLDING_CODE = new RegExp(`(\`[^\`]*\`)|!?\\[((?:\`[^\`]*\`|[^\\]\`])*)${LINK_DESTINATION}`, "g");
2895
+ var PLAIN_LINK = new RegExp(`!?\\[([^\\]]*)${LINK_DESTINATION}`, "g");
2836
2896
  function plainHeadingText(source) {
2837
- const unlinked = !source.includes("`") ? source : source.replace(/(`[^`]*`)|!?\[((?:`[^`]*`|[^\]`])*)\]\([^)]*\)/g, (_match, code, text2 = "") => code ?? text2);
2838
- return unlinked.split(/(`[^`]*`)/).map((part, index) => index % 2 ? part.slice(1, -1) : part.replace(/\{\/\*[\s\S]*?\*\/\}/g, " ").replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/<\/?[A-Za-z][^>]*>/g, "").replace(/(?<!\\)(\*\*|__|~~|\*)/g, "").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/\\([\\`*_{}[\]()#+.!&<>|~-])/g, "$1")).join("");
2897
+ const unlinked = !source.includes("`") ? source : source.replace(LINK_HOLDING_CODE, (_match, code, text2 = "") => code ?? text2);
2898
+ return unlinked.split(/(`[^`]*`)/).map((part, index) => index % 2 ? part.slice(1, -1) : part.replace(/\{\/\*[\s\S]*?\*\/\}/g, " ").replace(PLAIN_LINK, "$1").replace(/<\/?[A-Za-z][^>]*>/g, "").replace(/(?<!\\)(\*\*|__|~~|\*)/g, "").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/\\([\\`*_{}[\]()#+.!&<>|~-])/g, "$1")).join("");
2839
2899
  }
2840
2900
  function staticAttributeString(value) {
2841
2901
  if (typeof value === "string") return value;
@@ -2985,7 +3045,7 @@ function maskCode(body) {
2985
3045
  }
2986
3046
  continue;
2987
3047
  }
2988
- if (fenceMatch) {
3048
+ if (fenceMatch && !(fenceMatch[1][0] === "`" && line.slice(fenceMatch[0].length).includes("`"))) {
2989
3049
  codeFence = fenceMatch[1];
2990
3050
  fenceBuffer = [line];
2991
3051
  continue;
@@ -3249,6 +3309,28 @@ function normalizeDocusaurusTabs(body) {
3249
3309
  }
3250
3310
  return result.replace(/<ThallyTabs\b/g, "<Tabs").replace(/<\/ThallyTabs>/g, "</Tabs>");
3251
3311
  }
3312
+ function normalizeStrayTabItems(body) {
3313
+ const tags = [...body.matchAll(/<TabItem\b([^<>]*)>|<\/TabItem>/g)].filter((tag) => !/\/$/.test(tag[1] ?? ""));
3314
+ const openers = [];
3315
+ const paired = /* @__PURE__ */ new Set();
3316
+ tags.forEach((tag, index) => {
3317
+ if (tag[0] !== "</TabItem>") openers.push(index);
3318
+ else if (openers.length > 0) {
3319
+ paired.add(openers.pop());
3320
+ paired.add(index);
3321
+ }
3322
+ });
3323
+ let result = "";
3324
+ let cursor = 0;
3325
+ tags.forEach((tag, index) => {
3326
+ if (!paired.has(index)) return;
3327
+ const attributes = tag[1] ?? "";
3328
+ const title = attributes.match(/\blabel=(?:"([^"]*)"|'([^']*)')/)?.slice(1).find(Boolean) ?? attributes.match(/\bvalue=(?:"([^"]*)"|'([^']*)')/)?.slice(1).find(Boolean) ?? "Tab";
3329
+ result += `${body.slice(cursor, tag.index)}${tag[0] === "</TabItem>" ? "</Tab>" : `<Tab title="${title.replace(/"/g, "&quot;")}">`}`;
3330
+ cursor = tag.index + tag[0].length;
3331
+ });
3332
+ return result + body.slice(cursor);
3333
+ }
3252
3334
  var TAB_FENCE_OPEN = /^(`{3,}|~{3,})(\S*)\s+tab\b(.*)$/;
3253
3335
  function normalizeDocusaurusTabBlocks(body) {
3254
3336
  const lines = body.split("\n");
@@ -3472,6 +3554,37 @@ function pinStepsTitleSize(body) {
3472
3554
  }
3473
3555
  return result + body.slice(cursor);
3474
3556
  }
3557
+ function addMintlifyVideoAttributes(body) {
3558
+ if (!body.includes("<video")) return body;
3559
+ let result = "";
3560
+ let cursor = 0;
3561
+ for (const match of body.matchAll(/<video(?=[\s/>])/g)) {
3562
+ if (match.index < cursor) continue;
3563
+ const tag = readTagEnd(body, match.index + match[0].length);
3564
+ if (tag === UNTERMINATED) break;
3565
+ if (!tag) continue;
3566
+ let attributes;
3567
+ try {
3568
+ attributes = descriptionParser.parse(`<video${tag.attributes}/>`).children?.[0]?.attributes ?? [];
3569
+ } catch {
3570
+ continue;
3571
+ }
3572
+ const named = (name) => attributes.find((attribute) => attribute.type === "mdxJsxAttribute" && attribute.name?.toLowerCase() === name.toLowerCase());
3573
+ const autoPlay = named("autoPlay");
3574
+ const start = autoPlay?.position?.start.offset;
3575
+ const end = autoPlay?.position?.end.offset;
3576
+ const off = typeof autoPlay?.value === "object" && autoPlay.value?.value?.trim() === "false";
3577
+ const missing = ["muted", "loop", "playsInline"].filter((name) => !named(name));
3578
+ if (!autoPlay || off || missing.length === 0 || start === void 0 || end === void 0) continue;
3579
+ const at = match.index + end;
3580
+ const indent = body.slice(body.lastIndexOf("\n", match.index + start - 1) + 1, match.index + start);
3581
+ const eol = /^[ \t]*(\r?\n)/.exec(body.slice(at))?.[1];
3582
+ const insert = eol && /^[ \t]*$/.test(indent) ? missing.map((name) => `${eol}${indent}${name}`).join("") : missing.map((name) => ` ${name}`).join("");
3583
+ result += body.slice(cursor, at) + insert;
3584
+ cursor = at;
3585
+ }
3586
+ return result + body.slice(cursor);
3587
+ }
3475
3588
  function isKnownComponentName(name, body) {
3476
3589
  if (isThallyBuiltinComponent(name)) return true;
3477
3590
  if (new RegExp(`^\\s*export\\s+(?:const|function|default\\s+function)\\s+${name}\\b`, "m").test(body)) return true;
@@ -3501,7 +3614,7 @@ function escapeOrphanCapitalizedTags(body) {
3501
3614
  }
3502
3615
  if (edits.length === 0) return body;
3503
3616
  try {
3504
- compileSync(body, { outputFormat: "program" });
3617
+ compileSync(body, MDX_COMPILE_OPTIONS);
3505
3618
  return body;
3506
3619
  } catch {
3507
3620
  }
@@ -3627,20 +3740,18 @@ function normalizeMdx(body, platform, unwrapMdxCodeBlocks = true) {
3627
3740
  ));
3628
3741
  rewritten = rewritten.replace(/^\n{2,}/, "\n");
3629
3742
  }
3743
+ if (runMintlify && rewritten.includes("<TabItem")) rewritten = replaceOutsideCode(rewritten, normalizeDocusaurusTabs);
3630
3744
  if (runMintlify) rewritten = normalizeMintlifyParameterAnchors(rewritten);
3631
3745
  rewritten = unwrapHtmlCommentInMdxComment(rewritten);
3632
3746
  rewritten = replaceOutsideCode(rewritten, (segment) => {
3633
3747
  let result = convertHtmlStyleAttributes(segment).replace(/<!--([\s\S]*?)-->/g, (_match, content) => mdxComment(content)).replace(/<Danger(\s[^>]*)?>/g, "<Error$1>").replace(/<\/Danger>/g, "</Error>").replace(/<Warn(\s[^>]*)?>/g, "<Warning$1>").replace(/<\/Warn>/g, "</Warning>").replace(/<Tree\.Folder/g, "<Folder").replace(/<\/Tree\.Folder>/g, "</Folder>").replace(/<Tree\.File/g, "<File").replace(/<\/Tree\.File>/g, "</File>");
3634
3748
  if (runDocusaurus) {
3635
- result = result.replace(/<TabItem\b([^<>]*)>/g, (_match, attributes) => {
3636
- const title = attributes.match(/\blabel=(?:"([^"]*)"|'([^']*)')/)?.slice(1).find(Boolean) ?? attributes.match(/\bvalue=(?:"([^"]*)"|'([^']*)')/)?.slice(1).find(Boolean) ?? "Tab";
3637
- return `<Tab title="${title.replace(/"/g, "&quot;")}">`;
3638
- }).replace(/<\/TabItem>/g, "</Tab>");
3639
- result = normalizeDocusaurusLinkTags(result).replace(/<(?:DocCardList|TOCInline)\b[^<>]*\/>/g, "");
3749
+ result = normalizeDocusaurusLinkTags(normalizeStrayTabItems(result)).replace(/<(?:DocCardList|TOCInline)\b[^<>]*\/>/g, "");
3640
3750
  }
3641
3751
  if (runMintlify) {
3642
- result = normalizeMintlifyUpdateLabels(result).replace(/<FileTree(\s[^>]*)?>/g, "<Tree$1>").replace(/<\/FileTree>/g, "</Tree>").replace(/<GitHub\.Repo/g, "<GitHub").replace(/<\/GitHub\.Repo>/g, "</GitHub>").replace(/<Callout(\s[^<>]*)?>/g, (tag) => tag.replace(/(\s)type=(?:"[^"]*"|'[^']*'|\{[^{}]*\})/, '$1type="info"')).replace(/<Column(\s[^>]*)?>/g, "<div$1>").replace(/<\/Column>/g, "</div>");
3752
+ result = normalizeMintlifyUpdateLabels(normalizeStrayTabItems(result)).replace(/<FileTree(\s[^>]*)?>/g, "<Tree$1>").replace(/<\/FileTree>/g, "</Tree>").replace(/<GitHub\.Repo/g, "<GitHub").replace(/<\/GitHub\.Repo>/g, "</GitHub>").replace(/<Callout(\s[^<>]*)?>/g, (tag) => tag.replace(/(\s)type=(?:"[^"]*"|'[^']*'|\{[^{}]*\})/, '$1type="info"')).replace(/<Column(\s[^>]*)?>/g, "<div$1>").replace(/<\/Column>/g, "</div>");
3643
3753
  result = pinStepsTitleSize(result);
3754
+ result = addMintlifyVideoAttributes(result);
3644
3755
  }
3645
3756
  if (runFern) {
3646
3757
  result = result.replace(/<CodeBlocks(\s[^>]*)?>/g, "<CodeGroup$1>").replace(/<\/CodeBlocks>/g, "</CodeGroup>").replace(/<ParameterField\b/g, "<ParamField").replace(/<\/ParameterField>/g, "</ParamField>").replace(/<Cards(\s[^>]*)?>/g, "<CardGroup$1>").replace(/<\/Cards>/g, "</CardGroup>").replace(/<Success(\s[^>]*)?>/g, "<Tip$1>").replace(/<\/Success>/g, "</Tip>").replace(/<Launch(\s[^>]*)?>/g, "<Note$1>").replace(/<\/Launch>/g, "</Note>").replace(/<Files(\s[^>]*)?>\n?/g, "").replace(/<\/Files>/g, "");
@@ -3651,7 +3762,7 @@ function normalizeMdx(body, platform, unwrapMdxCodeBlocks = true) {
3651
3762
  const normalized = escapeOrphanCapitalizedTags(provideScopedGlobalReferences(rewritten));
3652
3763
  if (runDocusaurus && sourceBody !== body) {
3653
3764
  try {
3654
- compileSync(normalized, { outputFormat: "program" });
3765
+ compileSync(normalized, MDX_COMPILE_OPTIONS);
3655
3766
  } catch {
3656
3767
  return normalizeMdx(body, platform, false);
3657
3768
  }
@@ -3713,14 +3824,20 @@ function parseMarkdownPage(input) {
3713
3824
  const normalized = normalizeMdx(parsed.content, input.platform);
3714
3825
  const body = removeUndefinedExpressions(injectReactHookImports(input.platform === "mintlify" ? normalizeMintlifyCodeFences(normalized, input.warn) : normalized), input.warn).trim();
3715
3826
  const keywords = Array.isArray(parsed.data.keywords) ? parsed.data.keywords.filter((value) => typeof value === "string") : [];
3716
- const heading = leadingPageHeading(body);
3827
+ const namesOperation = typeof parsed.data.openapi === "string" && Boolean(parsed.data.openapi.trim());
3828
+ const heading = input.platform === "mintlify" && !namesOperation ? void 0 : leadingPageHeading(body);
3717
3829
  const authoredTitle = typeof parsed.data.title === "string" && parsed.data.title.trim() ? parsed.data.title.trim() : heading?.title;
3718
3830
  const title = authoredTitle ?? titleFromId(identity.navigationId);
3719
- const namesOperation = typeof parsed.data.openapi === "string" && Boolean(parsed.data.openapi.trim());
3720
3831
  const sidebarTitle = input.platform === "docusaurus" ? parsed.data.sidebar_label : parsed.data.sidebarTitle;
3721
3832
  const navTitle = typeof sidebarTitle === "string" && sidebarTitle.trim() ? sidebarTitle.trim() : typeof parsed.data.navTitle === "string" && parsed.data.navTitle.trim() ? parsed.data.navTitle.trim() : void 0;
3722
- const icon = typeof parsed.data.icon === "string" && parsed.data.icon.trim() ? parsed.data.icon.trim() : void 0;
3723
- const iconType = icon && typeof parsed.data.iconType === "string" && ["regular", "solid", "outline", "brands"].includes(parsed.data.iconType) ? parsed.data.iconType : void 0;
3833
+ const iconObject = parsed.data.icon && typeof parsed.data.icon === "object" && !Array.isArray(parsed.data.icon) ? parsed.data.icon : void 0;
3834
+ const iconSource = iconObject ? iconObject.name : parsed.data.icon;
3835
+ const icon = typeof iconSource === "string" && iconSource.trim() ? iconSource.trim() : void 0;
3836
+ const iconStyle = (value) => typeof value === "string" && ["regular", "solid", "outline", "brands"].includes(value) ? value : void 0;
3837
+ const iconType = icon ? iconStyle(iconObject?.style) ?? iconStyle(parsed.data.iconType) : void 0;
3838
+ if (icon && typeof iconObject?.library === "string" && input.siteIconLibrary !== void 0 && iconObject.library !== input.siteIconLibrary) {
3839
+ input.warn?.(`Page "${identity.id}": its icon names the "${iconObject.library}" icon library, but this site uses "${input.siteIconLibrary}", so the icon "${icon}" is looked up there and may show a different icon or none. Use an icon name from "${input.siteIconLibrary}", or set icons.library in docs.json to "${iconObject.library}".`);
3840
+ }
3724
3841
  const meta = {};
3725
3842
  for (const [source, field] of PAGE_META_FIELDS) {
3726
3843
  const value = parsed.data[source];
@@ -6812,11 +6929,12 @@ import { existsSync as existsSync2, lstatSync as lstatSync2, readFileSync as rea
6812
6929
  import { basename, dirname as dirname2, extname as extname3, posix as posix2, relative as relative3, resolve as resolve3 } from "path";
6813
6930
  import postcss2 from "postcss";
6814
6931
  import selectorParser2 from "postcss-selector-parser";
6932
+ import remarkGfm3 from "remark-gfm";
6815
6933
  import remarkMdx5 from "remark-mdx";
6816
6934
  import remarkParse6 from "remark-parse";
6817
6935
  import ts3 from "typescript";
6818
6936
  import { unified as unified6 } from "unified";
6819
- var parser3 = unified6().use(remarkParse6).use(remarkMdx5);
6937
+ var parser3 = unified6().use(remarkParse6).use(remarkGfm3).use(remarkMdx5);
6820
6938
  var DOCUSAURUS_THEME_SHIMS = {
6821
6939
  "@theme/CodeBlock": {
6822
6940
  filename: "docusaurus-code-block.tsx",