markdown-codec 10.0.0 → 11.0.0

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,6 +1,6 @@
1
1
  import { s as MarkdownDocumentNode } from "../ast-CNfTgS0N.cjs";
2
2
  import { r as FootnoteLabelSet } from "../footnote-CKk4JbLk.cjs";
3
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.cjs";
3
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.cjs";
4
4
  import { LinkReferenceMap } from "../inline/link.cjs";
5
5
  import { t as InlineParseOptions } from "../inline-CnO86zMw.cjs";
6
6
  //#region src/block/block.d.ts
@@ -1,6 +1,6 @@
1
1
  import { s as MarkdownDocumentNode } from "../ast-CNfTgS0N.js";
2
2
  import { r as FootnoteLabelSet } from "../footnote-CKk4JbLk.js";
3
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.js";
3
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.js";
4
4
  import { LinkReferenceMap } from "../inline/link.js";
5
5
  import { t as InlineParseOptions } from "../inline-DItZ-VVw.js";
6
6
  //#region src/block/block.d.ts
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.cjs";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.cjs";
2
2
  import { LinkReferenceDefinition } from "../inline/link.cjs";
3
3
  //#region src/block/definitions.d.ts
4
4
  declare function extractDefinitions(content: string, references: Map<string, LinkReferenceDefinition>, sink?: MarkdownDiagnosticSink, startLine?: number): string;
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.js";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.js";
2
2
  import { LinkReferenceDefinition } from "../inline/link.js";
3
3
  //#region src/block/definitions.d.ts
4
4
  declare function extractDefinitions(content: string, references: Map<string, LinkReferenceDefinition>, sink?: MarkdownDiagnosticSink, startLine?: number): string;
@@ -32,7 +32,8 @@ const MarkdownDiagnosticCodes = {
32
32
  TABLE_CELL_FORMATTING_DROPPED: "md/table-cell-formatting-dropped",
33
33
  TABLE_CELL_MULTI_PARAGRAPH_JOINED: "md/table-cell-multi-paragraph-joined",
34
34
  TABLE_CELL_IMAGE_DEGRADED: "md/table-cell-image-degraded",
35
- TABLE_HTML_FALLBACK: "md/table-html-fallback"
35
+ TABLE_HTML_FALLBACK: "md/table-html-fallback",
36
+ TABLE_HEADER_ROW_SYNTHESISED: "md/table-header-row-synthesised"
36
37
  };
