2.0.2 • Published 6 days ago

mdast-util-extended-table v2.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
6 days ago

mdast-util-extended-table

mdast extensions for extended table syntax

Feature

This package provides mdast utilities to handle extended table syntax with micromark-extension-extended-table.

This includes:

Important

extendedTableFromMarkdown() and extendedTableToMarkdown override some handlers for mdast-util-gfm-table. If you encounter any problems, disable this first and see what happens.

Install

$ npm install mdast-util-extended-table

Use

import {
  extendedTableFromMarkdown,
  extendedTableToMarkdown,
  extendedTableHandlers,
} from 'mdast-util-extended-table';

import { extendedTable } from 'micromark-extension-extended-table';
import { gfmTable } from 'micromark-extension-gfm-table';
import { gfmTableFromMarkdown, gfmTableToMarkdown } from 'mdast-util-gfm-table';

import { fromMarkdown } from 'mdast-util-from-markdown';
import { toMarkdown } from 'mdast-util-to-markdown';
import { toHast } from 'mdast-util-to-hast';
import { inspect } from 'unist-util-inspect';

const md = `
| a | b | c |
|---|---|---|
| > | 1 | 2 |
| ^ | ^ | 3 |
`;

const mdast = fromMarkdown(md, {
  extensions: [gfmTable(), extendedTable],
  mdastExtensions: [gfmTableFromMarkdown(), extendedTableFromMarkdown()],
});
console.log(inspect(mdast));

const markdown = toMarkdown(mdast, {
  extensions: [gfmTableToMarkdown(), extendedTableToMarkdown()],
});
console.log(markdown);

const hast = toHast(mdast, {
  handlers: extendedTableHandlers,
});
console.log(inspect(hast));

API

extendedTableFromMarkdown(extendedTableFromMarkdownOptions?)

This returns a mdast-util-from-markdown extension.

This MUST be set after gfmTableFromMarkdown in mdast-util-gfm-table to override its handlers.

options

extendedTableFromMarkdownOptions.colspanWithEmpty (boolean?, default: false)

Whether to merge cell with the right empty cell which contains no spaces (||).

extendedTableFromMarkdown(extendedTableToMarkdownOptoins?)

This returns a mdast-util-to-markdown extension.

This MUST be set after gfmTableToMarkdown in mdast-util-gfm-table to override its handlers.

options

Same as gfmTableToMarkdown options. This will be used for overriding handlers.

extendedTableHandlers

mdast-util-to-hast handlers

Mdast Node Extension

mdast-util-extended-table extends mdast TableCell node.

import type {
  Table as MdastTable,
  TableRow as MdastTableRow,
  TableCell as MdastTableCell,
} from 'mdast';

type Table = Omit<MdastTable, 'children'> & {
  children: Array<TableRow>;
};

type TableRow = Omit<MdastTableRow, 'children'> & {
  children: Array<TableCell>;
};

type TableCell = MdastTableCell & {
  colspan?: number;
  rowspan?: number;
};