mdast-util-gfm-table
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.1 • Public • Published

    mdast-util-gfm-table

    Build Coverage Downloads Size Sponsors Backers Chat

    Extension for mdast-util-from-markdown and/or mdast-util-to-markdown to support GitHub flavored markdown tables in mdast. When parsing (from-markdown), must be combined with micromark-extension-gfm-table.

    When to use this

    Use mdast-util-gfm if you want all of GFM. Use this otherwise.

    Install

    This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

    npm:

    npm install mdast-util-gfm-table

    Use

    Say we have the following file, example.md:

    | a | b | c | d |
    | - | :- | -: | :-: |
    | e | f |
    | g | h | i | j | k |

    And our module, example.js, looks as follows:

    import fs from 'node:fs'
    import {fromMarkdown} from 'mdast-util-from-markdown'
    import {toMarkdown} from 'mdast-util-to-markdown'
    import {gfmTable} from 'micromark-extension-gfm-table'
    import {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'
    
    const doc = fs.readFileSync('example.md')
    
    const tree = fromMarkdown(doc, {
      extensions: [gfmTable],
      mdastExtensions: [gfmTableFromMarkdown]
    })
    
    console.log(tree)
    
    const out = toMarkdown(tree, {extensions: [gfmTableToMarkdown()]})
    
    console.log(out)

    Now, running node example yields (positional info removed for the sake of brevity):

    {
      type: 'root',
      children: [
        {
          type: 'table',
          align: [null, 'left', 'right', 'center'],
          children: [
            {
              type: 'tableRow',
              children: [
                {type: 'tableCell', children: [{type: 'text', value: 'a'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'b'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'c'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'd'}]}
              ]
            },
            {
              type: 'tableRow',
              children: [
                {type: 'tableCell', children: [{type: 'text', value: 'e'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'f'}]}
              ]
            },
            {
              type: 'tableRow',
              children: [
                {type: 'tableCell', children: [{type: 'text', value: 'g'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'h'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'i'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'j'}]},
                {type: 'tableCell', children: [{type: 'text', value: 'k'}]}
              ]
            }
          ]
        }
      ]
    }
    | a | b  |  c |  d  |   |
    | - | :- | -: | :-: | - |
    | e | f  |    |     |   |
    | g | h  |  i |  j  | k |

    API

    This package exports the following identifier: gfmTableFromMarkdown, gfmTableToMarkdown. There is no default export.

    gfmTableFromMarkdown

    gfmTableToMarkdown(options?)

    Support GFM tables. The exports of fromMarkdown is an extension for mdast-util-from-markdown. The export of toMarkdown is a function that can be called with options and returns an extension for mdast-util-to-markdown.

    options
    options.tableCellPadding

    Create tables with a space between cell delimiters (|) and content (boolean, default: true).

    options.tablePipeAlign

    Align the delimiters (|) between table cells so that they all align nicely and form a grid (boolean, default: true).

    options.stringLength

    Function passed to markdown-table to detect the length of a table cell (Function, default: s => s.length). Used to pad tables.

    Related

    Contribute

    See contributing.md in syntax-tree/.github for ways to get started. See support.md for ways to get help.

    This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

    License

    MIT © Titus Wormer

    Install

    npm i mdast-util-gfm-table

    DownloadsWeekly Downloads

    398,344

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    18 kB

    Total Files

    5

    Last publish

    Collaborators

    • wooorm
    • kmck