37
38
  var MarkdownParseError = class extends Error {
38
39
  code;
@@ -1,2 +1,2 @@
1
- import { a as MarkdownInputTooLargeError, c as MarkdownPackageFlattenError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "../diagnostics-BJtTrxpp.cjs";
1
+ import { a as MarkdownInputTooLargeError, c as MarkdownPackageFlattenError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "../diagnostics-DpAXEzZP.cjs";
2
2
  export { MarkdownDiagnostic, MarkdownDiagnosticCodes, MarkdownDiagnosticSeverity, MarkdownDiagnosticSink, MarkdownInputTooLargeError, MarkdownInvalidRunConstructExtentError, MarkdownNestingLimitExceededError, MarkdownPackageFlattenError, MarkdownParseError, MarkdownTableGridFaultError, MarkdownUnbalancedConstructMarkersError, MarkdownUndecodableTextError, MarkdownUnsupportedDocumentKindError, MarkdownWriteError, NOOP_MARKDOWN_DIAGNOSTIC_SINK };
@@ -1,2 +1,2 @@
1
- import { a as MarkdownInputTooLargeError, c as MarkdownPackageFlattenError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "../diagnostics-BJtTrxpp.js";
1
+ import { a as MarkdownInputTooLargeError, c as MarkdownPackageFlattenError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "../diagnostics-DpAXEzZP.js";
2
2
  export { MarkdownDiagnostic, MarkdownDiagnosticCodes, MarkdownDiagnosticSeverity, MarkdownDiagnosticSink, MarkdownInputTooLargeError, MarkdownInvalidRunConstructExtentError, MarkdownNestingLimitExceededError, MarkdownPackageFlattenError, MarkdownParseError, MarkdownTableGridFaultError, MarkdownUnbalancedConstructMarkersError, MarkdownUndecodableTextError, MarkdownUnsupportedDocumentKindError, MarkdownWriteError, NOOP_MARKDOWN_DIAGNOSTIC_SINK };
@@ -31,7 +31,8 @@ const MarkdownDiagnosticCodes = {
31
31
  TABLE_CELL_FORMATTING_DROPPED: "md/table-cell-formatting-dropped",
32
32
  TABLE_CELL_MULTI_PARAGRAPH_JOINED: "md/table-cell-multi-paragraph-joined",
33
33
  TABLE_CELL_IMAGE_DEGRADED: "md/table-cell-image-degraded",
34
- TABLE_HTML_FALLBACK: "md/table-html-fallback"
34
+ TABLE_HTML_FALLBACK: "md/table-html-fallback",
35
+ TABLE_HEADER_ROW_SYNTHESISED: "md/table-header-row-synthesised"
35
36
  };
36
37
  var MarkdownParseError = class extends Error {
37
38
  code;
@@ -40,6 +40,7 @@ declare const MarkdownDiagnosticCodes: {
40
40
  readonly TABLE_CELL_MULTI_PARAGRAPH_JOINED: "md/table-cell-multi-paragraph-joined";
41
41
  readonly TABLE_CELL_IMAGE_DEGRADED: "md/table-cell-image-degraded";
42
42
  readonly TABLE_HTML_FALLBACK: "md/table-html-fallback";
43
+ readonly TABLE_HEADER_ROW_SYNTHESISED: "md/table-header-row-synthesised";
43
44
  };
44
45
  declare class MarkdownParseError extends Error {
45
46
  readonly code: string;
@@ -40,6 +40,7 @@ declare const MarkdownDiagnosticCodes: {
40
40
  readonly TABLE_CELL_MULTI_PARAGRAPH_JOINED: "md/table-cell-multi-paragraph-joined";
41
41
  readonly TABLE_CELL_IMAGE_DEGRADED: "md/table-cell-image-degraded";
42
42
  readonly TABLE_HTML_FALLBACK: "md/table-html-fallback";
43
+ readonly TABLE_HEADER_ROW_SYNTHESISED: "md/table-header-row-synthesised";
43
44
  };
44
45
  declare class MarkdownParseError extends Error {
45
46
  readonly code: string;
@@ -12,8 +12,11 @@ function escapeHtmlAttribute(text) {
12
12
  function blockNeedsHtmlFallback(block) {
13
13
  return block.kind !== "paragraph" && block.kind !== "image";
14
14
  }
15
+ function headerRowsNeedHtmlFallback(table) {
16
+ return table.rows.some((row, index) => row.isHeader === true && index > 0);
17
+ }
15
18
  function tableNeedsHtmlFallback(table) {
16
- return table.rows.some((row) => row.cells.some((cell) => cell.colSpan !== void 0 || cell.rowSpan !== void 0 || cell.background !== void 0 || cell.blocks.some(blockNeedsHtmlFallback)));
19
+ return headerRowsNeedHtmlFallback(table) || table.rows.some((row) => row.cells.some((cell) => cell.colSpan !== void 0 || cell.rowSpan !== void 0 || cell.background !== void 0 || cell.blocks.some(blockNeedsHtmlFallback)));
17
20
  }
18
21
  function emitRunHtml(run) {
19
22
  let text = escapeHtmlText(run.text);
@@ -103,7 +106,8 @@ function emitHtmlTable(table, context) {
103
106
  return [
104
107
  "<table>",
105
108
  ...(0, document_schema_js.walkTableGrid)(table).map((positions, rowIndex) => {
106
- return `<tr>${positions.flatMap((position) => position.anchorRowIndex === void 0 ? [emitCellTag(position.cell, rowIndex === 0, context)] : []).join("")}</tr>`;
109
+ const isHeader = table.rows[rowIndex].isHeader === true;
110
+ return `<tr>${positions.flatMap((position) => position.anchorRowIndex === void 0 ? [emitCellTag(position.cell, isHeader, context)] : []).join("")}</tr>`;
107
111
  }),
108
112
  "</table>"
109
113
  ].join("\n");
@@ -11,8 +11,11 @@ function escapeHtmlAttribute(text) {
11
11
  function blockNeedsHtmlFallback(block) {
12
12
  return block.kind !== "paragraph" && block.kind !== "image";
13
13
  }
14
+ function headerRowsNeedHtmlFallback(table) {
15
+ return table.rows.some((row, index) => row.isHeader === true && index > 0);
16
+ }
14
17
  function tableNeedsHtmlFallback(table) {
15
- return table.rows.some((row) => row.cells.some((cell) => cell.colSpan !== void 0 || cell.rowSpan !== void 0 || cell.background !== void 0 || cell.blocks.some(blockNeedsHtmlFallback)));
18
+ return headerRowsNeedHtmlFallback(table) || table.rows.some((row) => row.cells.some((cell) => cell.colSpan !== void 0 || cell.rowSpan !== void 0 || cell.background !== void 0 || cell.blocks.some(blockNeedsHtmlFallback)));
16
19
  }
17
20
  function emitRunHtml(run) {
18
21
  let text = escapeHtmlText(run.text);
@@ -102,7 +105,8 @@ function emitHtmlTable(table, context) {
102
105
  return [
103
106
  "<table>",
104
107
  ...walkTableGrid(table).map((positions, rowIndex) => {
105
- return `<tr>${positions.flatMap((position) => position.anchorRowIndex === void 0 ? [emitCellTag(position.cell, rowIndex === 0, context)] : []).join("")}</tr>`;
108
+ const isHeader = table.rows[rowIndex].isHeader === true;
109
+ return `<tr>${positions.flatMap((position) => position.anchorRowIndex === void 0 ? [emitCellTag(position.cell, isHeader, context)] : []).join("")}</tr>`;
106
110
  }),
107
111
  "</table>"
108
112
  ].join("\n");
@@ -1,2 +1,2 @@
1
- import { a as escapeMarkdownText, i as escapeLinkDestination, n as emitRuns, o as renderLinkTitle, r as emitRunsSingleLine, t as InlineEmitContext } from "../inline-C8ObWyKW.cjs";
1
+ import { a as escapeMarkdownText, i as escapeLinkDestination, n as emitRuns, o as renderLinkTitle, r as emitRunsSingleLine, t as InlineEmitContext } from "../inline-DD4bcJFT.cjs";
2
2
  export { InlineEmitContext, emitRuns, emitRunsSingleLine, escapeLinkDestination, escapeMarkdownText, renderLinkTitle };
@@ -1,2 +1,2 @@
1
- import { a as escapeMarkdownText, i as escapeLinkDestination, n as emitRuns, o as renderLinkTitle, r as emitRunsSingleLine, t as InlineEmitContext } from "../inline-XJ4cdpPz.js";
1
+ import { a as escapeMarkdownText, i as escapeLinkDestination, n as emitRuns, o as renderLinkTitle, r as emitRunsSingleLine, t as InlineEmitContext } from "../inline-BJj81pYp.js";
2
2
  export { InlineEmitContext, emitRuns, emitRunsSingleLine, escapeLinkDestination, escapeMarkdownText, renderLinkTitle };
@@ -70,6 +70,11 @@ function emitTable(table, context) {
70
70
  require_emit_html_table.assertTableObeysGridRule(table);
71
71
  const [header, ...body] = table.rows;
72
72
  if (header === void 0) return "";
73
+ if (header.isHeader !== true) context.sink({
74
+ code: require_diagnostics_diagnostics.MarkdownDiagnosticCodes.TABLE_HEADER_ROW_SYNTHESISED,
75
+ severity: "info",
76
+ message: "this table states no header row, and GFM's own table extension has no syntax for a table without one (github.github.com/gfm, \"Tables (extension)\"), so its first row is rendered as the header row and will read back as one"
77
+ });
73
78
  const alignments = header.cells.map((cell) => toMarkdownAlignment(cell.blocks[0]?.kind === "paragraph" ? cell.blocks[0].alignment : void 0));
74
79
  return [
75
80
  `| ${header.cells.map((cell) => renderCellText(cell, context)).join(" | ")} |`,
@@ -1,5 +1,5 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.cjs";
2
- import { t as InlineEmitContext } from "../inline-C8ObWyKW.cjs";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.cjs";
2
+ import { t as InlineEmitContext } from "../inline-DD4bcJFT.cjs";
3
3
  import { ContentTable } from "document-schema.js";
4
4
  //#region src/emit/table.d.ts
5
5
  interface TableEmitContext extends InlineEmitContext {
@@ -1,5 +1,5 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.js";
2
- import { t as InlineEmitContext } from "../inline-XJ4cdpPz.js";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.js";
2
+ import { t as InlineEmitContext } from "../inline-BJj81pYp.js";
3
3
  import { ContentTable } from "document-schema.js";
4
4
  //#region src/emit/table.d.ts
5
5
  interface TableEmitContext extends InlineEmitContext {
@@ -69,6 +69,11 @@ function emitTable(table, context) {
69
69
  assertTableObeysGridRule(table);
70
70
  const [header, ...body] = table.rows;
71
71
  if (header === void 0) return "";
72
+ if (header.isHeader !== true) context.sink({
73
+ code: MarkdownDiagnosticCodes.TABLE_HEADER_ROW_SYNTHESISED,
74
+ severity: "info",
75
+ message: "this table states no header row, and GFM's own table extension has no syntax for a table without one (github.github.com/gfm, \"Tables (extension)\"), so its first row is rendered as the header row and will read back as one"
76
+ });
72
77
  const alignments = header.cells.map((cell) => toMarkdownAlignment(cell.blocks[0]?.kind === "paragraph" ? cell.blocks[0].alignment : void 0));
73
78
  return [
74
79
  `| ${header.cells.map((cell) => renderCellText(cell, context)).join(" | ")} |`,
@@ -25,7 +25,7 @@ function findBalancedClose(text, openEnd, tagNames) {
25
25
  }
26
26
  }
27
27
  function extractTopLevelElements(text, tagNames) {
28
- const openPattern = new RegExp(`<(?:${tagNames.join("|")})\\b([^>]*)>`, "gi");
28
+ const openPattern = new RegExp(`<(${tagNames.join("|")})\\b([^>]*)>`, "gi");
29
29
  const elements = [];
30
30
  let pos = 0;
31
31
  for (;;) {
@@ -33,11 +33,13 @@ function extractTopLevelElements(text, tagNames) {
33
33
  const match = openPattern.exec(text);
34
34
  if (match === null) break;
35
35
  if (text.slice(pos, match.index).trim().length > 0) return;
36
- const attrs = match[1];
36
+ const tag = match[1].toLowerCase();
37
+ const attrs = match[2];
37
38
  const openEnd = match.index + match[0].length;
38
39
  const close = findBalancedClose(text, openEnd, tagNames);
39
40
  if (close === void 0) return;
40
41
  elements.push({
42
+ tag,
41
43
  attrs,
42
44
  inner: text.slice(openEnd, close.start)
43
45
  });
@@ -210,7 +212,11 @@ function parseTableRows(inner, contentWidthPt) {
210
212
  for (const row of rowElements) {
211
213
  const cellElements = extractTopLevelElements(row.inner, ["td", "th"]);
212
214
  if (cellElements === void 0 || cellElements.length === 0) return;
213
- anchorRows.push({ cells: cellElements.map((cell) => buildCell(cell, contentWidthPt)) });
215
+ const isHeader = cellElements.every((cell) => cell.tag === "th");
216
+ anchorRows.push({
217
+ cells: cellElements.map((cell) => buildCell(cell, contentWidthPt)),
218
+ ...isHeader ? { isHeader: true } : {}
219
+ });
214
220
  }
215
221
  return (0, document_schema_js.placeAnchorTableRows)(anchorRows, NO_DECLARED_COLUMN_COUNT);
216
222
  }
@@ -24,7 +24,7 @@ function findBalancedClose(text, openEnd, tagNames) {
24
24
  }
25
25
  }
26
26
  function extractTopLevelElements(text, tagNames) {
27
- const openPattern = new RegExp(`<(?:${tagNames.join("|")})\\b([^>]*)>`, "gi");
27
+ const openPattern = new RegExp(`<(${tagNames.join("|")})\\b([^>]*)>`, "gi");
28
28
  const elements = [];
29
29
  let pos = 0;
30
30
  for (;;) {
@@ -32,11 +32,13 @@ function extractTopLevelElements(text, tagNames) {
32
32
  const match = openPattern.exec(text);
33
33
  if (match === null) break;
34
34
  if (text.slice(pos, match.index).trim().length > 0) return;
35
- const attrs = match[1];
35
+ const tag = match[1].toLowerCase();
36
+ const attrs = match[2];
36
37
  const openEnd = match.index + match[0].length;
37
38
  const close = findBalancedClose(text, openEnd, tagNames);
38
39
  if (close === void 0) return;
39
40
  elements.push({
41
+ tag,
40
42
  attrs,
41
43
  inner: text.slice(openEnd, close.start)
42
44
  });
@@ -209,7 +211,11 @@ function parseTableRows(inner, contentWidthPt) {
209
211
  for (const row of rowElements) {
210
212
  const cellElements = extractTopLevelElements(row.inner, ["td", "th"]);
211
213
  if (cellElements === void 0 || cellElements.length === 0) return;
212
- anchorRows.push({ cells: cellElements.map((cell) => buildCell(cell, contentWidthPt)) });
214
+ const isHeader = cellElements.every((cell) => cell.tag === "th");
215
+ anchorRows.push({
216
+ cells: cellElements.map((cell) => buildCell(cell, contentWidthPt)),
217
+ ...isHeader ? { isHeader: true } : {}
218
+ });
213
219
  }
214
220
  return placeAnchorTableRows(anchorRows, NO_DECLARED_COLUMN_COUNT);
215
221
  }
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as MarkdownInputTooLargeError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "./diagnostics-BJtTrxpp.cjs";
1
+ import { a as MarkdownInputTooLargeError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "./diagnostics-DpAXEzZP.cjs";
2
2
  import { MarkdownBytesSchema, markdownCodec, markdownContentCodec } from "./codec.cjs";
3
3
  import { n as MarkdownImageResolver, r as MarkdownResolvedImageBytes, t as MarkdownImageResolveContext } from "./image-B6p0Ovgy.cjs";
4
4
  import { MarkdownBulletListMarker, MarkdownCodeFenceChar, MarkdownEmphasisMarker, MarkdownHeadingStyle, MarkdownLineEnding, MarkdownOrderedListDelimiter, MarkdownThematicBreakChar, ReadMarkdownOptions, WriteMarkdownOptions, WriteMarkdownStyleOptions } from "./options/options.cjs";
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as MarkdownInputTooLargeError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "./diagnostics-BJtTrxpp.js";
1
+ import { a as MarkdownInputTooLargeError, d as MarkdownUnbalancedConstructMarkersError, f as MarkdownUndecodableTextError, h as NOOP_MARKDOWN_DIAGNOSTIC_SINK, i as MarkdownDiagnosticSink, l as MarkdownParseError, m as MarkdownWriteError, n as MarkdownDiagnosticCodes, o as MarkdownInvalidRunConstructExtentError, p as MarkdownUnsupportedDocumentKindError, r as MarkdownDiagnosticSeverity, s as MarkdownNestingLimitExceededError, t as MarkdownDiagnostic, u as MarkdownTableGridFaultError } from "./diagnostics-DpAXEzZP.js";
2
2
  import { MarkdownBytesSchema, markdownCodec, markdownContentCodec } from "./codec.js";
3
3
  import { n as MarkdownImageResolver, r as MarkdownResolvedImageBytes, t as MarkdownImageResolveContext } from "./image-gR1vISI0.js";
4
4
  import { MarkdownBulletListMarker, MarkdownCodeFenceChar, MarkdownEmphasisMarker, MarkdownHeadingStyle, MarkdownLineEnding, MarkdownOrderedListDelimiter, MarkdownThematicBreakChar, ReadMarkdownOptions, WriteMarkdownOptions, WriteMarkdownStyleOptions } from "./options/options.js";
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "./diagnostics-BJtTrxpp.js";
1
+ import { i as MarkdownDiagnosticSink } from "./diagnostics-DpAXEzZP.js";
2
2
  import { ContentRun, RunConstructExtent } from "document-schema.js";
3
3
  //#region src/emit/inline.d.ts
4
4
  interface InlineEmitContext {
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "./diagnostics-BJtTrxpp.cjs";
1
+ import { i as MarkdownDiagnosticSink } from "./diagnostics-DpAXEzZP.cjs";
2
2
  import { ContentRun, RunConstructExtent } from "document-schema.js";
3
3
  //#region src/emit/inline.d.ts
4
4
  interface InlineEmitContext {
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.cjs";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.cjs";
2
2
  import { LayoutMetadata } from "document-schema.js";
3
3
  //#region src/lower/front-matter.d.ts
4
4
  interface FrontMatterResult {
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.js";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.js";
2
2
  import { LayoutMetadata } from "document-schema.js";
3
3
  //#region src/lower/front-matter.d.ts
4
4
  interface FrontMatterResult {
@@ -1,5 +1,5 @@
1
1
  import { v as MarkdownInlineNode } from "../ast-CNfTgS0N.cjs";
2
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.cjs";
2
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.cjs";
3
3
  import { ContentRun, RunConstructExtent } from "document-schema.js";
4
4
  //#region src/lower/inline.d.ts
5
5
  interface InlineLowerContext {
@@ -1,5 +1,5 @@
1
1
  import { v as MarkdownInlineNode } from "../ast-CNfTgS0N.js";
2
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.js";
2
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.js";
3
3
  import { ContentRun, RunConstructExtent } from "document-schema.js";
4
4
  //#region src/lower/inline.d.ts
5
5
  interface InlineLowerContext {
@@ -20,7 +20,10 @@ function lowerTable(node, contentWidthPt, context) {
20
20
  const columnWidthsPt = Array.from({ length: columnCount }, () => contentWidthPt / columnCount);
21
21
  return {
22
22
  kind: "table",
23
- rows: node.children.map((row) => ({ cells: row.children.map((cell, index) => lowerTableCell(cell, node.alignments[index], context)) })),
23
+ rows: node.children.map((row, rowIndex) => ({
24
+ cells: row.children.map((cell, index) => lowerTableCell(cell, node.alignments[index], context)),
25
+ ...rowIndex === 0 ? { isHeader: true } : {}
26
+ })),
24
27
  columnWidthsPt
25
28
  };
26
29
  }
@@ -19,7 +19,10 @@ function lowerTable(node, contentWidthPt, context) {
19
19
  const columnWidthsPt = Array.from({ length: columnCount }, () => contentWidthPt / columnCount);
20
20
  return {
21
21
  kind: "table",
22
- rows: node.children.map((row) => ({ cells: row.children.map((cell, index) => lowerTableCell(cell, node.alignments[index], context)) })),
22
+ rows: node.children.map((row, rowIndex) => ({
23
+ cells: row.children.map((cell, index) => lowerTableCell(cell, node.alignments[index], context)),
24
+ ...rowIndex === 0 ? { isHeader: true } : {}
25
+ })),
23
26
  columnWidthsPt
24
27
  };
25
28
  }
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.cjs";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.cjs";
2
2
  import { n as MarkdownImageResolver } from "../image-B6p0Ovgy.cjs";
3
3
  import { Margins, PageSize } from "document-schema.js";
4
4
  //#region src/options/options.d.ts
@@ -1,4 +1,4 @@
1
- import { i as MarkdownDiagnosticSink } from "../diagnostics-BJtTrxpp.js";
1
+ import { i as MarkdownDiagnosticSink } from "../diagnostics-DpAXEzZP.js";
2
2
  import { n as MarkdownImageResolver } from "../image-gR1vISI0.js";
3
3
  import { Margins, PageSize } from "document-schema.js";
4
4
  //#region src/options/options.d.ts
package/dist/read.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as MarkdownDiagnostic } from "./diagnostics-BJtTrxpp.cjs";
1
+ import { t as MarkdownDiagnostic } from "./diagnostics-DpAXEzZP.cjs";
2
2
  import { ReadMarkdownOptions } from "./options/options.cjs";
3
3
  import { ContentDocument, DocumentTree } from "document-schema.js";
4
4
  //#region src/read.d.ts
package/dist/read.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as MarkdownDiagnostic } from "./diagnostics-BJtTrxpp.js";
1
+ import { t as MarkdownDiagnostic } from "./diagnostics-DpAXEzZP.js";
2
2
  import { ReadMarkdownOptions } from "./options/options.js";
3
3
  import { ContentDocument, DocumentTree } from "document-schema.js";
4
4
  //#region src/read.d.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markdown-codec",
3
- "version": "10.0.0",
3
+ "version": "11.0.0",
4
4
  "description": "Hand-written CommonMark+GFM <-> DocumentTree codec, built on document-schema.js",
5
5
  "type": "module",
6
6
  "repository": {
@@ -83,8 +83,8 @@
83
83
  "license": "MIT",
84
84
  "packageManager": "pnpm@12.4.1+sha512.2e81e399d73fe8390dab25e06aa788ab7a5908248d2f5a370f82b481147a6a7a367bf8048f9a6fdb6460f21a66f0542dedb8b94ca2c8723596741920b1656d4c",
85
85
  "dependencies": {
86
- "byte-codec": "1.7.0",
87
- "document-schema.js": "7.13.0",
86
+ "byte-codec": "1.8.0",
87
+ "document-schema.js": "7.14.0",
88
88
  "zod": "4.4.3"
89
89
  },
90
90
  "devDependencies": {