0.1.2 • Published 4 years ago

tdast-util-to-markdown-table v0.1.2

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

tdast-util-to-markdown-table

tdast utility to serialize tdast to markdown table (GFM).


Install

npm install tdast-util-to-markdown-table

Use

Use with a tdast table node,

import toMarkdownTable from 'tdast-util-to-markdown-table';

const tdast = {
  type: 'table',
  children: [
    {
      type: 'row',
      index: 0,
      children: [
        {
          type: 'column',
          index: 0,
          value: 'col0',
        },
        {
          type: 'column',
          index: 1,
          value: 'col1',
        },
        {
          type: 'column',
          index: 2,
          value: 'col2',
        },
      ],
    },
    {
      type: 'row',
      index: 1,
      children: [
        {
          type: 'cell',
          columnIndex: 0,
          rowIndex: 1,
          value: 'row1col0',
        },
        {
          type: 'cell',
          columnIndex: 1,
          rowIndex: 1,
          value: 'row1col1',
        },
        {
          type: 'cell',
          columnIndex: 2,
          rowIndex: 1,
          value: 'row1col2',
        },
      ],
    },
    {
      type: 'row',
      index: 2,
      children: [
        {
          type: 'cell',
          columnIndex: 0,
          rowIndex: 2,
          value: 'row2col0',
        },
        {
          type: 'cell',
          columnIndex: 1,
          rowIndex: 2,
          value: 'row2col1',
        },
        {
          type: 'cell',
          columnIndex: 2,
          rowIndex: 2,
          value: 'row2col2',
        },
      ],
    },
  ],
};

console.log(toMarkdownTable(tdast));

yields a serialized markdown table.

| col0     | col1     | col2     |
| -------- | -------- | -------- |
| row1col0 | row1col1 | row1col2 |
| row2col0 | row2col1 | row2col2 |

Easily use this markdown table with any markdown content!

API

toMarkdownTable(tdast[, options])

Interface

function toMarkdownTable(
  /** A valid tdast Table node */
  tdast: Table,
  /** Configurable options (compatible with tdast-util-to-hast-table's options) */
  options?: Options,
): string;

Serializes a tdast Table node into a markdown table. Note that markdown tables are not commonmark-compliant and are based on GFM.

Uses tdast-util-to-hast-table under the hood to transform the tdast Table node into a hast table node, then transforms to mdast via hast-util-to-mdast, and finally applies mdast-util-to-markdown to serialize the mdast node into a markdown string. For more details, please refer to tdast-util-to-hast-table for behaviors of transformed nodes.

Related interfaces

interface Options {
  /** use the `label` property of a tdast `Column` node for the text value of a hast thead node. */
  useColumnLabel?: boolean;
}