import type * as spec from 'myst-spec'; import { HashLink } from './heading'; import type { NodeRenderer } from './types'; type TableExts = { rowspan?: number; colspan?: number; }; type Strike = { type: 'strike'; }; type Underline = { type: 'underline'; }; type SmallCaps = { type: 'smallcaps'; }; type DefinitionList = { type: 'definitionList'; }; type DefinitionTerm = { type: 'definitionTerm'; }; type DefinitionDescription = { type: 'definitionDescription'; }; type CaptionNumber = { type: 'captionNumber'; kind: string; identifier: string; }; type BasicNodeRenderers = { strong: NodeRenderer; emphasis: NodeRenderer; link: NodeRenderer; paragraph: NodeRenderer; break: NodeRenderer; inlineMath: NodeRenderer; math: NodeRenderer; list: NodeRenderer; listItem: NodeRenderer; container: NodeRenderer; caption: NodeRenderer; blockquote: NodeRenderer; thematicBreak: NodeRenderer; subscript: NodeRenderer; superscript: NodeRenderer; abbreviation: NodeRenderer; // Tables table: NodeRenderer; tableRow: NodeRenderer; tableCell: NodeRenderer; // Comment comment: NodeRenderer; mystComment: NodeRenderer; // Our additions captionNumber: NodeRenderer; strike: NodeRenderer; underline: NodeRenderer; smallcaps: NodeRenderer; // definitions definitionList: NodeRenderer; definitionTerm: NodeRenderer; definitionDescription: NodeRenderer; }; const BASIC_RENDERERS: BasicNodeRenderers = { strike(node, children) { return {children}; }, strong(node, children) { return {children}; }, emphasis(node, children) { return {children}; }, underline(node, children) { return ( {children} ); }, smallcaps(node, children) { return ( {children} ); }, link(node, children) { return ( {children} ); }, paragraph(node, children) { return

{children}

; }, break(node) { return
; }, inlineMath(node) { return {node.value}; }, math(node) { return {node.value}; }, list(node, children) { if (node.ordered) { return (
    {children}
); } return
    {children}
; }, listItem(node, children) { return
  • {children}
  • ; }, container(node, children) { return (
    {children}
    ); }, caption(node, children) { return (
    {children}
    ); }, blockquote(node, children) { return
    {children}
    ; }, thematicBreak(node) { return
    ; }, captionNumber(node, children) { function backwardsCompatibleLabel(value: string, kind?: string) { const capital = kind?.slice(0, 1).toUpperCase() ?? 'F'; const body = kind?.slice(1) ?? 'igure'; return `${capital}${body}: ${children}`; } const label = typeof children === 'string' ? backwardsCompatibleLabel(children, node.kind) : children; const id = node.html_id || node.identifier || node.key; return ( {label} ); }, table(node, children) { return {children}
    ; }, tableRow(node, children) { return {children}; }, tableCell(node, children) { const ifGreaterThanOne = (num?: number) => (num === 1 ? undefined : num); const attrs = { key: node.key, rowSpan: ifGreaterThanOne(node.rowspan), colSpan: ifGreaterThanOne(node.colspan), }; if (node.header) return {children}; return {children}; }, subscript(node, children) { return {children}; }, superscript(node, children) { return {children}; }, abbreviation(node, children) { return ( {children} ); }, mystComment() { return null; }, comment() { return null; }, definitionList(node, children) { return
    {children}
    ; }, definitionTerm(node, children) { return
    {children}
    ; }, definitionDescription(node, children) { return
    {children}
    ; }, }; export default BASIC_RENDERERS;