Skip to content

A markdown-it plugin to merge adjacent cells with same content in tables

License

Notifications You must be signed in to change notification settings

Menci/markdown-it-merge-cells

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

markdown-it-merge-cells

A markdown-it plugin to merge adjacent cells with same content.

It will first merge cells with same content in every column and then merge cells with same content (and height, if ones are merged in first step) in every row. This is by design because usually a column is a field and a row is a record -- it's more reasonable that multi records have same value in a field than in a record multi fields' have same value.

Usage

// Node.js
let MarkdownIt = require('markdown-it'),
    MarkdownItMergeCells = require('markdown-it-merge-cells'),
    md = new MarkdownIt();
md.use(MarkdownItMergeCells);

// Browser (use dist/bundle.min.js)
let md = new window.markdownit();
md.use(window.markdownitMergeCells);

let result = md.render(`
|1|1|3|4|5|
|-|-|-|-|-|
|1|1|2|2|6|
|1|1|2|2|7|
|1|4|3|5|5|
`)

The result is:

1 3 4 5
1 1 2 6
7
4 3 5

The rendered HTML is:

<table>
  <thead>
    <tr>
      <th colspan="2">1</th>
      <th>3</th>
      <th>4</th>
      <th>5</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td rowspan="3">1</td>
      <td rowspan="2">1</td>
      <td rowspan="2" colspan="2">2</td>
      <td>6</td>
    </tr>
    <tr>
      <td>7</td>
    </tr>
    <tr>
      <td>4</td>
      <td>3</td>
      <td colspan="2">5</td>
    </tr>
  </tbody>
</table>

Notice

It's done by wrap markdown-it's table parser and modify the generated tokens (which will be rendered to HTML). If in later versions markdown-it change the tokens' generated by table parser, this plugin may not able to work anymore.

File a issue if you find this plugin can't work with latest version of markdown-it.

License

MIT

About

A markdown-it plugin to merge adjacent cells with same content in tables

Resources

License

Stars

Watchers

Forks

Packages

No packages published